Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Core/Context/Support
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv9161
Modified Files:
ContextHandler.cs
Log Message:
Fixed Hierarchical context loading. SPRNET-891
Index: ContextHandler.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Core/Context/Support/ContextHandler.cs,v
retrieving revision 1.35
retrieving revision 1.36
diff -C2 -d -r1.35 -r1.36
*** ContextHandler.cs 5 Oct 2007 17:05:49 -0000 1.35
--- ContextHandler.cs 13 Mar 2008 20:07:33 -0000 1.36
***************
*** 281,286 ****
// get and create child context definitions
! XmlNodeList childContexts = contextElement.GetElementsByTagName(ContextSchema.ContextElement);
! CreateChildContexts(context, configContext, childContexts );
if (Log.IsDebugEnabled) Log.Debug( string.Format("context '{0}' created for name '{1}'", context, contextName) );
--- 281,286 ----
// get and create child context definitions
! XmlNode[] childContexts = GetChildContexts(contextElement);
! CreateChildContexts(context, configContext, childContexts);
if (Log.IsDebugEnabled) Log.Debug( string.Format("context '{0}' created for name '{1}'", context, contextName) );
***************
*** 305,316 ****
/// <param name="configContext">The current configContext <see cref="IConfigurationSectionHandler.Create"/></param>
/// <param name="childContexts">The list of child context elements</param>
! protected virtual void CreateChildContexts( IApplicationContext parentContext, object configContext, XmlNodeList childContexts)
! {
! if (childContexts == null) return;
!
// create child contexts for 'the most recently created context'...
foreach (XmlNode childContext in childContexts)
{
- //ContextHandler handler = new ContextHandler();
this.Create(parentContext, configContext, childContext);
}
--- 305,313 ----
/// <param name="configContext">The current configContext <see cref="IConfigurationSectionHandler.Create"/></param>
/// <param name="childContexts">The list of child context elements</param>
! protected virtual void CreateChildContexts(IApplicationContext parentContext, object configContext, XmlNode[] childContexts)
! {
// create child contexts for 'the most recently created context'...
foreach (XmlNode childContext in childContexts)
{
this.Create(parentContext, configContext, childContext);
}
***************
*** 402,408 ****
/// <see cref="Spring.Context.IApplicationContext"/> interface.
/// </exception>
! private Type GetConfiguredContextType( XmlElement ContextElement, Type defaultContextType )
{
! string typeName = ContextElement.GetAttribute(ContextSchema.TypeAttribute);
if (StringUtils.IsNullOrEmpty(typeName))
--- 399,405 ----
/// <see cref="Spring.Context.IApplicationContext"/> interface.
/// </exception>
! private Type GetConfiguredContextType(XmlElement contextElement, Type defaultContextType)
{
! string typeName = contextElement.GetAttribute(ContextSchema.TypeAttribute);
if (StringUtils.IsNullOrEmpty(typeName))
***************
*** 437,444 ****
/// this context.
/// </summary>
! private string[] GetResources( XmlElement ContextElement )
{
! ArrayList resourceNodes = new ArrayList(ContextElement.ChildNodes.Count);
! foreach (XmlNode possibleResourceNode in ContextElement.ChildNodes)
{
XmlElement possibleResourceElement = possibleResourceNode as XmlElement;
--- 434,441 ----
/// this context.
/// </summary>
! private string[] GetResources( XmlElement contextElement )
{
! ArrayList resourceNodes = new ArrayList(contextElement.ChildNodes.Count);
! foreach (XmlNode possibleResourceNode in contextElement.ChildNodes)
{
XmlElement possibleResourceElement = possibleResourceNode as XmlElement;
***************
*** 456,459 ****
--- 453,474 ----
}
+ /// <summary>
+ /// Returns the array of child contexts for this context.
+ /// </summary>
+ private XmlNode[] GetChildContexts(XmlElement contextElement)
+ {
+ ArrayList contextNodes = new ArrayList(contextElement.ChildNodes.Count);
+ foreach (XmlNode possibleContextNode in contextElement.ChildNodes)
+ {
+ XmlElement possibleContextElement = possibleContextNode as XmlElement;
+ if (possibleContextElement != null &&
+ possibleContextElement.LocalName == ContextSchema.ContextElement)
+ {
+ contextNodes.Add(possibleContextElement);
+ }
+ }
+ return (XmlNode[])contextNodes.ToArray(typeof(XmlNode));
+ }
+
#region Inner Class : ContextInstantiator
|