springnet-commits Mailing List for Spring Framework .NET (Page 26)
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-12-06 21:38:03
|
Update of /cvsroot/springnet/Spring.Net/doc/reference/src In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv6598 Modified Files: background.xml overview.xml resources.xml Log Message: SPRNET-798 Add overview documentation from web site into reference docs Index: overview.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/src/overview.xml,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** overview.xml 6 Dec 2007 07:54:17 -0000 1.20 --- overview.xml 6 Dec 2007 21:37:49 -0000 1.21 *************** *** 6,15 **** <title>Overview</title> ! <para>Spring.NET is an application framework focused on helping build ! enterprise .NET applications. It provides a wide range of functionality ! such as Dependency Injection, Aspect Oriented Programming (AOP), data ! access abstractions, and ASP.NET integration. Based on the Spring ! Framework for Java, the core concepts and values found in Spring.Java have ! been applied to .NET.</para> <para>Enterprise applications typically are composed of a number of a --- 6,26 ---- <title>Overview</title> ! <para>Spring.NET is an application framework that provides comprehensive ! infrastructural support for developing enterprise .NET applications. It ! allows you to remove incidental complexity when using the base class ! libraries makes best practices, such as test driven development, easy ! practices. Spring.NET is created, supported and sustained by <ulink ! url="http://www.springsource.com">SpringSource</ulink>.</para> ! ! <para>The design of Spring.NET is based on the Java version of the Spring ! Framework, which has shown real-world benefits and is used in thousands of ! enterprise applications world wide. Spring .NET is not a quick port from ! the Java version, but rather a 'spiritual port' based on following proven ! architectural and design patterns in that are not tied to a particular ! platform. The breath of functionality in Spring .NET spans application ! tiers which allows you to treat it as a âone stop shopâ but that is not ! required. Spring .NET is not an all-or-nothing solution. You can use the ! functionality in its modules independently. These <link ! linkend="intro-modules">modules</link> are described below.</para> <para>Enterprise applications typically are composed of a number of a *************** *** 46,60 **** yourself in your application.</para> ! <para>The IoC component of the Spring Framework addresses the enterprise ! concern of taking the classes, objects, and services that are to compose ! an application, by providing a formalized means of composing these various ! disparate components into a fully working application ready for use. The ! Spring Framework takes best practices that have been proven over the years ! in numerous applications and formalized as design patterns, and actually ! codifies these patterns as first class objects that you as an architect ! and developer can take away and integrate into your own application(s). ! This is a Very Good Thing Indeed as attested to by the numerous ! organizations and institutions that have used the Spring Framework to ! engineer robust, maintainable applications.</para> </sect1> --- 57,71 ---- yourself in your application.</para> ! <para>The Spring Framework takes best practices that have been proven over ! the years in numerous applications and formalized as design patterns, and ! actually codifies these patterns as first class objects that you as an ! architect and developer can take away and integrate into your own ! application(s). This is a Very Good Thing Indeed as attested to by the ! numerous organizations and institutions that have used the Spring ! Framework to engineer robust, maintainable applications. For example, the ! IoC component of the Spring Framework addresses the enterprise concern of ! taking the classes, objects, and services that are to compose an ! application, by providing a formalized means of composing these various ! disparate components into a fully working application ready for use</para> </sect1> *************** *** 73,90 **** </sect1> ! <sect1> <title>Modules</title> <para>The Spring Framework contains a lot of features, which are ! well-organized into modules shown in the diagram below. The 1.0 release of ! Spring.NET contains a full featured Inversion of Control container and an ! AOP library. The 1.1 releases will contain Web, ORM and Data modules. ! Seperate modules not part of the standard Spring.NET download are dediated ! to integration with other libraries such a NHibernate, TIBCO EMS, Anthem, ! and IIOP.NET. The diagram below shows the various core modules of ! Spring.NET. The dark shaded modules are in the 1.0 release while the other ! modules are planned for future releases. In many cases you can already ! find working implementations for the planned modules available on our ! download site.</para> <para><mediaobject> --- 84,93 ---- </sect1> ! <sect1 id="intro-modules"> <title>Modules</title> <para>The Spring Framework contains a lot of features, which are ! well-organized into modules shown in the diagram below. The diagram below ! shows the various core modules of Spring.NET.</para> <para><mediaobject> *************** *** 94,147 **** </mediaobject></para> ! <para>The <emphasis>Spring.Core</emphasis> library is the most fundamental ! part of the framework, and provides Dependency Injection functionality. ! Most of the libraries in the Spring.NET distribution depend upon and ! extend the functionality provided by this core library. The basic concept ! here is provided by the <classname>IObjectFactory</classname> interface ! that provides a simple yet elegant factory pattern removing the need for ! programmatic singletons and numerous service locator stubs, allowing you ! to decouple the configuration and specification of dependencies from your ! actual program logic. An extension to the ! <classname>IObjectFactory</classname>, the ! <classname>IApplicationContext</classname> is also located here and adds ! more enterprise-centric features such as text localization using resource ! files, event-propagation, and resource-loading.</para> ! <para>The <emphasis>Spring.Aop</emphasis> library provides Aspect Oriented ! Programming (AOP) support to your business objects. The Spring.Aop library ! complements the IoC container in the Spring.Core library to provide a ! rock-solid foundation for building enterprise applications and applying ! services to business objects declaratively.</para> ! <para>The <emphasis>Spring.Web</emphasis> library extends ASP.NET by ! adding a variety of features such as Dependency Injection for ASP.NET ! pages, Bidirectional data binding, Master pages for ASP.NET 1.1 and ! improved localization support.</para> ! <para>The <emphasis>Spring.Services</emphasis> library let you expose any ! "normal" object (meaning an object that does not inherit from a special ! service base class) as an enterprise (COM+) service or remoting object. ! .NET Web services get additional configuration flexibility with support ! for depedency injection and overriding of attribute metadata. Windows ! Service intergration is also provided.</para> ! <para>The <emphasis>Spring.Data</emphasis> library provides a Data Access ! Layer abstraction that can be used across a variety of data access ! providers, from ADO.NET to various ORM providers. It also contains an ! ADO.NET abstraction layer that removes the need for tedious coding and ! declarative transaction management for ADO.NET.</para> ! <para>The <emphasis>Spring.ORM</emphasis> library provides integration ! layers for popular object relational mapping libraries. This provides ! functionality such as support for declarative transaction ! management</para> ! <para>This document provides a reference guide to Spring.NET's features. ! Since this document is still very much a work-in-progress endeavour, if ! you have any requests or comments, please post them on the user forums at ! <ulink ! url="http://forum.springframework.net/">forum.springframework.net</ulink> ! The latest version of this document can be found <ulink ! url="http://www.springframework.net/doc-latest/reference/index.html">here</ulink></para> </sect1> --- 97,184 ---- </mediaobject></para> ! <para>Click on the module name for more information.</para> ! <para><link lang="" linkend="objects">Spring.Core</link> is the most ! fundamental part of the framework allowing you to configure your ! application using Dependency Injection. Other supporting functionality, ! listed below, is located in Spring.Core</para> ! <para><link linkend="aop">Spring.Aop</link> - Use this module to perform ! Aspect-Oriented Programming (AOP). AOP centralizes common functionality ! that can then be declaratively applied across your application in a ! targeted manner. Spring's <link linkend="aop-aspect-library">aspect ! library</link> provides predefined easy to use aspects for transactions, ! logging, performance monitoring, caching, method retry, and exception ! handling.</para> ! <para><link linkend="index-middle-tier">Spring.Data</link> - Use this ! module to achieve greater efficiency and consistency in writing data ! access functionality in ADO.NET and to perform declarative transaction ! management.</para> ! <para><link linkend="orm">Spring.Data.NHibernate</link> - Use this module ! to integrate NHibernate with Springâs declarative transaction management ! functionality allowing easy mixing of ADO.NET and NHibernate operations ! within the same transaction. NHibernate 1.0 users will benefit from ease ! of use APIs to perform data access operations.</para> ! <para><link linkend="web">Spring.Web</link> - Use this module to raise the ! level of abstraction when writing ASP.NET web applications allowing you to ! effectively address common pain-points in ASP.NET such as data binding, ! validation, and ASP.NET page/control/module/provider configuration.</para> ! <para><link linkend="ajax">Spring.Web.Extensions</link> - Use this module ! to raise the level of abstraction when writing ASP.NET web applications ! allowing you to effectively address common pain-points in ASP.NET such as ! data binding, validation, and ASP.NET page/control/module/provider ! configuration.</para> ! ! <para><link linkend="index-services">Spring.Services</link> - Use this ! module to adapt plain .NET objects so they can be used with a specific ! distributed communication technology, such as .NET Remoting, Enterprise ! Services, and ASMX Web Services. These services can be configured via ! dependency injection and âdecoratedâ by applying AOP.</para> ! ! <para><link linkend="testing">Spring.Testing.NUnit</link> - Use this ! module to perform integration testing with NUnit.</para> ! ! <para>The Spring.Core module also includes the following additional ! features</para> ! ! <itemizedlist> ! <listitem> ! <para><link linkend="expressions">Expression Language</link> - ! provides efficient querying and manipulation of an object graphs at ! runtime.</para> ! </listitem> ! ! <listitem> ! <para><link linkend="validation">Validation Framework</link> - a ! robust UI agnostic framework for creating complex validation rules for ! business objects either programmatically or declaratively.</para> ! </listitem> ! ! <listitem> ! <para>Data binding Framework - a UI agnostic framework for performing ! data binding.</para> ! </listitem> ! ! <listitem> ! <para>Dynamic Reflection - provides a high performance reflection ! API</para> ! </listitem> ! ! <listitem> ! <para><link linkend="threading">Threading</link> - provides additional ! concurrency abstractions such as Latch, Semaphore and Thread Local ! Storage.</para> ! </listitem> ! ! <listitem> ! <para><link lang="" linkend="resources">Resource abstraction</link> - ! provides a common interface to treat the InputStream from a file and ! from a URL in a polymorphic and protocol-independent manner.</para> ! </listitem> ! </itemizedlist> </sect1> *************** *** 169,174 **** <title>Support</title> ! <para>Training and Support are available through <ulink ! url="http://www.springsource.com">SpringSource</ulink> in addition to mailing lists and fourms you can find on the main <ulink url="http://www.springframework.net">Spring.NET</ulink> website.</para> --- 206,211 ---- <title>Support</title> ! <para>Training and support are available through <ulink ! url="http://www.springsource.com">SpringSource</ulink> in addition to the mailing lists and fourms you can find on the main <ulink url="http://www.springframework.net">Spring.NET</ulink> website.</para> Index: resources.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/src/resources.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** resources.xml 8 Aug 2007 17:45:39 -0000 1.5 --- resources.xml 6 Dec 2007 21:37:49 -0000 1.6 *************** *** 1,5 **** <?xml version="1.0" encoding="UTF-8"?> <chapter id="resources"> ! <title>The IResource abstraction</title> <section id="objects-iresource"> --- 1,5 ---- <?xml version="1.0" encoding="UTF-8"?> <chapter id="resources"> ! <title>Resources</title> <section id="objects-iresource"> *************** *** 217,221 **** <literal>UriResource</literal> ! accesses data from the standard System.Uri protocols such as http and https. In .NET 2.0 you can use this also for the ftp protocol. Standard Uri syntax is supported. </listitem> </itemizedlist> Refer to the MSDN documentation for more information on --- 217,221 ---- <literal>UriResource</literal> ! accesses data from the standard System.Uri protocols such as http and https. In .NET 2.0 you can use this also for the ftp protocol. Standard Uri syntax is supported. </listitem> </itemizedlist> Refer to the MSDN documentation for more information on Index: background.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/src/background.xml,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** background.xml 2 Aug 2005 11:15:54 -0000 1.6 --- background.xml 6 Dec 2007 21:37:48 -0000 1.7 *************** *** 1,18 **** <chapter id="background"> ! <title>Background information</title> ! <sect1 id="background-ioc"> ! <title>Inversion of Control</title> ! <para> ! In early 2004, Martin Fowler asked the readers of his site: when talking ! about Inversion of Control: <emphasis>"the question, is what aspect of ! control are they inverting?"</emphasis>. After talking about the term ! Inversion of Control Martin suggests renaming the pattern, or at least ! giving it a more self-explanatory name, and starts to use the term ! <emphasis>Dependency Injection</emphasis>. His ! <ulink url="http://martinfowler.com/articles/injection.html">article</ulink> continues to ! explain some of the ideas behind this important software engineering principle. ! </para> ! </sect1> ! </chapter> --- 1,34 ---- + <?xml version="1.0" encoding="UTF-8"?> <chapter id="background"> ! <title>Background information</title> ! ! <sect1 id="background-ioc"> ! <title>Inversion of Control</title> ! ! <para>In early 2004, Martin Fowler asked the readers of his site: when ! talking about Inversion of Control: <emphasis>"the question, is what ! aspect of control are they inverting?"</emphasis>. After talking about the ! term Inversion of Control Martin suggests renaming the pattern, or at ! least giving it a more self-explanatory name, and starts to use the term ! <emphasis>Dependency Injection</emphasis>. His <ulink ! url="http://martinfowler.com/articles/injection.html">article</ulink> ! continues to explain some of the ideas behind this important software ! engineering principle.</para> + <para>Other references you may find useful are</para> + <itemizedlist> + <listitem> + <para>Wikipedia Article - <ulink + url="http://en.wikipedia.org/wiki/Dependency_injection">Dependency + Injection</ulink></para> + </listitem> + + <listitem> + <para>CodeProject article - <ulink + url="http://www.codeproject.com/cs/design/DependencyInjection.asp">Dependency + Injection for Loose Coupling</ulink></para> + </listitem> + </itemizedlist> + </sect1> + </chapter> \ No newline at end of file |
|
From: Mark P. <mar...@us...> - 2007-12-06 20:14:42
|
Update of /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Tests/Support In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv5957 Modified Files: ErrorCodeExceptionTranslatorTests.cs Log Message: SPRNET-457 - ErrorCode translation can produce extraneous UncategorizedDataAccessException Index: ErrorCodeExceptionTranslatorTests.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Tests/Support/ErrorCodeExceptionTranslatorTests.cs,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** ErrorCodeExceptionTranslatorTests.cs 21 Aug 2007 19:26:04 -0000 1.7 --- ErrorCodeExceptionTranslatorTests.cs 6 Dec 2007 20:14:39 -0000 1.8 *************** *** 72,76 **** ERROR_CODES.InvalidResultSetAccessCodes = (new String[] { "3", "4" }); ERROR_CODES.DataAccessResourceFailureCodes = (new String[] { "5" }); ! ERROR_CODES.DataIntegrityViolationCodes = (new String[] { "6" }); ERROR_CODES.CannotAcquireLockCodes = (new String[] { "7" }); ERROR_CODES.DeadlockLoserCodes = (new String[] { "8" }); --- 72,76 ---- ERROR_CODES.InvalidResultSetAccessCodes = (new String[] { "3", "4" }); ERROR_CODES.DataAccessResourceFailureCodes = (new String[] { "5" }); ! ERROR_CODES.DataIntegrityViolationCodes = (new String[] { "544", "2627", "8114", "8115" }); ERROR_CODES.CannotAcquireLockCodes = (new String[] { "7" }); ERROR_CODES.DeadlockLoserCodes = (new String[] { "8" }); *************** *** 94,98 **** CheckTranslation(exceptionTranslator, "5", typeof(DataAccessResourceFailureException)); ! CheckTranslation(exceptionTranslator, "6", typeof(DataIntegrityViolationException)); CheckTranslation(exceptionTranslator, "7", typeof(CannotAcquireLockException)); CheckTranslation(exceptionTranslator, "8", typeof(DeadlockLoserDataAccessException)); --- 94,98 ---- CheckTranslation(exceptionTranslator, "5", typeof(DataAccessResourceFailureException)); ! CheckTranslation(exceptionTranslator, "544", typeof(DataIntegrityViolationException)); CheckTranslation(exceptionTranslator, "7", typeof(CannotAcquireLockException)); CheckTranslation(exceptionTranslator, "8", typeof(DeadlockLoserDataAccessException)); |
|
From: Mark P. <mar...@us...> - 2007-12-06 20:14:38
|
Update of /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Tests/Data/Common In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv5943 Modified Files: DbProviderFactoryTests.cs Log Message: SPRNET-457 - ErrorCode translation can produce extraneous UncategorizedDataAccessException Index: DbProviderFactoryTests.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Tests/Data/Common/DbProviderFactoryTests.cs,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** DbProviderFactoryTests.cs 16 Oct 2007 16:13:04 -0000 1.9 --- DbProviderFactoryTests.cs 6 Dec 2007 20:14:34 -0000 1.10 *************** *** 175,181 **** Assert.IsTrue(codes.DataIntegrityViolationCodes.Length > 0); // This had better be a Bad SQL Grammar code ! Assert.IsTrue(Array.BinarySearch(codes.BadSqlGrammarCodes, "156") >= 0); // This had better NOT be ! Assert.IsFalse(Array.BinarySearch(codes.BadSqlGrammarCodes, "1xx56") >= 0); } --- 175,181 ---- Assert.IsTrue(codes.DataIntegrityViolationCodes.Length > 0); // This had better be a Bad SQL Grammar code ! Assert.IsTrue(Array.IndexOf(codes.BadSqlGrammarCodes, "156") >= 0); // This had better NOT be ! Assert.IsFalse(Array.IndexOf(codes.BadSqlGrammarCodes, "1xx56") >= 0); } |
|
From: Mark P. <mar...@us...> - 2007-12-06 20:14:36
|
Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Data/Data/Common In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv5925/Common Modified Files: dbproviders.xml Log Message: SPRNET-457 - ErrorCode translation can produce extraneous UncategorizedDataAccessException Index: dbproviders.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Data/Data/Common/dbproviders.xml,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** dbproviders.xml 4 Dec 2007 18:19:12 -0000 1.29 --- dbproviders.xml 6 Dec 2007 20:14:30 -0000 1.30 *************** *** 41,45 **** </property> <property name="ErrorCodes.DataIntegrityViolationCodes"> ! <value>2627,8114,8115</value> </property> <property name="ErrorCodes.DeadlockLoserCodes"> --- 41,45 ---- </property> <property name="ErrorCodes.DataIntegrityViolationCodes"> ! <value>544,2627,8114,8115</value> </property> <property name="ErrorCodes.DeadlockLoserCodes"> *************** *** 82,86 **** </property> <property name="ErrorCodes.DataIntegrityViolationCodes"> ! <value>2627,8114,8115</value> </property> <property name="ErrorCodes.DeadlockLoserCodes"> --- 82,86 ---- </property> <property name="ErrorCodes.DataIntegrityViolationCodes"> ! <value>544,2627,8114,8115</value> </property> <property name="ErrorCodes.DeadlockLoserCodes"> |
|
From: Mark P. <mar...@us...> - 2007-12-06 20:14:36
|
Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Data/Data/Support In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv5925/Support Modified Files: ErrorCodeExceptionTranslator.cs Log Message: SPRNET-457 - ErrorCode translation can produce extraneous UncategorizedDataAccessException Index: ErrorCodeExceptionTranslator.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Data/Data/Support/ErrorCodeExceptionTranslator.cs,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** ErrorCodeExceptionTranslator.cs 30 Oct 2007 15:24:44 -0000 1.10 --- ErrorCodeExceptionTranslator.cs 6 Dec 2007 20:14:30 -0000 1.11 *************** *** 180,219 **** if (errorCode != null) { ! if (Array.BinarySearch(errorCodes.BadSqlGrammarCodes, errorCode) >=0) { LogTranslation(task, sql, errorCode, exception, false); return new BadSqlGrammarException(task, sql, exception); } ! else if (Array.BinarySearch(errorCodes.InvalidResultSetAccessCodes, errorCode) >= 0) { LogTranslation(task, sql, errorCode, exception, false); return new InvalidResultSetAccessException(task, sql, exception); ! } ! else if (Array.BinarySearch(errorCodes.DataAccessResourceFailureCodes, errorCode) >= 0) { LogTranslation(task, sql, errorCode, exception, false); return new DataAccessResourceFailureException(BuildMessage(task, sql, exception), exception); } ! else if (Array.BinarySearch(errorCodes.PermissionDeniedCodes, errorCode) >= 0) { LogTranslation(task, sql, errorCode, exception, false); return new PermissionDeniedDataAccessException(BuildMessage(task, sql, exception), exception); } ! else if (Array.BinarySearch(errorCodes.DataIntegrityViolationCodes, errorCode) >= 0) { LogTranslation(task, sql, errorCode, exception, false); return new DataIntegrityViolationException(BuildMessage(task, sql, exception), exception); } ! else if (Array.BinarySearch(errorCodes.CannotAcquireLockCodes, errorCode) >= 0) { LogTranslation(task, sql, errorCode, exception, false); return new CannotAcquireLockException(BuildMessage(task, sql, exception), exception); } ! else if (Array.BinarySearch(errorCodes.DeadlockLoserCodes, errorCode) >= 0) { LogTranslation(task, sql, errorCode, exception, false); return new DeadlockLoserDataAccessException(BuildMessage(task, sql, exception), exception); } ! else if (Array.BinarySearch(errorCodes.CannotSerializeTransactionCodes, errorCode) >= 0) { LogTranslation(task, sql, errorCode, exception, false); --- 180,219 ---- if (errorCode != null) { ! if (Array.IndexOf(errorCodes.BadSqlGrammarCodes, errorCode) >= 0) { LogTranslation(task, sql, errorCode, exception, false); return new BadSqlGrammarException(task, sql, exception); } ! else if (Array.IndexOf(errorCodes.InvalidResultSetAccessCodes, errorCode) >= 0) { LogTranslation(task, sql, errorCode, exception, false); return new InvalidResultSetAccessException(task, sql, exception); ! } ! else if (Array.IndexOf(errorCodes.DataAccessResourceFailureCodes, errorCode) >= 0) { LogTranslation(task, sql, errorCode, exception, false); return new DataAccessResourceFailureException(BuildMessage(task, sql, exception), exception); } ! else if (Array.IndexOf(errorCodes.PermissionDeniedCodes, errorCode) >= 0) { LogTranslation(task, sql, errorCode, exception, false); return new PermissionDeniedDataAccessException(BuildMessage(task, sql, exception), exception); } ! else if (Array.IndexOf(errorCodes.DataIntegrityViolationCodes, errorCode) >= 0) { LogTranslation(task, sql, errorCode, exception, false); return new DataIntegrityViolationException(BuildMessage(task, sql, exception), exception); } ! else if (Array.IndexOf(errorCodes.CannotAcquireLockCodes, errorCode) >= 0) { LogTranslation(task, sql, errorCode, exception, false); return new CannotAcquireLockException(BuildMessage(task, sql, exception), exception); } ! else if (Array.IndexOf(errorCodes.DeadlockLoserCodes, errorCode) >= 0) { LogTranslation(task, sql, errorCode, exception, false); return new DeadlockLoserDataAccessException(BuildMessage(task, sql, exception), exception); } ! else if (Array.IndexOf(errorCodes.CannotSerializeTransactionCodes, errorCode) >= 0) { LogTranslation(task, sql, errorCode, exception, false); |
|
From: Mark P. <mar...@us...> - 2007-12-06 20:14:27
|
Update of /cvsroot/springnet/Spring.Net/doc/reference/src In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv5914 Modified Files: dao.xml Log Message: SPRNET-457 - ErrorCode translation can produce extraneous UncategorizedDataAccessException Index: dao.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/src/dao.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** dao.xml 30 Sep 2006 16:18:24 -0000 1.2 --- dao.xml 6 Dec 2007 20:14:22 -0000 1.3 *************** *** 14,18 **** activities to objects that implement these data access interfaces. These objects are commonly referred to as DAOs (Data Access Objects) and the ! architectural layer as a DAL (Data Access Layer). </para> <para>The benefits of using a DAOs in your application are increased --- 14,18 ---- activities to objects that implement these data access interfaces. These objects are commonly referred to as DAOs (Data Access Objects) and the ! architectural layer as a DAL (Data Access Layer).</para> <para>The benefits of using a DAOs in your application are increased *************** *** 23,27 **** is beneficial because tests that rely on the database are usually hard to setup and tear down and also are impractical for testing exceptional ! behavior. </para> <para>The Data Access Object (DAO) support in Spring is aimed at making it --- 23,27 ---- is beneficial because tests that rely on the database are usually hard to setup and tear down and also are impractical for testing exceptional ! behavior.</para> <para>The Data Access Object (DAO) support in Spring is aimed at making it *************** *** 51,55 **** wrong. This error code is different across providers for the same conceptual error, such as a violation of data integrity or providing bad ! SQL grammar. </para> <para>To promote writing portable and descriptive exception handling code --- 51,55 ---- wrong. This error code is different across providers for the same conceptual error, such as a violation of data integrity or providing bad ! SQL grammar.</para> <para>To promote writing portable and descriptive exception handling code *************** *** 71,75 **** meaning that one can perform some operations with ADO.NET within a consistent programming model. The above holds true for the various ! template-based versions of the ORM access framework. </para> <para>The exception hierarchy that Spring uses is outlined in the --- 71,75 ---- meaning that one can perform some operations with ADO.NET within a consistent programming model. The above holds true for the various ! template-based versions of the ORM access framework.</para> <para>The exception hierarchy that Spring uses is outlined in the *************** *** 84,88 **** <para>(Please note that the class hierarchy detailed in the above image shows only a subset of the whole, rich, ! <classname>DataAccessException</classname> hierarchy.) </para> <para>The exception translation functionality is in the namespace --- 84,88 ---- <para>(Please note that the class hierarchy detailed in the above image shows only a subset of the whole, rich, ! <classname>DataAccessException</classname> hierarchy.)</para> <para>The exception translation functionality is in the namespace *************** *** 103,115 **** <para>A default implementation, <literal>ErrorCodeExceptionTranslator</literal>, is provides that uses the ! configuration file sql-error-codes.xml to define the exact mappings of ! error codes to Spring DataAccessExceptions. You can use this API directly ! in your own Spring independent data layer. If you are using Spring's ! ADO.NET abstraction class, <literal>AdoTemplate</literal>, the converted ! exceptions will be thrown automatically. Somewhere in between these two ! cases is using Spring's declarative transaction management features in ! .NET 2.0 with the raw ADO.NET APIs and using <literal>IAdoExceptionTranslator</literal> in your exception handling ! layer. </para> <para>Some of the more common exceptions are described here. Please refer --- 103,129 ---- <para>A default implementation, <literal>ErrorCodeExceptionTranslator</literal>, is provides that uses the ! error codes defined in for each data provider in the file dbproviders.xml. ! Refer to this file for the exact mappings of error codes to Spring ! DataAccessExceptions. <classname>ErrorCodeExceptionTranslator</classname> ! allows you to customize the mapping behavior without having customize the ! <classname>IDbProvider</classname> metadata (typically in dbproviders.xml ! but can also be defined in an external location). .You can subclass ! <classname>ErrorCodeExceptionTranslator</classname> and override the ! method, <literal>DataAccessException TranslateException(string task, ! string sql, string errorCode, Exception exception)</literal>. This will ! called before referencing the metadata to perform exception translation. ! The property <literal>ExceptionTranslator</literal> on ! <literal>AdoTemplate</literal> and <literal>HibernateTemplate</literal> ! let you use your own custom implementation.</para> ! ! <para>When You can use this API directly in your own Spring independent ! data layer. If you are using Spring's ADO.NET abstraction class, ! <literal>AdoTemplate</literal>, or <literal>HibernateTemplate</literal>, ! the converted exceptions will be thrown automatically. Somewhere in ! between these two cases is using Spring's declarative transaction ! management features in .NET 2.0 with the raw ADO.NET APIs and using <literal>IAdoExceptionTranslator</literal> in your exception handling ! layer (which might be implemented in AOP using Spring's exception ! translation aspect).</para> <para>Some of the more common exceptions are described here. Please refer |
|
From: Erich E. <oak...@us...> - 2007-12-06 19:31:26
|
Update of /cvsroot/springnet/Spring.Net/doc/reference/src In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv23017 Modified Files: orm.xml Log Message: clarified OSIV's FlushMode.NEVER strategy Index: orm.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/src/orm.xml,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** orm.xml 6 Dec 2007 06:26:31 -0000 1.13 --- orm.xml 6 Dec 2007 19:31:17 -0000 1.14 *************** *** 1,3 **** ! <?xml version="1.0" encoding="UTF-8"?> <chapter id="orm"> <title>Object Relational Mapping (ORM) data access</title> --- 1,3 ---- ! <?xml version="1.0" encoding="UTF-8"?> <chapter id="orm"> <title>Object Relational Mapping (ORM) data access</title> *************** *** 228,236 **** will be opened for each operation. The exception to this rule is when using the <classname>OpenSessionInViewModule</classname> in a web ! application in single session mode. In this case the session will be ! created on the start of the web request and closed on the end of the ! request. Note that the session's flushmode will be set to ! FlushMode.NEVER at the start of the request. If a non-readonly ! transaction is performed, then during the scope of that transaction processing the flushmode will be changed to AUTO, and then set back to NEVER at the end of the transaction scope so that any changes to objects --- 228,236 ---- will be opened for each operation. The exception to this rule is when using the <classname>OpenSessionInViewModule</classname> in a web ! application in single session mode (see <xref linkend="orm-hibernate-web"/>). ! In this case the session will be created on the start of the web request and ! closed on the end of the request. Note that the session's flushmode will ! be set to <literal>FlushMode.NEVER</literal> at the start of the request. ! If a non-readonly transaction is performed, then during the scope of that transaction processing the flushmode will be changed to AUTO, and then set back to NEVER at the end of the transaction scope so that any changes to objects *************** *** 331,340 **** </objects></programlisting> ! <programlisting>public class HibernateCustomerDao : ICustomerDao { private HibernateTemplate hibernateTemplate; ! public ISessionFactory SessionFactory { set { hibernateTemplate = new HibernateTemplate(value); } --- 331,340 ---- </objects></programlisting> ! <para/> <programlisting>public class HibernateCustomerDao : ICustomerDao { private HibernateTemplate hibernateTemplate; ! public ISessionFactory SessionFactory { set { hibernateTemplate = new HibernateTemplate(value); } *************** *** 360,364 **** private HibernateTemplate hibernateTemplate; ! public ISessionFactory SessionFactory { set { hibernateTemplate = new HibernateTemplate(value); } --- 360,364 ---- private HibernateTemplate hibernateTemplate; ! public ISessionFactory SessionFactory { set { hibernateTemplate = new HibernateTemplate(value); } *************** *** 472,476 **** private SessionFactory sessionFactory; ! public ISessionFactory SessionFactory { get { return sessionFactory; } --- 472,476 ---- private SessionFactory sessionFactory; ! public ISessionFactory SessionFactory { get { return sessionFactory; } *************** *** 491,495 **** private ISessionFactory sessionFactory; ! public ISessionFactory SessionFactory { set { sessionFactory = value; } --- 491,495 ---- private ISessionFactory sessionFactory; ! public ISessionFactory SessionFactory { set { sessionFactory = value; } *************** *** 533,537 **** <programlisting><object id="sessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate12"> ! <emphasis role="bold"><property name="ExposeTransactionAwareSessionFactory" value="true" /></emphasis> --- 533,537 ---- <programlisting><object id="sessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate12"> ! <emphasis role="bold"><property name="ExposeTransactionAwareSessionFactory" value="true" /></emphasis> *************** *** 551,555 **** <!-- other dictionary entries omitted --> ! <emphasis role="bold"><entry key="hibernate.current_session_context_class" value="Spring.Data.NHibernate.SpringSessionContext, Spring.Data.NHibernate12"/></emphasis> --- 551,555 ---- <!-- other dictionary entries omitted --> ! <emphasis role="bold"><entry key="hibernate.current_session_context_class" value="Spring.Data.NHibernate.SpringSessionContext, Spring.Data.NHibernate12"/></emphasis> *************** *** 615,621 **** private ICustomerDao customerDao; ! private IOrderDao orderDao; ! private IShippingService shippingService; --- 615,621 ---- private ICustomerDao customerDao; ! private IOrderDao orderDao; ! private IShippingService shippingService; *************** *** 674,678 **** xmlns:tx="http://www.springframework.net/schema/tx" xsi:schemaLocation="http://www.springframework.net http://www.springframework.net/schema/objects/spring-objects.xsd ! http://www.springframework.net/schema/tx http://www.springframework.net/schema/tx/spring-tx-1.1.xsd"> --- 674,678 ---- xmlns:tx="http://www.springframework.net/schema/tx" xsi:schemaLocation="http://www.springframework.net http://www.springframework.net/schema/objects/spring-objects.xsd ! http://www.springframework.net/schema/tx http://www.springframework.net/schema/tx/spring-tx-1.1.xsd"> *************** *** 704,708 **** <programlisting>public class FulfillmentService : IFulfillmentService { ! // fields and properties for dao object omitted, see above --- 704,708 ---- <programlisting>public class FulfillmentService : IFulfillmentService { ! // fields and properties for dao object omitted, see above *************** *** 713,733 **** //Find all orders for customer Customer customer = CustomerDao.FindById(customerId); ! foreach (Order order in customer.Orders) { //Validate Order Validate(order); ! //Ship with external shipping service ShippingService.ShipOrder(order); ! //Update shipping date order.ShippedDate = DateTime.Now; ! //Update shipment date OrderDao.SaveOrUpdate(order); ! //Other operations...Decrease product quantity... etc ! } } --- 713,733 ---- //Find all orders for customer Customer customer = CustomerDao.FindById(customerId); ! foreach (Order order in customer.Orders) { //Validate Order Validate(order); ! //Ship with external shipping service ShippingService.ShipOrder(order); ! //Update shipping date order.ShippedDate = DateTime.Now; ! //Update shipment date OrderDao.SaveOrUpdate(order); ! //Other operations...Decrease product quantity... etc ! } } *************** *** 740,744 **** <programlisting> <object id="TxProxyConfigurationTemplate" abstract="true" type="Spring.Transaction.Interceptor.TransactionProxyFactoryObject, Spring.Data"> ! <property name="PlatformTransactionManager" ref="HibernateTransactionManager"/> --- 740,744 ---- <programlisting> <object id="TxProxyConfigurationTemplate" abstract="true" type="Spring.Transaction.Interceptor.TransactionProxyFactoryObject, Spring.Data"> ! <property name="PlatformTransactionManager" ref="HibernateTransactionManager"/> *************** *** 799,803 **** </section> ! <section> <title>Web Session Management</title> --- 799,803 ---- </section> ! <section id="orm-hibernate-web"> <title>Web Session Management</title> *************** *** 839,842 **** --- 839,854 ---- be unique across all sessions. Problems can arise if the same object is associated with more than one hibernate session.</para> + + <important><para>By default, OSIV applies <literal>FlushMode.NEVER</literal> on every session it creates. + This is because if OSIV flushed pending changes during "EndRequest" and an error occurs, all response + has already been sent to the client. There would be no way of telling the client about the + error.</para> + <para> + By default this means you MUST explicitely demarcate transaction boundaries + around non-readonly statements when using OSIV. + For configuring transactions see <xref linkend="orm-hibernate-tx-declarative" /> or + the <command>Spring.Data.NHibernate.Northwind</command> example application. + </para> + </important> </section> *************** *** 850,854 **** <programlisting>using (new SessionScope()) { ! ... do multiple operations with a single session, possibly in multiple transactions. }</programlisting> --- 862,866 ---- <programlisting>using (new SessionScope()) { ! ... do multiple operations with a single session, possibly in multiple transactions. }</programlisting> |
|
From: Erich E. <oak...@us...> - 2007-12-06 17:54:59
|
Update of /cvsroot/springnet/Spring.Net/doc/reference/styles In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv16811 Modified Files: html_chunk.xsl Log Message: fixed wrong top banner name SS-banner-rhs.png -> S2-banner-rhs.png Index: html_chunk.xsl =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/styles/html_chunk.xsl,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** html_chunk.xsl 6 Dec 2007 15:53:08 -0000 1.7 --- html_chunk.xsl 6 Dec 2007 17:54:52 -0000 1.8 *************** *** 90,94 **** </a> <a style="border:none;" href="http://www.springsource.com/" title="SpringSource"> ! <img style="border:none;position:absolute;padding-top:5px;right:42px;" src="images/SS-banner-rhs.png" /> </a> </div> --- 90,94 ---- </a> <a style="border:none;" href="http://www.springsource.com/" title="SpringSource"> ! <img style="border:none;position:absolute;padding-top:5px;right:42px;" src="images/S2-banner-rhs.png" /> </a> </div> |
|
From: Erich E. <oak...@us...> - 2007-12-06 17:52:00
|
Update of /cvsroot/springnet/Spring.Net/doc/reference/src In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv15669 Modified Files: web.xml Log Message: added hint to App_GlobalResources pseudo assemblyname Index: web.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/src/web.xml,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** web.xml 6 Dec 2007 17:33:17 -0000 1.28 --- web.xml 6 Dec 2007 17:51:57 -0000 1.29 *************** *** 1657,1668 **** explanation:</para> ! <programlisting> ! <data name="$this.saveButton.Text"> <value>$messageSource.save</value> </data> <data name="$this.cancelButton.Text"> <value>$messageSource.cancel</value> ! </data> ! </programlisting> <para>In some cases it makes sense to apply a resource that is defined --- 1657,1666 ---- explanation:</para> ! <programlisting><data name="$this.saveButton.Text"> <value>$messageSource.save</value> </data> <data name="$this.cancelButton.Text"> <value>$messageSource.cancel</value> ! </data></programlisting> <para>In some cases it makes sense to apply a resource that is defined *************** *** 1701,1704 **** --- 1699,1707 ---- </object></programlisting> + <important><title>NET 2.0</title> + <para>To use resources from your App_GlobalResources folder, specify <literal>App_GlobalResources</literal> as assembly name (see the SpringAir example application for more):</para> + <literal><value>Resources.Strings, App_GlobalResources</value></literal> + </important> + <para>The global resources are cached within the Spring.NET <classname>IApplicationContext</classname> and are accessible through *************** *** 1714,1717 **** --- 1717,1721 ---- <para>Currently, the <literal>ResourceSetMessageSource</literal> is the only message source implementation that ships with Spring.NET.</para> + </sect2> |
|
From: Erich E. <oak...@us...> - 2007-12-06 17:33:21
|
Update of /cvsroot/springnet/Spring.Net/doc/reference/src In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv8398 Modified Files: web.xml Log Message: SPRNET-555, improved docs on configuring and using Localizers and Message Sources Index: web.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/src/web.xml,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** web.xml 6 Dec 2007 08:53:35 -0000 1.27 --- web.xml 6 Dec 2007 17:33:17 -0000 1.28 *************** *** 1,3 **** ! <?xml version="1.0" encoding="UTF-8"?> <chapter id="web"> <title>Spring.NET Web Framework</title> --- 1,3 ---- ! <?xml version="1.0" encoding="UTF-8"?> <chapter id="web"> <title>Spring.NET Web Framework</title> *************** *** 1494,1498 **** <note> ! The Visual Studio Web Form Editor will of course complain about binding attributes because it doesn't know them. You can safely ignore those warnings. </note> </sect2> --- 1494,1498 ---- <note> ! The Visual Studio Web Form Editor will of course complain about binding attributes because it doesn't know them. You can safely ignore those warnings. </note> </sect2> *************** *** 1500,1504 **** <sect1 id="web-localization"> ! <title>Localization</title> <para>While recognizing that the .NET framework has excellent support for --- 1500,1504 ---- <sect1 id="web-localization"> ! <title>Localization and Message Sources</title> <para>While recognizing that the .NET framework has excellent support for *************** *** 1508,1512 **** <para>Every <literal>.aspx</literal> page in an ASP.NET project has a resource file associated with it, but those resources are never used (by ! the current ASP.NEt infrastructure). ASP.NET 2.0 will change that and allow application developers to use local resources for pages. In the meantime, the Spring.NET team built support for using local pages --- 1508,1512 ---- <para>Every <literal>.aspx</literal> page in an ASP.NET project has a resource file associated with it, but those resources are never used (by ! the current ASP.NET infrastructure). ASP.NET 2.0 will change that and allow application developers to use local resources for pages. In the meantime, the Spring.NET team built support for using local pages *************** *** 1568,1595 **** <td><asp:TextBox id="name" Runat="server" Width="150px"/></td> </tr> ! <tr> ! <td><asp:Label id="street1Label" Runat="server"/></td> ! <td><asp:TextBox id="street1" Runat="server" Width="150px"/></td> ! </tr> ! <tr> ! <td><asp:Label id="street2Label" Runat="server"/></td> ! <td><asp:TextBox id="street2" Runat="server" Width="150px"/></td> ! </tr> ! <tr> ! <td><asp:Label id="cityLabel" Runat="server"/></td> ! <td><asp:TextBox id="city" Runat="server" Width="150px"/></td> ! </tr> ! <tr> ! <td><asp:Label id="stateLabel" Runat="server"/></td> ! <td><asp:TextBox id="state" Runat="server" Width="30px"/></td> ! </tr> ! <tr> ! <td><asp:Label id="postalCodeLabel" Runat="server"/></td> ! <td><asp:TextBox id="postalCode" Runat="server" Width="60px"/></td> ! </tr> ! <tr> ! <td><asp:Label id="countryLabel" Runat="server"/></td> ! <td><asp:TextBox id="country" Runat="server" Width="150px"/></td> ! </tr> <tr> <td colspan="2"> --- 1568,1573 ---- <td><asp:TextBox id="name" Runat="server" Width="150px"/></td> </tr> ! ... ! <tr> <td colspan="2"> *************** *** 1629,1647 **** <value>Full name:</value> </data> ! <data name="$this.street1Label.Text"> ! <value>Street 1:</value> ! </data> ! <data name="$this.street2Label.Text"> ! <value>Street 2:</value> ! </data> ! <data name="$this.cityLabel.Text"> ! <value>City:</value> ! </data> ! <data name="$this.stateLabel.Text"> ! <value>State:</value> ! </data> ! <data name="$this.postalCodeLabel.Text"> ! <value>ZIP:</value> ! </data> <data name="$this.countryLabel.Text"> <value>Country:</value> --- 1607,1613 ---- <value>Full name:</value> </data> ! ! ... ! <data name="$this.countryLabel.Text"> <value>Country:</value> *************** *** 1655,1664 **** </root></programlisting> ! <para>The last two resource definitions require some additional ! explanation. In some cases it makes sense to apply a resource that is ! defined <emphasis>globally</emphasis> as opposed to locally. In this ! example, it makes better sense to define values for the ! <literal>Save</literal> and <literal>Cancel</literal> buttons globally ! as they will probably be used throughout the application.</para> <para>The above example demonstrates how one can achieve that by --- 1621,1674 ---- </root></programlisting> ! <tip> ! <title>VS2003</title> ! <para>To view the .resx file for a page, you may need to enable ! "Project/Show All Files" in Visual Studio.NET. When "Show All Files" ! is enabled, the .resx file appears like a "child" of the code-behind ! page.</para> ! ! <para>When Visual Studio.NET creates the .resx file, it will include a ! <literal>xds:schema</literal>element and several ! <literal>reshead</literal> elements. Your data elements will follow ! the <literal>reshead</literal> elements. When working with the .resx ! files, you may want to chose "Open With" from the context menu and ! select the "Source Code" text editor.</para> ! </tip> ! <tip> ! <title>VS2005</title> ! <para>To create a resource file in VS2005, open your control or page in ! design mode and select "Tools/Generate local resource" from the menu</para> ! </tip> ! ! <para>Finally a localizer must be configured for the page to enable automatic localization: ! </para> ! <programlisting><object id="localizer" type="Spring.Globalization.Localizers.ResourceSetLocalizer, Spring.Core"/> ! ! <object type="UserRegistration.aspx"> ! <property name="Localizer" ref="localizer"/> ! </object></programlisting> ! <para>For more information on configuring localizers see <xref linkend="web-localizers" /></para> ! </sect2> ! ! <sect2 id="web-globalresources"> ! <title>Global Message Sources</title> ! ! <para>The last two resource definitions from the previous section require some additional ! explanation:</para> ! ! <programlisting> ! <data name="$this.saveButton.Text"> ! <value>$messageSource.save</value> ! </data> ! <data name="$this.cancelButton.Text"> ! <value>$messageSource.cancel</value> ! </data> ! </programlisting> ! ! <para>In some cases it makes sense to apply a resource that is defined ! <emphasis>globally</emphasis> as opposed to locally. In this example, it ! makes better sense to define values for the <literal>Save</literal> and ! <literal>Cancel</literal> buttons globally as they will probably be used ! throughout the application.</para> <para>The above example demonstrates how one can achieve that by *************** *** 1678,1694 **** source lookup using the correct culture.</para> ! <tip> ! <para>To view the .resx file for a page, you may need to enable ! "Project/Show All Files" in Visual Studio.NET. When "Show All Files" ! is enabled, the .resx file appears like a "child" of the code-behind ! page.</para> ! <para>When Visual Studio.NET creates the .resx file, it will include a ! <literal>xds:schema</literal>element and several ! <literal>reshead</literal> elements. Your data elements will follow ! the <literal>reshead</literal> elements. When working with the .resx ! files, you may want to chose "Open With" from the context menu and ! select the "Source Code" text editor.</para> ! </tip> </sect2> --- 1688,1717 ---- source lookup using the correct culture.</para> ! <para>Global resources are (on a per-context basis) defined as a plain ! vanilla object definition using the reserved name of ! <literal>'messageSource'</literal>, which one can add to one's ! Spring.NET configuration file as shown below.</para> ! <programlisting><object id="messageSource" type="Spring.Context.Support.ResourceSetMessageSource, Spring.Core"> ! <property name="ResourceManagers"> ! <list> ! <value>MyApp.Web.Resources.Strings, MyApp.Web</value> ! </list> ! </property> ! </object></programlisting> ! ! <para>The global resources are cached within the Spring.NET ! <classname>IApplicationContext</classname> and are accessible through ! the Spring.NET <literal>IMessageSource</literal> interface.</para> ! ! <para>The Spring.Web <literal>Page</literal> and ! <literal>UserControl</literal> classes have a reference to their owning ! <classname>IApplicationContext</classname> and it's associated ! <literal>IMessageSource</literal>. As such, they will automatically ! redirect resource lookups to a global message source if a local resource ! cannot be found.</para> ! ! <para>Currently, the <literal>ResourceSetMessageSource</literal> is the ! only message source implementation that ships with Spring.NET.</para> </sect2> *************** *** 1855,1889 **** </sect2> - <sect2 id="web-globalresources"> - <title>Global Resources</title> - - <para>Global resources are (on a per-context basis) defined as a plain - vanilla object definition using the reserved name of - <literal>'messageSource'</literal>, which one can add to one's - Spring.NET configuration file as shown below.</para> - - <programlisting><object id="messageSource" type="Spring.Context.Support.ResourceSetMessageSource, Spring.Core"> - <property name="ResourceManagers"> - <list> - <value>MyApp.Web.Resources.Strings, MyApp.Web</value> - </list> - </property> - </object></programlisting> - - <para>The global resources are cached within the Spring.NET - <classname>IApplicationContext</classname> and are accessible through - the Spring.NET <literal>IMessageSource</literal> interface.</para> - - <para>The Spring.Web <literal>Page</literal> and - <literal>UserControl</literal> classes have a reference to their owning - <classname>IApplicationContext</classname> and it's associated - <literal>IMessageSource</literal>. As such, they will automatically - redirect resource lookups to a global message source if a local resource - cannot be found.</para> - - <para>Currently, the <literal>ResourceSetMessageSource</literal> is the - only message source implementation that ships with Spring.NET.</para> - </sect2> - <sect2 id="web-culture"> <title>User Culture Management</title> --- 1878,1881 ---- |
|
From: Mark P. <mar...@us...> - 2007-12-06 17:17:28
|
Update of /cvsroot/springnet/Spring.Net/test/Spring/Spring.Aop.Tests/Aspects/Logging In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv1557 Modified Files: SimpleLoggingAdviceTests.cs TestableSimpleLoggingAdvice.cs Log Message: SPRNET-800 - SimpleLoggingAdvice does not correctly check for logging level other than trace. Index: TestableSimpleLoggingAdvice.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/test/Spring/Spring.Aop.Tests/Aspects/Logging/TestableSimpleLoggingAdvice.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TestableSimpleLoggingAdvice.cs 8 Oct 2007 22:05:27 -0000 1.1 --- TestableSimpleLoggingAdvice.cs 6 Dec 2007 17:17:24 -0000 1.2 *************** *** 57,60 **** --- 57,71 ---- return InvokeUnderLog(invocation, log); } + + /// <summary> + /// Calls the IsInterceptorEnabled method. + /// </summary> + /// <param name="invocation">The invocation.</param> + /// <param name="log">The log.</param> + /// <returns>The result of the protected method IsInterceptorEnabled</returns> + public bool CallIsInterceptorEnabled(IMethodInvocation invocation, ILog log) + { + return IsInterceptorEnabled(invocation, log); + } } } \ No newline at end of file Index: SimpleLoggingAdviceTests.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/test/Spring/Spring.Aop.Tests/Aspects/Logging/SimpleLoggingAdviceTests.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** SimpleLoggingAdviceTests.cs 6 Dec 2007 06:45:33 -0000 1.2 --- SimpleLoggingAdviceTests.cs 6 Dec 2007 17:17:24 -0000 1.3 *************** *** 87,95 **** Expect.Call(methodInvocation.Method).Return(mi).Repeat.Any(); ! Expect.Call(log.IsDebugEnabled).Return(true).Repeat.Any(); log.Debug("Entering ToString"); ! Expect.Call(methodInvocation.Proceed()).Return(null); --- 87,95 ---- Expect.Call(methodInvocation.Method).Return(mi).Repeat.Any(); ! Expect.Call(log.IsTraceEnabled).Return(false).Repeat.Any(); Expect.Call(log.IsDebugEnabled).Return(true).Repeat.Any(); log.Debug("Entering ToString"); ! Expect.Call(methodInvocation.Proceed()).Return(null); *************** *** 100,103 **** --- 100,104 ---- TestableSimpleLoggingAdvice loggingAdvice = new TestableSimpleLoggingAdvice(true); loggingAdvice.LogLevel = LogLevel.Debug; + Assert.IsTrue(loggingAdvice.CallIsInterceptorEnabled(methodInvocation, log)); loggingAdvice.CallInvokeUnderLog(methodInvocation, log); |
|
From: Mark P. <mar...@us...> - 2007-12-06 17:17:23
|
Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Aop/Aspects/Logging In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv1544 Modified Files: AbstractLoggingAdvice.cs SimpleLoggingAdvice.cs Log Message: SPRNET-800 - SimpleLoggingAdvice does not correctly check for logging level other than trace. Index: SimpleLoggingAdvice.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Aop/Aspects/Logging/SimpleLoggingAdvice.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** SimpleLoggingAdvice.cs 11 Oct 2007 01:29:42 -0000 1.4 --- SimpleLoggingAdvice.cs 6 Dec 2007 17:17:19 -0000 1.5 *************** *** 204,207 **** --- 204,267 ---- } + + /// <summary> + /// Determines whether the given log is enabled. + /// </summary> + /// <param name="log">The log instance to check.</param> + /// <returns> + /// <c>true</c> if log is for a given log level; otherwise, <c>false</c>. + /// </returns> + /// <remarks> + /// Default is true when the trace level is enabled. Subclasses may override this + /// to change the level at which logging occurs, or return true to ignore level + /// checks.</remarks> + protected override bool IsLogEnabled(ILog log) + { + switch (LogLevel) + { + case LogLevel.All: + case LogLevel.Trace: + if (log.IsTraceEnabled) + { + return true; + } + break; + case LogLevel.Debug: + if (log.IsDebugEnabled) + { + return true; + } + break; + case LogLevel.Error: + if (log.IsErrorEnabled) + { + return true; + } + break; + case LogLevel.Fatal: + if (log.IsFatalEnabled) + { + return true; + } + break; + case LogLevel.Info: + if (log.IsInfoEnabled) + { + return true; + } + break; + case LogLevel.Warn: + if (log.IsWarnEnabled) + { + return true; + } + break; + case LogLevel.Off: + default: + break; + } + return false; + } + /// <summary> /// Creates a unique identifier. Index: AbstractLoggingAdvice.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Aop/Aspects/Logging/AbstractLoggingAdvice.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AbstractLoggingAdvice.cs 8 Oct 2007 22:05:16 -0000 1.1 --- AbstractLoggingAdvice.cs 6 Dec 2007 17:17:19 -0000 1.2 *************** *** 178,182 **** /// <c>true</c> if log is for a given log level; otherwise, <c>false</c>. /// </returns> ! private bool IsLogEnabled(ILog log) { return log.IsTraceEnabled; --- 178,182 ---- /// <c>true</c> if log is for a given log level; otherwise, <c>false</c>. /// </returns> ! protected virtual bool IsLogEnabled(ILog log) { return log.IsTraceEnabled; |
|
From: Erich E. <oak...@us...> - 2007-12-06 15:53:17
|
Update of /cvsroot/springnet/Spring.Net/doc/reference/styles In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv31696/reference/styles Modified Files: fopdf.xsl html.xsl html_chunk.xsl Log Message: fixed admonition image paths Index: html_chunk.xsl =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/styles/html_chunk.xsl,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** html_chunk.xsl 6 Dec 2007 07:54:17 -0000 1.6 --- html_chunk.xsl 6 Dec 2007 15:53:08 -0000 1.7 *************** *** 1,10 **** <?xml version="1.0" ?> ! <!-- This is the XSL HTML configuration file for the Spring Reference Documentation. --> <!DOCTYPE xsl:stylesheet [ <!ENTITY db_xsl_path "../lib/docbook-xsl/"> ! <!ENTITY callout_gfx_path "../images/callouts/"> ! <!ENTITY admon_gfx_path "../images/admons/"> ]> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns="http://www.w3.org/TR/xhtml1/transitional" --- 1,10 ---- <?xml version="1.0" ?> ! <!-- This is the XSL HTML configuration file for the Spring Reference Documentation. --> <!DOCTYPE xsl:stylesheet [ <!ENTITY db_xsl_path "../lib/docbook-xsl/"> ! <!ENTITY callout_gfx_path "./images/callouts/"> ! <!ENTITY admon_gfx_path "./images/admons/"> ]> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns="http://www.w3.org/TR/xhtml1/transitional" Index: fopdf.xsl =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/styles/fopdf.xsl,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** fopdf.xsl 2 Oct 2007 03:46:26 -0000 1.10 --- fopdf.xsl 6 Dec 2007 15:53:08 -0000 1.11 *************** *** 1,9 **** <?xml version="1.0"?> ! <!-- This is the XSL FO (PDF) stylesheet for the Spring reference documentation. ! Thanks are due to Christian Bauer of the Hibernate project team for writing the original stylesheet upon which this one --- 1,9 ---- <?xml version="1.0"?> ! <!-- This is the XSL FO (PDF) stylesheet for the Spring reference documentation. ! Thanks are due to Christian Bauer of the Hibernate project team for writing the original stylesheet upon which this one *************** *** 13,17 **** <!DOCTYPE xsl:stylesheet [ <!ENTITY db_xsl_path "../lib/docbook-xsl/"> ! <!ENTITY admon_gfx_path "../images/admons/"> <!ENTITY copyright "©"> ]> --- 13,17 ---- <!DOCTYPE xsl:stylesheet [ <!ENTITY db_xsl_path "../lib/docbook-xsl/"> ! <!ENTITY admon_gfx_path "./images/admons/"> <!ENTITY copyright "©"> ]> *************** *** 22,32 **** xmlns:fo="http://www.w3.org/1999/XSL/Format" exclude-result-prefixes="#default"> ! <xsl:import href="&db_xsl_path;/fo/docbook.xsl"/> <!--################################################### Custom Title Page ! ################################################### --> ! <xsl:template name="book.titlepage.recto"> <fo:block> --- 22,32 ---- xmlns:fo="http://www.w3.org/1999/XSL/Format" exclude-result-prefixes="#default"> ! <xsl:import href="&db_xsl_path;/fo/docbook.xsl"/> <!--################################################### Custom Title Page ! ################################################### --> ! <xsl:template name="book.titlepage.recto"> <fo:block> *************** *** 40,47 **** </fo:block> <fo:block font-family="Helvetica" font-size="22pt" padding-before="10mm"> ! <xsl:value-of select="bookinfo/subtitle"/> </fo:block> <fo:block font-family="Helvetica" font-size="12pt" padding="10mm"> ! <xsl:value-of select="bookinfo/releaseinfo"/> </fo:block> </fo:table-cell> --- 40,47 ---- </fo:block> <fo:block font-family="Helvetica" font-size="22pt" padding-before="10mm"> ! <xsl:value-of select="bookinfo/subtitle"/> </fo:block> <fo:block font-family="Helvetica" font-size="12pt" padding="10mm"> ! <xsl:value-of select="bookinfo/releaseinfo"/> </fo:block> </fo:table-cell> *************** *** 50,54 **** <fo:table-cell text-align="center"> <fo:block font-family="Helvetica" font-size="14pt" padding="10mm"> ! <xsl:value-of select="bookinfo/pubdate"/> </fo:block> </fo:table-cell> --- 50,54 ---- <fo:table-cell text-align="center"> <fo:block font-family="Helvetica" font-size="14pt" padding="10mm"> ! <xsl:value-of select="bookinfo/pubdate"/> </fo:block> </fo:table-cell> *************** *** 68,72 **** </fo:block> <fo:block font-family="Helvetica" font-size="10pt" padding="1mm"> ! <xsl:value-of select="bookinfo/legalnotice"/> </fo:block> </fo:table-cell> --- 68,72 ---- </fo:block> <fo:block font-family="Helvetica" font-size="10pt" padding="1mm"> ! <xsl:value-of select="bookinfo/legalnotice"/> </fo:block> </fo:table-cell> *************** *** 77,81 **** </xsl:template> ! <!-- Prevent blank pages in output --> <xsl:template name="book.titlepage.before.verso"> </xsl:template> --- 77,81 ---- </xsl:template> ! <!-- Prevent blank pages in output --> <xsl:template name="book.titlepage.before.verso"> </xsl:template> *************** *** 84,91 **** <xsl:template name="book.titlepage.separator"> </xsl:template> ! <!--################################################### Header ! ################################################### --> <!-- More space in the center header for long text --> --- 84,91 ---- <xsl:template name="book.titlepage.separator"> </xsl:template> ! <!--################################################### Header ! ################################################### --> <!-- More space in the center header for long text --> *************** *** 100,104 **** <!--################################################### Custom Footer ! ################################################### --> <xsl:template name="footer.content"> <xsl:param name="pageclass" select="''" /> --- 100,104 ---- <!--################################################### Custom Footer ! ################################################### --> <xsl:template name="footer.content"> <xsl:param name="pageclass" select="''" /> *************** *** 143,152 **** </xsl:when> </xsl:choose> ! </xsl:template> ! <!--################################################### Custom Toc Line ################################################### --> ! <!-- The default DocBook XSL TOC printing is seriously broken... --> <xsl:template name="toc.line"> --- 143,152 ---- </xsl:when> </xsl:choose> ! </xsl:template> ! <!--################################################### Custom Toc Line ################################################### --> ! <!-- The default DocBook XSL TOC printing is seriously broken... --> <xsl:template name="toc.line"> *************** *** 171,175 **** <xsl:attribute name="font-weight">bold</xsl:attribute> </xsl:when> ! </xsl:choose> <fo:basic-link internal-destination="{$id}"> <xsl:if test="$label != ''"> --- 171,175 ---- <xsl:attribute name="font-weight">bold</xsl:attribute> </xsl:when> ! </xsl:choose> <fo:basic-link internal-destination="{$id}"> <xsl:if test="$label != ''"> *************** *** 196,203 **** </fo:block> </xsl:template> ! <!--################################################### Extensions ! ################################################### --> <!-- These extensions are required for table printing and other stuff --> --- 196,203 ---- </fo:block> </xsl:template> ! <!--################################################### Extensions ! ################################################### --> <!-- These extensions are required for table printing and other stuff --> *************** *** 210,214 **** <!--################################################### Table Of Contents ! ################################################### --> <!-- Generate the TOCs for named components only --> --- 210,214 ---- <!--################################################### Table Of Contents ! ################################################### --> <!-- Generate the TOCs for named components only --> *************** *** 216,231 **** book toc </xsl:param> ! <!-- Show only Sections up to level 3 in the TOCs --> <xsl:param name="toc.section.depth">2</xsl:param> ! <!-- Dot and Whitespace as separator in TOC between Label and Title--> <xsl:param name="autotoc.label.separator" select="'. '"/> ! <!--################################################### Paper & Page Size ! ################################################### --> ! <!-- Paper type, no headers on blank pages, no double sided printing --> <xsl:param name="paper.type" select="'A4'"/> --- 216,231 ---- book toc </xsl:param> ! <!-- Show only Sections up to level 3 in the TOCs --> <xsl:param name="toc.section.depth">2</xsl:param> ! <!-- Dot and Whitespace as separator in TOC between Label and Title--> <xsl:param name="autotoc.label.separator" select="'. '"/> ! <!--################################################### Paper & Page Size ! ################################################### --> ! <!-- Paper type, no headers on blank pages, no double sided printing --> <xsl:param name="paper.type" select="'A4'"/> *************** *** 238,246 **** <xsl:param name="region.before.extent">10mm</xsl:param> <xsl:param name="body.margin.top">10mm</xsl:param> ! <xsl:param name="body.margin.bottom">15mm</xsl:param> <xsl:param name="region.after.extent">10mm</xsl:param> <xsl:param name="page.margin.bottom">0mm</xsl:param> ! <xsl:param name="page.margin.outer">18mm</xsl:param> <xsl:param name="page.margin.inner">18mm</xsl:param> --- 238,246 ---- <xsl:param name="region.before.extent">10mm</xsl:param> <xsl:param name="body.margin.top">10mm</xsl:param> ! <xsl:param name="body.margin.bottom">15mm</xsl:param> <xsl:param name="region.after.extent">10mm</xsl:param> <xsl:param name="page.margin.bottom">0mm</xsl:param> ! <xsl:param name="page.margin.outer">18mm</xsl:param> <xsl:param name="page.margin.inner">18mm</xsl:param> *************** *** 251,255 **** <!--################################################### Fonts & Styles ! ################################################### --> <!-- Left aligned text and no hyphenation --> --- 251,255 ---- <!--################################################### Fonts & Styles ! ################################################### --> <!-- Left aligned text and no hyphenation --> *************** *** 271,275 **** <xsl:attribute name="font-size">0.8em</xsl:attribute> </xsl:attribute-set> ! <!--################################################### Tables --- 271,275 ---- <xsl:attribute name="font-size">0.8em</xsl:attribute> </xsl:attribute-set> ! <!--################################################### Tables *************** *** 279,283 **** <xsl:param name="default.table.width">17.4cm</xsl:param> ! <!-- Some padding inside tables --> <xsl:attribute-set name="table.cell.padding"> <xsl:attribute name="padding-left">4pt</xsl:attribute> --- 279,283 ---- <xsl:param name="default.table.width">17.4cm</xsl:param> ! <!-- Some padding inside tables --> <xsl:attribute-set name="table.cell.padding"> <xsl:attribute name="padding-left">4pt</xsl:attribute> *************** *** 286,297 **** <xsl:attribute name="padding-bottom">4pt</xsl:attribute> </xsl:attribute-set> ! <!-- Only hairlines as frame and cell borders in tables --> <xsl:param name="table.frame.border.thickness">0.1pt</xsl:param> <xsl:param name="table.cell.border.thickness">0.1pt</xsl:param> ! <!--################################################### Labels ! ################################################### --> <!-- Label Chapters and Sections (numbering) --> --- 286,297 ---- <xsl:attribute name="padding-bottom">4pt</xsl:attribute> </xsl:attribute-set> ! <!-- Only hairlines as frame and cell borders in tables --> <xsl:param name="table.frame.border.thickness">0.1pt</xsl:param> <xsl:param name="table.cell.border.thickness">0.1pt</xsl:param> ! <!--################################################### Labels ! ################################################### --> <!-- Label Chapters and Sections (numbering) --> *************** *** 302,307 **** <!--################################################### Titles ! ################################################### --> ! <!-- Chapter title size --> <xsl:attribute-set name="chapter.titlepage.recto.style"> --- 302,307 ---- <!--################################################### Titles ! ################################################### --> ! <!-- Chapter title size --> <xsl:attribute-set name="chapter.titlepage.recto.style"> *************** *** 311,318 **** <xsl:value-of select="$body.font.master * 1.8"/> <xsl:text>pt</xsl:text> ! </xsl:attribute> </xsl:attribute-set> ! <!-- Why is the font-size for chapters hardcoded in the XSL FO templates? Let's remove it, so this sucker can use our attribute-set only... --> <xsl:template match="title" mode="chapter.titlepage.recto.auto.mode"> --- 311,318 ---- <xsl:value-of select="$body.font.master * 1.8"/> <xsl:text>pt</xsl:text> ! </xsl:attribute> </xsl:attribute-set> ! <!-- Why is the font-size for chapters hardcoded in the XSL FO templates? Let's remove it, so this sucker can use our attribute-set only... --> <xsl:template match="title" mode="chapter.titlepage.recto.auto.mode"> *************** *** 324,329 **** </fo:block> </xsl:template> ! ! <!-- Sections 1, 2 and 3 titles have a small bump factor and padding --> <xsl:attribute-set name="section.title.level1.properties"> <xsl:attribute name="space-before.optimum">0.8em</xsl:attribute> --- 324,329 ---- </fo:block> </xsl:template> ! ! <!-- Sections 1, 2 and 3 titles have a small bump factor and padding --> <xsl:attribute-set name="section.title.level1.properties"> <xsl:attribute name="space-before.optimum">0.8em</xsl:attribute> *************** *** 374,383 **** <xsl:attribute name="space-after.optimum">0.6em</xsl:attribute> <xsl:attribute name="space-after.maximum">0.8em</xsl:attribute> ! </xsl:attribute-set> <!--################################################### Programlistings ! ################################################### --> ! <!-- Verbatim text formatting (programlistings) --> <xsl:attribute-set name="monospace.verbatim.properties"> --- 374,383 ---- <xsl:attribute name="space-after.optimum">0.6em</xsl:attribute> <xsl:attribute name="space-after.maximum">0.8em</xsl:attribute> ! </xsl:attribute-set> <!--################################################### Programlistings ! ################################################### --> ! <!-- Verbatim text formatting (programlistings) --> <xsl:attribute-set name="monospace.verbatim.properties"> *************** *** 387,391 **** </xsl:attribute> </xsl:attribute-set> ! <xsl:attribute-set name="verbatim.properties"> <xsl:attribute name="space-before.minimum">1em</xsl:attribute> --- 387,391 ---- </xsl:attribute> </xsl:attribute-set> ! <xsl:attribute-set name="verbatim.properties"> <xsl:attribute name="space-before.minimum">1em</xsl:attribute> *************** *** 394,420 **** <xsl:attribute name="border-color">#444444</xsl:attribute> <xsl:attribute name="border-style">solid</xsl:attribute> ! <xsl:attribute name="border-width">0.1pt</xsl:attribute> ! <xsl:attribute name="padding-top">0.5em</xsl:attribute> ! <xsl:attribute name="padding-left">0.5em</xsl:attribute> ! <xsl:attribute name="padding-right">0.5em</xsl:attribute> ! <xsl:attribute name="padding-bottom">0.5em</xsl:attribute> ! <xsl:attribute name="margin-left">0.5em</xsl:attribute> ! <xsl:attribute name="margin-right">0.5em</xsl:attribute> ! </xsl:attribute-set> ! <!-- Shade (background) programlistings --> <xsl:param name="shade.verbatim">1</xsl:param> <xsl:attribute-set name="shade.verbatim.style"> <xsl:attribute name="background-color">#F0F0F0</xsl:attribute> </xsl:attribute-set> ! <!--################################################### Callouts ! ################################################### --> <!-- Use images for callouts instead of (1) (2) (3) --> <xsl:param name="callout.graphics">0</xsl:param> <xsl:param name="callout.unicode">1</xsl:param> ! <!-- Place callout marks at this column in annotated areas --> <xsl:param name="callout.defaultcolumn">90</xsl:param> --- 394,420 ---- <xsl:attribute name="border-color">#444444</xsl:attribute> <xsl:attribute name="border-style">solid</xsl:attribute> ! <xsl:attribute name="border-width">0.1pt</xsl:attribute> ! <xsl:attribute name="padding-top">0.5em</xsl:attribute> ! <xsl:attribute name="padding-left">0.5em</xsl:attribute> ! <xsl:attribute name="padding-right">0.5em</xsl:attribute> ! <xsl:attribute name="padding-bottom">0.5em</xsl:attribute> ! <xsl:attribute name="margin-left">0.5em</xsl:attribute> ! <xsl:attribute name="margin-right">0.5em</xsl:attribute> ! </xsl:attribute-set> ! <!-- Shade (background) programlistings --> <xsl:param name="shade.verbatim">1</xsl:param> <xsl:attribute-set name="shade.verbatim.style"> <xsl:attribute name="background-color">#F0F0F0</xsl:attribute> </xsl:attribute-set> ! <!--################################################### Callouts ! ################################################### --> <!-- Use images for callouts instead of (1) (2) (3) --> <xsl:param name="callout.graphics">0</xsl:param> <xsl:param name="callout.unicode">1</xsl:param> ! <!-- Place callout marks at this column in annotated areas --> <xsl:param name="callout.defaultcolumn">90</xsl:param> *************** *** 422,426 **** <!--################################################### Admonitions ! ################################################### --> <!-- Use nice graphics for admonitions --> --- 422,426 ---- <!--################################################### Admonitions ! ################################################### --> <!-- Use nice graphics for admonitions --> *************** *** 430,434 **** <!--################################################### Misc ! ################################################### --> <!-- Placement of titles --> --- 430,434 ---- <!--################################################### Misc ! ################################################### --> <!-- Placement of titles --> *************** *** 440,444 **** procedure before </xsl:param> ! <!-- Format Variable Lists as Blocks (prevents horizontal overflow) --> <xsl:param name="variablelist.as.blocks">1</xsl:param> --- 440,444 ---- procedure before </xsl:param> ! <!-- Format Variable Lists as Blocks (prevents horizontal overflow) --> <xsl:param name="variablelist.as.blocks">1</xsl:param> *************** *** 453,475 **** <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute> </xsl:attribute-set> ! <!--################################################### ! colored and hyphenated links ! ################################################### --> ! <xsl:template match="ulink"> ! <fo:basic-link external-destination="{@url}" ! xsl:use-attribute-sets="xref.properties" ! text-decoration="underline" ! color="blue"> ! <xsl:choose> ! <xsl:when test="count(child::node())=0"> ! <xsl:value-of select="@url"/> ! </xsl:when> ! <xsl:otherwise> ! <xsl:apply-templates/> ! </xsl:otherwise> ! </xsl:choose> ! </fo:basic-link> ! </xsl:template> ! </xsl:stylesheet> --- 453,475 ---- <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute> </xsl:attribute-set> ! <!--################################################### ! colored and hyphenated links ! ################################################### --> ! <xsl:template match="ulink"> ! <fo:basic-link external-destination="{@url}" ! xsl:use-attribute-sets="xref.properties" ! text-decoration="underline" ! color="blue"> ! <xsl:choose> ! <xsl:when test="count(child::node())=0"> ! <xsl:value-of select="@url"/> ! </xsl:when> ! <xsl:otherwise> ! <xsl:apply-templates/> ! </xsl:otherwise> ! </xsl:choose> ! </fo:basic-link> ! </xsl:template> ! </xsl:stylesheet> Index: html.xsl =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/styles/html.xsl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** html.xsl 19 Oct 2006 19:43:36 -0000 1.4 --- html.xsl 6 Dec 2007 15:53:08 -0000 1.5 *************** *** 1,4 **** <?xml version="1.0"?> ! <!-- This is the XSL HTML configuration file for the Spring Reference Documentation. --- 1,4 ---- <?xml version="1.0"?> ! <!-- This is the XSL HTML configuration file for the Spring Reference Documentation. *************** *** 6,11 **** <!DOCTYPE xsl:stylesheet [ <!ENTITY db_xsl_path "../lib/docbook-xsl/"> ! <!ENTITY callout_gfx_path "../images/callouts/"> ! <!ENTITY admon_gfx_path "../images/admons/"> ]> --- 6,11 ---- <!DOCTYPE xsl:stylesheet [ <!ENTITY db_xsl_path "../lib/docbook-xsl/"> ! <!ENTITY callout_gfx_path "./images/callouts/"> ! <!ENTITY admon_gfx_path "./images/admons/"> ]> *************** *** 14,23 **** xmlns="http://www.w3.org/TR/xhtml1/transitional" exclude-result-prefixes="#default"> ! <xsl:import href="&db_xsl_path;/html/docbook.xsl"/> <!--################################################### HTML Settings ! ################################################### --> <xsl:param name="html.stylesheet">../styles/html.css</xsl:param> --- 14,23 ---- xmlns="http://www.w3.org/TR/xhtml1/transitional" exclude-result-prefixes="#default"> ! <xsl:import href="&db_xsl_path;/html/docbook.xsl"/> <!--################################################### HTML Settings ! ################################################### --> <xsl:param name="html.stylesheet">../styles/html.css</xsl:param> *************** *** 31,35 **** <!--################################################### Table Of Contents ! ################################################### --> <!-- Generate the TOCs for named components only --> --- 31,35 ---- <!--################################################### Table Of Contents ! ################################################### --> <!-- Generate the TOCs for named components only --> *************** *** 37,47 **** book toc </xsl:param> ! <!-- Show only Sections up to level 3 in the TOCs --> <xsl:param name="toc.section.depth">3</xsl:param> ! <!--################################################### Labels ! ################################################### --> <!-- Label Chapters and Sections (numbering) --> --- 37,47 ---- book toc </xsl:param> ! <!-- Show only Sections up to level 3 in the TOCs --> <xsl:param name="toc.section.depth">3</xsl:param> ! <!--################################################### Labels ! ################################################### --> <!-- Label Chapters and Sections (numbering) --> *************** *** 49,61 **** <xsl:param name="section.autolabel" select="1"/> <xsl:param name="section.label.includes.component.label" select="1"/> ! <!--################################################### Callouts ! ################################################### --> <!-- Use images for callouts instead of (1) (2) (3) --> <xsl:param name="callout.graphics">1</xsl:param> <xsl:param name="callout.graphics.path">&callout_gfx_path;</xsl:param> ! <!-- Place callout marks at this column in annotated areas --> <xsl:param name="callout.defaultcolumn">90</xsl:param> --- 49,61 ---- <xsl:param name="section.autolabel" select="1"/> <xsl:param name="section.label.includes.component.label" select="1"/> ! <!--################################################### Callouts ! ################################################### --> <!-- Use images for callouts instead of (1) (2) (3) --> <xsl:param name="callout.graphics">1</xsl:param> <xsl:param name="callout.graphics.path">&callout_gfx_path;</xsl:param> ! <!-- Place callout marks at this column in annotated areas --> <xsl:param name="callout.defaultcolumn">90</xsl:param> *************** *** 63,67 **** <!--################################################### Admonitions ! ################################################### --> <!-- Use nice graphics for admonitions --> --- 63,67 ---- <!--################################################### Admonitions ! ################################################### --> <!-- Use nice graphics for admonitions --> *************** *** 97,100 **** </div> </xsl:template> ! </xsl:stylesheet> --- 97,100 ---- </div> </xsl:template> ! </xsl:stylesheet> |
|
From: Erich E. <oak...@us...> - 2007-12-06 15:53:17
|
Update of /cvsroot/springnet/Spring.Net/doc In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv31696 Modified Files: build.xml Log Message: fixed admonition image paths Index: build.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/build.xml,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** build.xml 8 Aug 2007 09:11:59 -0000 1.11 --- build.xml 6 Dec 2007 15:53:07 -0000 1.12 *************** *** 12,24 **** <project name="Spring.NET Docbook" default="refdoc" basedir="."> ! <property file="build.properties" /> <property file="project.properties" /> ! <target name="clean" description="Delete output and temporary directories."> <delete dir="${basedir}/${doc.output.dir}" /> </target> ! <target name="preparedocs" description="Extra preparation for the documentation (common to all formats)"> --- 12,24 ---- <project name="Spring.NET Docbook" default="refdoc" basedir="."> ! <property file="build.properties" /> <property file="project.properties" /> ! <target name="clean" description="Delete output and temporary directories."> <delete dir="${basedir}/${doc.output.dir}" /> </target> ! <target name="preparedocs" description="Extra preparation for the documentation (common to all formats)"> *************** *** 54,66 **** </target> ! <target name="docpdf" depends="preparedocs" description="Compile reference documentation to pdf"> ! <antcall target="copycommoncontent"> <param name="doc.type.output.dir" value="${basedir}/${doc.ref.output.dir}/pdf/images"/> </antcall> ! <java classname="com.icl.saxon.StyleSheet" fork="true" dir="${doc.ref.dir}"> --- 54,66 ---- </target> ! <target name="docpdf" depends="preparedocs" description="Compile reference documentation to pdf"> ! <antcall target="copycommoncontent"> <param name="doc.type.output.dir" value="${basedir}/${doc.ref.output.dir}/pdf/images"/> </antcall> ! <java classname="com.icl.saxon.StyleSheet" fork="true" dir="${doc.ref.dir}"> *************** *** 75,79 **** <arg value="${basedir}/${doc.ref.dir}/styles/fopdf.xsl" /> </java> ! <java classname="org.apache.fop.apps.Fop" fork="true" maxmemory="1024m" dir="${doc.ref.dir}"> --- 75,79 ---- <arg value="${basedir}/${doc.ref.dir}/styles/fopdf.xsl" /> </java> ! <java classname="org.apache.fop.apps.Fop" fork="true" maxmemory="1024m" dir="${doc.ref.dir}"> *************** *** 93,97 **** </target> ! <target name="dochtml" depends="preparedocs,preparedocshtml" description="Compile reference documentation to chunked html"> --- 93,97 ---- </target> ! <target name="dochtml" depends="preparedocs,preparedocshtml" description="Compile reference documentation to chunked html"> *************** *** 101,105 **** value="${basedir}/${doc.ref.output.dir}/html/images"/> </antcall> ! <java classname="com.icl.saxon.StyleSheet" fork="true" dir="${doc.ref.output.dir}/html"> --- 101,105 ---- value="${basedir}/${doc.ref.output.dir}/html/images"/> </antcall> ! <java classname="com.icl.saxon.StyleSheet" fork="true" dir="${doc.ref.output.dir}/html"> *************** *** 112,126 **** <arg value="${basedir}/${doc.ref.dir}/styles/html_chunk.xsl" /> </java> ! </target> ! <target name="dochtmlsingle" depends="preparedocs,preparedocshtml" description="Compile reference documentation to single html"> ! <antcall target="copycommoncontent"> <param name="doc.type.output.dir" value="${basedir}/${doc.ref.output.dir}/html_single/images"/> </antcall> ! <java classname="com.icl.saxon.StyleSheet" fork="true" dir="${doc.ref.dir}"> --- 112,126 ---- <arg value="${basedir}/${doc.ref.dir}/styles/html_chunk.xsl" /> </java> ! </target> ! <target name="dochtmlsingle" depends="preparedocs,preparedocshtml" description="Compile reference documentation to single html"> ! <antcall target="copycommoncontent"> <param name="doc.type.output.dir" value="${basedir}/${doc.ref.output.dir}/html_single/images"/> </antcall> ! <java classname="com.icl.saxon.StyleSheet" fork="true" dir="${doc.ref.dir}"> *************** *** 135,149 **** <arg value="${basedir}/${doc.ref.dir}/styles/html.xsl" /> </java> ! </target> <target name="htmlhelp" depends="preparedocs,preparedocshtml" description="Compile reference documentation to MS HTML-HELP"> ! <antcall target="copycommoncontent"> <param name="doc.type.output.dir" value="${basedir}/${doc.ref.output.dir}/htmlhelp/images"/> </antcall> ! <java classname="com.icl.saxon.StyleSheet" fork="true" dir="${doc.ref.output.dir}/htmlhelp"> --- 135,149 ---- <arg value="${basedir}/${doc.ref.dir}/styles/html.xsl" /> </java> ! </target> <target name="htmlhelp" depends="preparedocs,preparedocshtml" description="Compile reference documentation to MS HTML-HELP"> ! <antcall target="copycommoncontent"> <param name="doc.type.output.dir" value="${basedir}/${doc.ref.output.dir}/htmlhelp/images"/> </antcall> ! <java classname="com.icl.saxon.StyleSheet" fork="true" dir="${doc.ref.output.dir}/htmlhelp"> *************** *** 165,173 **** </fileset> </delete> ! ! ! </target> ! <!-- copies content common to all docs to the dir in the ${doc.type.output.dir} property --- 165,173 ---- </fileset> </delete> ! ! ! </target> ! <!-- copies content common to all docs to the dir in the ${doc.type.output.dir} property *************** *** 183,186 **** --- 183,194 ---- </fileset> </copy> + <copy todir="${doc.type.output.dir}"> + <fileset dir="${basedir}/${doc.ref.dir}/images"> + <include name="**/*.gif"/> + <include name="**/*.svg"/> + <include name="**/*.jpg"/> + <include name="**/*.png"/> + </fileset> + </copy> </target> *************** *** 188,192 **** <target name="refdoc" depends="clean,dochtml,htmlhelp,docpdf" description="Generate reference documentation"/> ! </project> --- 196,200 ---- <target name="refdoc" depends="clean,dochtml,htmlhelp,docpdf" description="Generate reference documentation"/> ! </project> |
|
From: Erich E. <oak...@us...> - 2007-12-06 08:53:41
|
Update of /cvsroot/springnet/Spring.Net/doc/reference/src In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv28001 Modified Files: web.xml Log Message: added databindingpanel doc Index: web.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/src/web.xml,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** web.xml 15 Nov 2007 20:25:11 -0000 1.26 --- web.xml 6 Dec 2007 08:53:35 -0000 1.27 *************** *** 118,122 **** uses many best practices for Spring.NET web applications, so please do refer to it as you are reading this (reference) material (see <xref ! linkend="springair" />).</para> </sect1> --- 118,122 ---- uses many best practices for Spring.NET web applications, so please do refer to it as you are reading this (reference) material (see <xref ! linkend="springair"/>).</para> </sect1> *************** *** 204,213 **** <resource uri="~/Config/Test/Dao.xml"/> --> ! <!-- PRODUCTION CONFIGURATION --> <resource uri="~/Config/Production/Services.xml"/> <resource uri="~/Config/Production/Dao.xml"/> ! </context> </spring> --- 204,213 ---- <resource uri="~/Config/Test/Dao.xml"/> --> ! <!-- PRODUCTION CONFIGURATION --> <resource uri="~/Config/Production/Services.xml"/> <resource uri="~/Config/Production/Dao.xml"/> ! </context> </spring> *************** *** 337,341 **** </sectionGroup> </configSections> ! <spring> <context type="Spring.Context.Support.WebApplicationContext, Spring.Web"> --- 337,341 ---- </sectionGroup> </configSections> ! <spring> <context type="Spring.Context.Support.WebApplicationContext, Spring.Web"> *************** *** 349,353 **** <property name="Results"> <!-- ... --> ! </property> </object> <object id="myServiceDefinedLocally" type="MyCompany.MyProject.Services.MyServiceImpl, MyAssembly"/> --- 349,353 ---- <property name="Results"> <!-- ... --> ! </property> </object> <object id="myServiceDefinedLocally" type="MyCompany.MyProject.Services.MyServiceImpl, MyAssembly"/> *************** *** 416,420 **** <property name="Authenticator" ref="authenticationService"/> </object> ! <object type="Default.aspx" parent="basePage"/> --- 416,420 ---- <property name="Authenticator" ref="authenticationService"/> </object> ! <object type="Default.aspx" parent="basePage"/> *************** *** 625,628 **** --- 625,660 ---- configuration specific to your implementation.</para> </sect2> + + <sect2> + <title>Customizing control dependency injection</title> + + <para>There might be situations where it is necessary to customize + Spring.Web's dependency injection processing. In particular when using + GridViews, which create a large number of child controls, dependency + injection can slow down your page. To overcome this problem, you may + tell Spring to handle the dependency injection process yourself by + implementing the interface ISupportsWebDependencyInjection as shown + below:</para> + + <programlisting>[C#] + class MyControl : Control, ISupportsWebDependencyInjection + { + private IApplicationContext _defaultApplicationContext; + + public IApplicationContext DefaultApplicationContext + { + get { return _defaultApplicationContext; } + set { _defaultApplicationContext = value; } + } + + override protected AddedControl( Control control, int index ) + { + // handle DI for children ourselves - + // defaults to a call to InjectDependenciesRecursive + WebUtils.InjectDependenciesRecursive( _defaultApplicationContext, control ); + base.AddedControl( control, index ); + } + }</programlisting> + </sect2> </sect1> *************** *** 725,733 **** <body> ! <spring:Content id="leftSidebarContent" contentPlaceholderId="leftSidebar" runat="server"> <!-- left sidebar content --> </spring:Content> ! ! <spring:Content id="mainContent" contentPlaceholderId="main" runat="server"> <!-- main area content --> </spring:Content> --- 757,765 ---- <body> ! <spring:Content id="leftSidebarContent" contentPlaceholderId="leftSidebar" runat="server"> <!-- left sidebar content --> </spring:Content> ! ! <spring:Content id="mainContent" contentPlaceholderId="main" runat="server"> <!-- main area content --> </spring:Content> *************** *** 775,779 **** <property name="MasterPageFile" value="~/MasterLayout.ascx"/> </object> ! <object type="Child.aspx" parent="basePage"> <!-- inject other objects that page needs --> --- 807,811 ---- <property name="MasterPageFile" value="~/MasterLayout.ascx"/> </object> ! <object type="Child.aspx" parent="basePage"> <!-- inject other objects that page needs --> *************** *** 966,970 **** [Serializable] ! public enum TripMode { OneWay, --- 998,1002 ---- [Serializable] ! public enum TripMode { OneWay, *************** *** 982,986 **** together:<programlisting>public class TripForm : Spring.Web.UI.Page { ! // model private Trip trip; public Trip Trip --- 1014,1018 ---- together:<programlisting>public class TripForm : Spring.Web.UI.Page { ! // model private Trip trip; public Trip Trip *************** *** 1016,1020 **** } ! // data binding rules protected override void InitializeDataBindings() { --- 1048,1052 ---- } ! // data binding rules protected override void InitializeDataBindings() { *************** *** 1026,1030 **** } ! // event handler for findFlights button, uses injected 'bookingAgent' // service and model 'trip' object to find flights private void SearchForFlights(object sender, EventArgs e) --- 1058,1062 ---- } ! // event handler for findFlights button, uses injected 'bookingAgent' // service and model 'trip' object to find flights private void SearchForFlights(object sender, EventArgs e) *************** *** 1130,1137 **** void BindSourceToTarget(object source, object target, ValidationErrors validationErrors); void BindSourceToTarget(object source, object target, ValidationErrors validationErrors, IDictionary variables); ! void BindTargetToSource(object source, object target, ValidationErrors validationErrors); void BindTargetToSource(object source, object target, ValidationErrors validationErrors, IDictionary variables); ! void SetErrorMessage(string messageId, params string[] errorProviders); }</programlisting>As their names imply, <literal>BindSourceToTarget</literal> --- 1162,1169 ---- void BindSourceToTarget(object source, object target, ValidationErrors validationErrors); void BindSourceToTarget(object source, object target, ValidationErrors validationErrors, IDictionary variables); ! void BindTargetToSource(object source, object target, ValidationErrors validationErrors); void BindTargetToSource(object source, object target, ValidationErrors validationErrors, IDictionary variables); ! void SetErrorMessage(string messageId, params string[] errorProviders); }</programlisting>As their names imply, <literal>BindSourceToTarget</literal> *************** *** 1245,1254 **** [Serializable] ! public class Airport { // fields private string code; private string name; ! // properties public string Code --- 1277,1286 ---- [Serializable] ! public class Airport { // fields private string code; private string name; ! // properties public string Code *************** *** 1301,1305 **** BindingManager.AddBinding("@(airportDao).GetAirport(leavingFromAirportCode.SelectedValue)", "Trip.StartingFrom.Airport", BindingDirection.SourceToTarget); BindingManager.AddBinding("leavingFromAirportCode.SelectedValue", "Trip.StartingFrom.Airport.Code", BindingDirection.TargetToSource); ! BindingManager.AddBinding("@(airportDao).GetAirport(goingToAirportCode.SelectedValue)", "Trip.ReturningFrom.Airport", BindingDirection.SourceToTarget); BindingManager.AddBinding("goingToAirportCode.SelectedValue", "Trip.ReturningFrom.Airport.Code", BindingDirection.TargetToSource); --- 1333,1337 ---- BindingManager.AddBinding("@(airportDao).GetAirport(leavingFromAirportCode.SelectedValue)", "Trip.StartingFrom.Airport", BindingDirection.SourceToTarget); BindingManager.AddBinding("leavingFromAirportCode.SelectedValue", "Trip.StartingFrom.Airport.Code", BindingDirection.TargetToSource); ! BindingManager.AddBinding("@(airportDao).GetAirport(goingToAirportCode.SelectedValue)", "Trip.ReturningFrom.Airport", BindingDirection.SourceToTarget); BindingManager.AddBinding("goingToAirportCode.SelectedValue", "Trip.ReturningFrom.Airport.Code", BindingDirection.TargetToSource); *************** *** 1382,1385 **** --- 1414,1500 ---- </sect3> </sect2> + + <sect2> + <title>Using DataBindingPanel</title> + + <para>To simplify use of Spring's Data Binding feature on web pages and + controls, Spring.Web provides a special DataBindingPanel container + control. A DataBindingPanel does not render any html code itself, but + allows for specifiying additional, data binding related attributes to + its child controls:</para> + + <para><programlisting><%@ Page Language="C#" CodeFile="Default.aspx.cs" Inherits="DataBinding_EasyEmployeeInfo_Default" %> + <%@ Register TagPrefix="spring" Namespace="Spring.Web.UI.Controls" Assembly="Spring.Web" %> + <html> + <body> + <spring:DataBindingPanel ID="ctlDataBindingPanel" runat="server"> + <table cellpadding="3" cellspacing="3" border="0"> + <tr> + <td>Employee ID:</td> + <td> + <asp:TextBox ID="txtId" runat="server" BindingTarget="Employee.Id" /> + </td> + </tr> + <tr> + <td>First Name:</td> + <td><asp:TextBox ID="txtFirstName" runat="server" BindingTarget="Employee.FirstName" /></td> + </tr> + </table> + </spring.DataBindingPanel> + </body> + </html></programlisting></para> + + <para>Using DataBindingPanel the binding information can be specified + directly on the control declaration. The following attributes are + recognized by a DataBindingPanel:</para> + + <itemizedlist> + <listitem> + <para>BindingTarget</para> + + <para>corresponds to the target expression used in + IBindingContainer.AddBinding()</para> + </listitem> + + <listitem> + <para>BindingSource</para> + + <para>corresponds to the source expression used in + IBindingContainer.AddBinding(). For standard controls you don't need + to specify the source expression. If you are binding to some custom + control, of course you must specifiy this attribute.</para> + </listitem> + + <listitem> + <para>BindingDirection</para> + + <para>one of the values of the BindingDirection enumeration</para> + </listitem> + + <listitem> + <para>BindingFormatter</para> + + <para>if you need a custom formatter, you can specifiy the object + name of a formatter here. The formatter instance will be obtained by + a call to IApplicationContext.GetObject() each time it is + needed.</para> + </listitem> + + <listitem> + <para>BindingType</para> + + <para>In case you need a completely customized binding, specify its + type here. Note that a custom binding type must implement the + following constructor signature:</para> + + <para><literal>ctor(string source,string target, BindingDirection, + IFormatter)</literal></para> + </listitem> + </itemizedlist> + + <note> + The Visual Studio Web Form Editor will of course complain about binding attributes because it doesn't know them. You can safely ignore those warnings. + </note> + </sect2> </sect1> *************** *** 1427,1431 **** <programlisting><%@ Register TagPrefix="spring" Namespace="Spring.Web.UI.Controls" Assembly="Spring.Web" %> ! <%@ Page language="c#" Codebehind="UserRegistration.aspx.cs" AutoEventWireup="false" Inherits="ArtFair.Web.UI.Forms.UserRegistration" %> <html> --- 1542,1546 ---- <programlisting><%@ Register TagPrefix="spring" Namespace="Spring.Web.UI.Controls" Assembly="Spring.Web" %> ! <%@ Page language="c#" Codebehind="UserRegistration.aspx.cs" AutoEventWireup="false" Inherits="ArtFair.Web.UI.Forms.UserRegistration" %> <html> *************** *** 1647,1651 **** page. For example, think of the header columns for outgoing and return flights tables within the SpringAir application (see <xref ! linkend="springair" />).</para> <para>In these situations, one should use a pull-style mechanism for --- 1762,1766 ---- page. For example, think of the header columns for outgoing and return flights tables within the SpringAir application (see <xref ! linkend="springair"/>).</para> <para>In these situations, one should use a pull-style mechanism for *************** *** 1719,1723 **** <literal><spring:LocalizedImage></literal> as shown below.</para> ! <programlisting><%@ Page language="c#" Codebehind="StandardTemplate.aspx.cs" AutoEventWireup="false" Inherits="SpringAir.Web.StandardTemplate" %> <%@ Register TagPrefix="spring" Namespace="Spring.Web.UI.Controls" Assembly="Spring.Web" %> --- 1834,1838 ---- <literal><spring:LocalizedImage></literal> as shown below.</para> ! <programlisting><%@ Page language="c#" Codebehind="StandardTemplate.aspx.cs" AutoEventWireup="false" Inherits="SpringAir.Web.StandardTemplate" %> <%@ Register TagPrefix="spring" Namespace="Spring.Web.UI.Controls" Assembly="Spring.Web" %> *************** *** 1753,1757 **** <value>MyApp.Web.Resources.Strings, MyApp.Web</value> </list> ! </property> </object></programlisting> --- 1868,1872 ---- <value>MyApp.Web.Resources.Strings, MyApp.Web</value> </list> ! </property> </object></programlisting> *************** *** 1955,1959 **** <entry key="cancel" value-ref="loginPageResult"/> </dictionary> ! </property> </object> --- 2070,2074 ---- <entry key="cancel" value-ref="loginPageResult"/> </dictionary> ! </property> </object> *************** *** 2004,2008 **** <entry key="cancel" value-ref="homePageResult"/> </dictionary> ! </property> </object> </programlisting> --- 2119,2123 ---- <entry key="cancel" value-ref="homePageResult"/> </dictionary> ! </property> </object> </programlisting> *************** *** 2086,2090 **** is shown below.</para> ! <programlisting><%@ Page language="c#" Codebehind="StandardTemplate.aspx.cs" AutoEventWireup="false" Inherits="SpringAir.Web.StandardTemplate" %> <%@ Register TagPrefix="spring" Namespace="Spring.Web.UI.Controls" Assembly="Spring.Web" %> --- 2201,2205 ---- is shown below.</para> ! <programlisting><%@ Page language="c#" Codebehind="StandardTemplate.aspx.cs" AutoEventWireup="false" Inherits="SpringAir.Web.StandardTemplate" %> <%@ Register TagPrefix="spring" Namespace="Spring.Web.UI.Controls" Assembly="Spring.Web" %> *************** *** 2158,2165 **** <description> Convenience base page definition for all the pages. ! Pages that reference this definition as their parent (see the examples below) will automatically inherit following properties.... ! </description> <property name="CssRoot" value="Web/CSS"/> --- 2273,2280 ---- <description> Convenience base page definition for all the pages. ! Pages that reference this definition as their parent (see the examples below) will automatically inherit following properties.... ! </description> <property name="CssRoot" value="Web/CSS"/> |
|
From: Mark P. <mar...@us...> - 2007-12-06 08:06:45
|
Update of /cvsroot/springnet/Spring.Net/doc/reference/src In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv9251 Modified Files: index.xml Log Message: misc cleanup Index: index.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/src/index.xml,v retrieving revision 1.76 retrieving revision 1.77 diff -C2 -d -r1.76 -r1.77 *** index.xml 6 Dec 2007 06:26:30 -0000 1.76 --- index.xml 6 Dec 2007 08:06:41 -0000 1.77 *************** *** 54,58 **** <title>The Spring.NET Framework</title> <subtitle>Reference Documentation</subtitle> ! <releaseinfo>Version 1.1 final</releaseinfo> <pubdate>Last Updated December 7, 2007</pubdate> <authorgroup> --- 54,58 ---- <title>The Spring.NET Framework</title> <subtitle>Reference Documentation</subtitle> ! <releaseinfo>Version 1.1</releaseinfo> <pubdate>Last Updated December 7, 2007</pubdate> <authorgroup> |
Update of /cvsroot/springnet/Spring.Net/installer/installaware/Spring.NET-1.1 In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv4622 Modified Files: Spring.NET-1.1.mia Spring.NET-1.1.mpr finish.dfm maintenance.dfm startinstallation.dfm welcome.dfm Log Message: update installer Index: Spring.NET-1.1.mpr =================================================================== RCS file: /cvsroot/springnet/Spring.Net/installer/installaware/Spring.NET-1.1/Spring.NET-1.1.mpr,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Spring.NET-1.1.mpr 11 Oct 2007 18:37:57 -0000 1.2 --- Spring.NET-1.1.mpr 6 Dec 2007 07:57:03 -0000 1.3 *************** *** 455,469 **** FALSE L:\projects\Spring.Net\msi ! Interface21 ! Spring.NET 1.1 RC2 ! {B0015DE0-78D3-4537-A741-1849EDC8C2C2} {30BEA7B0-1208-42DC-8C52-828662D99AA6} 1.1.0 English ! Spring.NET 1.1 RC2 ! Spring.NET 1.1 RC2 Installation Spring.NET authors All rights reserved ! {9FAE2BCC-6663-4D08-8AD2-D01CA49B42C4} Spring.NET Spring.NET --- 455,469 ---- FALSE L:\projects\Spring.Net\msi ! SpringSource ! Spring.NET 1.1 ! {A6F4EACA-5A91-4B73-B357-D2A418BA81F5} {30BEA7B0-1208-42DC-8C52-828662D99AA6} 1.1.0 English ! Spring.NET 1.1 ! Spring.NET 1.1 Installation Spring.NET authors All rights reserved ! {25A5BAF9-6AD6-4A2A-B4DF-78B9C8D6FC9C} Spring.NET Spring.NET *************** *** 472,476 **** All rights reserved FALSE ! Spring.NET-1.1-RC2 TRUE FALSE --- 472,476 ---- All rights reserved FALSE ! Spring.NET-1.1 TRUE FALSE Index: maintenance.dfm =================================================================== RCS file: /cvsroot/springnet/Spring.Net/installer/installaware/Spring.NET-1.1/maintenance.dfm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsOcAURx and /tmp/cvsWrJVOl differ Index: Spring.NET-1.1.mia =================================================================== RCS file: /cvsroot/springnet/Spring.Net/installer/installaware/Spring.NET-1.1/Spring.NET-1.1.mia,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Spring.NET-1.1.mia 11 Oct 2007 18:06:22 -0000 1.1 --- Spring.NET-1.1.mia 6 Dec 2007 07:57:03 -0000 1.2 *************** *** 308,312 **** Install Files Install Files - Install Files Create Shortcut Install Files --- 308,311 ---- *************** *** 354,357 **** --- 353,357 ---- Install Files Install Files + Install Files Web Media Block Get Component State *************** *** 723,727 **** {94C4A1C7-4455-4C07-81BF-1C839F22E7AA} {EB267C6B-3753-4884-A293-FA6D434C721A} - {58C39020-6B03-41BB-A7DC-8305644AD076} {01A1A5C5-4606-4A3B-A1B7-3EB40F900860} {581B8426-13B8-4FFD-BF40-DDF1B9D8259E} --- 723,726 ---- *************** *** 769,772 **** --- 768,772 ---- {C298BCA5-F5D8-4EF6-8AB9-9C5371DFB610} {D887138C-5E08-47C4-8A51-53A8F714EFB7} + {0F86BF0F-F836-4FF4-B8AA-B7A826981964} {CA8886A7-0940-49AE-8FBF-B6D8857621C3} {830DA74D-7462-48B6-A133-06DA43BA64D6} *************** *** 1289,1303 **** FALSE {A3A8A528-F4F5-4031-8308-7F556B64C129} ! Spring.NET 1.1 RC2 TRUE ! Spring.NET 1.1 RC2 {5749130C-401B-46B6-A1F3-F227D549C673} ! Spring.NET 1.1 RC2 FALSE {EDB251B5-EFEA-4792-B040-60474F526530} ! Spring.NET 1.1 RC2 TRUE {830DA74D-7462-48B6-A133-06DA43BA64D6} ! Spring.NET 1.1 RC2 SELECTED {16E358DF-D903-48F5-A026-FDC700D1C889} --- 1289,1303 ---- FALSE {A3A8A528-F4F5-4031-8308-7F556B64C129} ! Spring.NET 1.1 TRUE ! Spring.NET 1.1 {5749130C-401B-46B6-A1F3-F227D549C673} ! Spring.NET 1.1 FALSE {EDB251B5-EFEA-4792-B040-60474F526530} ! Spring.NET 1.1 TRUE {830DA74D-7462-48B6-A133-06DA43BA64D6} ! Spring.NET 1.1 SELECTED {16E358DF-D903-48F5-A026-FDC700D1C889} *************** *** 2266,2282 **** FALSE FALSE - {58C39020-6B03-41BB-A7DC-8305644AD076} - L:\projects\Spring.Net\build\package\Spring.NET\Spring.Net.1.0.2002.sln - FALSE| - $TARGETDIR$ - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE {581B8426-13B8-4FFD-BF40-DDF1B9D8259E} L:\projects\Spring.Net\build\package\Spring.NET\doc\reference\html\ado.html --- 2266,2269 ---- *************** *** 2851,2857 **** FALSE FALSE {F3D1B9D2-7A04-44B6-9F91-860D3A2384C0} $UNINSTALLLINK$ ! Uninstall Spring.NET 1.1 RC2 $SHORTCUTFOLDER$ Removes this Interface21 product --- 2838,2857 ---- FALSE FALSE + {0F86BF0F-F836-4FF4-B8AA-B7A826981964} + L:\projects\Spring.Net\build\package\Spring.NET\Spring.Net.1.1.2002.sln + FALSE| + $TARGETDIR$ + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE {F3D1B9D2-7A04-44B6-9F91-860D3A2384C0} $UNINSTALLLINK$ ! Uninstall Spring.NET 1.1 $SHORTCUTFOLDER$ Removes this Interface21 product *************** *** 3159,3164 **** FALSE {CA8886A7-0940-49AE-8FBF-B6D8857621C3} ! Spring.NET 1.1 RC2 ! Spring.NET 1.1 RC2.7zip FALSE {1D2C9F3A-3B3F-4046-8FC7-86624108C2B2} --- 3159,3164 ---- FALSE {CA8886A7-0940-49AE-8FBF-B6D8857621C3} ! Spring.NET 1.1 ! Spring.NET 1.1.7zip FALSE {1D2C9F3A-3B3F-4046-8FC7-86624108C2B2} Index: welcome.dfm =================================================================== RCS file: /cvsroot/springnet/Spring.Net/installer/installaware/Spring.NET-1.1/welcome.dfm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsFGKMlM and /tmp/cvsBydNGA differ Index: finish.dfm =================================================================== RCS file: /cvsroot/springnet/Spring.Net/installer/installaware/Spring.NET-1.1/finish.dfm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsLgRUmU and /tmp/cvsoC6xRI differ Index: startinstallation.dfm =================================================================== RCS file: /cvsroot/springnet/Spring.Net/installer/installaware/Spring.NET-1.1/startinstallation.dfm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsZN7qju and /tmp/cvsHMDhVn differ |
|
From: Mark P. <mar...@us...> - 2007-12-06 07:54:23
|
Update of /cvsroot/springnet/Spring.Net/doc/reference/src In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv4181/src Modified Files: overview.xml Log Message: rebranding Index: overview.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/src/overview.xml,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** overview.xml 27 Nov 2007 21:10:42 -0000 1.19 --- overview.xml 6 Dec 2007 07:54:17 -0000 1.20 *************** *** 170,174 **** <para>Training and Support are available through <ulink ! url="http://www.interface21.com">Interface21</ulink> in addition to mailing lists and fourms you can find on the main <ulink url="http://www.springframework.net">Spring.NET</ulink> website.</para> --- 170,174 ---- <para>Training and Support are available through <ulink ! url="http://www.springsource.com">SpringSource</ulink> in addition to mailing lists and fourms you can find on the main <ulink url="http://www.springframework.net">Spring.NET</ulink> website.</para> |
|
From: Mark P. <mar...@us...> - 2007-12-06 07:54:22
|
Update of /cvsroot/springnet/Spring.Net/doc/reference/styles In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv4181/styles Modified Files: html_chunk.xsl Log Message: rebranding Index: html_chunk.xsl =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/styles/html_chunk.xsl,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** html_chunk.xsl 28 Nov 2007 05:54:38 -0000 1.5 --- html_chunk.xsl 6 Dec 2007 07:54:17 -0000 1.6 *************** *** 89,94 **** <img style="border:none;" src="images/xdev-spring_logo.jpg" /> </a> ! <a style="border:none;" href="http://www.interface21.com/" title="Interface21 - Spring from the Source"> ! <img style="border:none;position:absolute;padding-top:5px;right:42px;" src="images/i21-banner-rhs.jpg" /> </a> </div> --- 89,94 ---- <img style="border:none;" src="images/xdev-spring_logo.jpg" /> </a> ! <a style="border:none;" href="http://www.springsource.com/" title="SpringSource"> ! <img style="border:none;position:absolute;padding-top:5px;right:42px;" src="images/SS-banner-rhs.png" /> </a> </div> |
|
From: Mark P. <mar...@us...> - 2007-12-06 07:54:21
|
Update of /cvsroot/springnet/Spring.Net/doc/reference/src/images In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv4181/src/images Added Files: S2-banner-rhs.png Log Message: rebranding --- NEW FILE: S2-banner-rhs.png --- (This appears to be a binary file; contents omitted.) |
|
From: Mark P. <mar...@us...> - 2007-12-06 07:25:38
|
Update of /cvsroot/springnet/Spring.Net/doc/reference/src In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv25082 Added Files: psa-intro.xml Log Message: missing file --- NEW FILE: psa-intro.xml --- <?xml version="1.0" encoding="UTF-8"?> <chapter id="psa-intro"> <title>Introduction to Spring Services</title> <sect1> <title>Introduction</title> <para>The goal of Spring's integration with distributed technologies is to adapt plain .NET objects so they can be used with a specific distributed technology. This integration is designed to be as non-intrusive as possible. If you need to expose an object to a remote process then you can define an exporter for that object. Similarly, on the client side you define an corresponding endpoint accessor. Of course, the object's methods stil need to be suitable for remoting, i.e. course grained, to avoid making uncessary and expensive remote calls. </para> <para>Since these exporters and client side endpoint accessors are defined using meta data for Spring IoC container, you can easily use dependency injection on then to set initial state and to 'wire up' the presentation tier, such as web forms, to the service layer. In addition, you may apply AOP aspects to the exported classes and/or service endpoints to apply behavior such as logging, security, or other custom behavior that may not be provided by the target distributed technology. The Spring specific terminology for this approach to object distribution is known as Portable Service Abstractions (PSA). As a result of this approach, you can decide much later in the development process the technical details of how you will distribute your objects as compared to traditional code centric approaches. Changing of the implementation is done though configuration of the IoC container and not by recompilation. Of course, you may choose to not use the IoC container to manage these objects and use the exporter and service endpoints programmatically.</para> <para>The diagram shown below is a useful way to demonstrate the key abstractions in the Spring tool chest and their interrelationships. The four key concepts are; plain .NET objects, Dependency Injection, AOP, and Portable Service Abstractions. At the heart sits the plain .NET object that can be instantiated and configured using dependency injection. Then, optionally, the plain object can be adapted to a specific distributed technology. Lastly, additional behavior can be applied to objects. This behavior is typically that which can not be easily address by traditional OO approaches such as inheritance. In the case of service layer, common requirements such as 'the service layer must be transactional' are implemented in a manner that naturally expresses that intention in a single place, as compared to scattered code across the service layer.</para> <para><mediaobject> <imageobject> <imagedata fileref="images/spring-triangle.png" format="PNG" scale="50" /> </imageobject> </mediaobject>Spring implements this exporter functionality by creating a proxy at runtime that meets the implementation requirements of a specific distributed technology. In the case of .NET Remoting the proxy will inherit from MarshalByRef, for EnterpriseServices it will inherit from ServicedComponent and for aspx web services, WebMethod attributes will be added to methods. Client side functionality is often implemented by a thin layer over the client access mechanism of the underlying distributed technology, though in some cases such as client side access to web services, you can the option to create a proxy on the fly from the .wsdl definition, much like you would have done using the command line tools.</para> <para>The common implementation theme for you as a provider of these service objects is to implement an interface. This is generally considered a best practice in its own right, you will see most pure WCF examples following this practice, and also lends itself to a straightforward approach to unit testing business functionality as stub or mock implementations maybe defined for testing purposes.</para> <para>The assembly <literal>Spring.Services.dll</literal> contains support for .NET Remoting, Enterprise Services and ASMX Web Services. Support for WCF services is planned for Spring 1.2</para> </sect1> </chapter> |
|
From: Mark P. <mar...@us...> - 2007-12-06 06:58:57
|
Update of /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Tests/Data/Common In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv14731 Modified Files: DbParametersTests.cs Log Message: Index: DbParametersTests.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Tests/Data/Common/DbParametersTests.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** DbParametersTests.cs 6 Dec 2007 06:49:36 -0000 1.2 --- DbParametersTests.cs 6 Dec 2007 06:58:54 -0000 1.3 *************** *** 19,23 **** #endregion ! #if (!NET_1_0) #region Imports --- 19,23 ---- #endregion ! #if (NET_2_0) #region Imports |
|
From: Mark P. <mar...@us...> - 2007-12-06 06:49:39
|
Update of /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Tests/Data/Common In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv11058 Modified Files: DbParametersTests.cs Log Message: Index: DbParametersTests.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Tests/Data/Common/DbParametersTests.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** DbParametersTests.cs 6 Dec 2007 05:48:33 -0000 1.1 --- DbParametersTests.cs 6 Dec 2007 06:49:36 -0000 1.2 *************** *** 19,22 **** --- 19,23 ---- #endregion + #if (!NET_1_0) #region Imports *************** *** 75,77 **** } } ! } \ No newline at end of file --- 76,79 ---- } } ! } ! #endif \ No newline at end of file |
|
From: Erich E. <oak...@us...> - 2007-12-06 06:49:23
|
Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Aop In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv11043 Modified Files: Spring.Aop.2005.csproj Log Message: removed "Common" folder Index: Spring.Aop.2005.csproj =================================================================== RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Aop/Spring.Aop.2005.csproj,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** Spring.Aop.2005.csproj 11 Oct 2007 01:29:42 -0000 1.38 --- Spring.Aop.2005.csproj 6 Dec 2007 06:49:20 -0000 1.39 *************** *** 421,427 **** </ProjectReference> </ItemGroup> - <ItemGroup> - <Folder Include="Aspects\Common\" /> - </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <PropertyGroup> --- 421,424 ---- |
|
From: Mark P. <mar...@us...> - 2007-12-06 06:45:36
|
Update of /cvsroot/springnet/Spring.Net/test/Spring/Spring.Aop.Tests/Aspects/Logging In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv9465 Modified Files: SimpleLoggingAdviceTests.cs Log Message: Index: SimpleLoggingAdviceTests.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/test/Spring/Spring.Aop.Tests/Aspects/Logging/SimpleLoggingAdviceTests.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** SimpleLoggingAdviceTests.cs 8 Oct 2007 22:05:27 -0000 1.1 --- SimpleLoggingAdviceTests.cs 6 Dec 2007 06:45:33 -0000 1.2 *************** *** 34,38 **** { /// <summary> ! /// This calss contains tests for /// </summary> /// <author>Mark Pollack</author> --- 34,38 ---- { /// <summary> ! /// This class contains tests for SimpleLoggingAdvice /// </summary> /// <author>Mark Pollack</author> *************** *** 77,80 **** --- 77,109 ---- } + [Test] + public void SunnyDayLoggingCorrectlyDebugLevel() + { + ILog log = (ILog)mocks.CreateMock(typeof(ILog)); + IMethodInvocation methodInvocation = (IMethodInvocation)mocks.CreateMock(typeof(IMethodInvocation)); + + MethodInfo mi = typeof(string).GetMethod("ToString", Type.EmptyTypes); + //two additional calls the method are to retrieve the method name on entry/exit... + Expect.Call(methodInvocation.Method).Return(mi).Repeat.Any(); + + + Expect.Call(log.IsDebugEnabled).Return(true).Repeat.Any(); + log.Debug("Entering ToString"); + + + Expect.Call(methodInvocation.Proceed()).Return(null); + + log.Debug("Exiting ToString, return="); + + mocks.ReplayAll(); + + TestableSimpleLoggingAdvice loggingAdvice = new TestableSimpleLoggingAdvice(true); + loggingAdvice.LogLevel = LogLevel.Debug; + loggingAdvice.CallInvokeUnderLog(methodInvocation, log); + + mocks.VerifyAll(); + + } + [Test] |