Several API changes were made between M2 to RC1 due primarily by the need to refactor the code base to remove circular dependency cycles, which are now all removed. Class and schema name changes were also made to provide a more consistent naming convention across the codebase. As a result of these changes, you can not simply drop in the new .dlls as you may have done in previous release. This document serves as a high level guide to the most likely areas where you will need to make changes to either your configuration or your code.
The file, BreakingChanges-1.1.txt, in the root director of the distribution contains the full listing of changes made.
This section covers the common areas were you will need to make changes in code/configuration when migration from M2 to RC1.
Note: If you previously installed Spring .xsd files to your VS.NET installation directory, remove them manually, and copy over the new ones, which have the -1.1.xsd suffix.
The names of the section handlers to register custom schemas has
changed, from ConfigParsersSectionHandler to
The target namespaces have changed, the 'directory' named /schema/
has been removed. For example, the target schema changed from
A typical declaration to use custom schemas within your configuration file looks like this
<objects xmlns='http://www.springframework.net' xmlns:db="http://www.springframework.net/database" xmlns:tx="http://www.springframework.net/tx" xmlns:aop="http://www.springframework.net/aop">
XmlParserRegistry was renamed to
A typical registration of custom parsers within your configuration file looks like this
<configuration> <configSections> <sectionGroup name="spring"> <section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core"/> </sectionGroup> </configSections> <spring> <parsers> <parser type="Spring.Aop.Config.AopNamespaceParser, Spring.Aop" /> <parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data" /> <parser type="Spring.Transaction.Config.TxNamespaceParser, Spring.Data" /> </parsers> </spring>
A manual registration would look like this
NamespaceParserRegistry.RegisterParser(typeof(AopNamespaceParser)); NamespaceParserRegistry.RegisterParser(typeof(DatabaseNamespaceParser)); NamespaceParserRegistry.RegisterParser(typeof(TxNamespaceParser));
Moved Spring.Util.DynamicReflection to Spring.Reflection.Dynamic
Moved TypeRegistry and related classes from Spring.Context.Support to Spring.Core.TypeResolution
Moved Spring.Objects.TypeConverters to Spring.Core.TypeConvesion
Changed schema to use 'provider' instead of 'dbProvider' element, usage is now <db:provider ... /> and not <db:dbProvider .../>
Moved TransactionTemplate, TransactionDelegate and ITransactionCallback from Spring.Data to Spring.Data.Support
Moved AdoTemplate, AdoAccessor, AdoDaoSupport, RowMapperResultSetExtractor from Spring.Data to Spring.Data.Core
Moved AdoPlatformTransactionManager, ServiceDomainPlatformTransactionManager, and TxScopeTransactionManager from Spring.Data to Spring.Data.Core