diff --git a/examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Step7/Program.cs b/examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Step7/Program.cs index ac68e6c0..be74d10c 100644 --- a/examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Step7/Program.cs +++ b/examples/Spring/Spring.AopQuickStart/src/Spring.AopQuickStart.Step7/Program.cs @@ -47,7 +47,7 @@ namespace Spring.AopQuickStart { // Create AOP proxy using Spring.NET IoC container. IApplicationContext ctx = ContextRegistry.GetContext(); - IDictionary commands = ctx.GetObjectsOfType(); + IDictionary commands = ctx.GetObjects(); foreach (ICommand command in commands.Values) { diff --git a/examples/Spring/Spring.TxQuickStart/test/Spring/Spring.TxQuickStart.Tests/TxQuickStart/AccountManagerTests.cs b/examples/Spring/Spring.TxQuickStart/test/Spring/Spring.TxQuickStart.Tests/TxQuickStart/AccountManagerTests.cs index 7bc7be33..ff480e28 100644 --- a/examples/Spring/Spring.TxQuickStart/test/Spring/Spring.TxQuickStart.Tests/TxQuickStart/AccountManagerTests.cs +++ b/examples/Spring/Spring.TxQuickStart/test/Spring/Spring.TxQuickStart.Tests/TxQuickStart/AccountManagerTests.cs @@ -54,7 +54,7 @@ namespace Spring.TxQuickStart NamespaceParserRegistry.RegisterParser(typeof(TxNamespaceParser)); NamespaceParserRegistry.RegisterParser(typeof(AopNamespaceParser)); IApplicationContext context = CreateContextFromXml(); - IDictionary dict = context.GetObjectsOfType(); + IDictionary dict = context.GetObjects(); accountManager = context["accountManager"] as IAccountManager; CleanDb(context); } diff --git a/src/Spring/Spring.Aop/Aop/Framework/AbstractMethodInvocation.cs b/src/Spring/Spring.Aop/Aop/Framework/AbstractMethodInvocation.cs index 213563c3..17bc760b 100644 --- a/src/Spring/Spring.Aop/Aop/Framework/AbstractMethodInvocation.cs +++ b/src/Spring/Spring.Aop/Aop/Framework/AbstractMethodInvocation.cs @@ -357,7 +357,7 @@ namespace Spring.Aop.Framework { StringBuilder buffer = new StringBuilder("Invocation: method '"); buffer.Append(Method.Name).Append("', ").Append("arguments "); - buffer.Append(this.arguments != null ? StringUtils.ArrayToCommaDelimitedString(this.arguments) : "[none]"); + buffer.Append(this.arguments != null ? StringUtils.CollectionToCommaDelimitedString(this.arguments) : "[none]"); buffer.Append("; "); if (this.target == null) { diff --git a/src/Spring/Spring.Aop/Aop/Framework/AdvisedSupport.cs b/src/Spring/Spring.Aop/Aop/Framework/AdvisedSupport.cs index 56f90e4e..d305f805 100644 --- a/src/Spring/Spring.Aop/Aop/Framework/AdvisedSupport.cs +++ b/src/Spring/Spring.Aop/Aop/Framework/AdvisedSupport.cs @@ -294,7 +294,7 @@ namespace Spring.Aop.Framework /// to be (or that are being) proxied by this proxy. /// /// - public virtual Type[] Interfaces + public virtual IList Interfaces { get { @@ -318,12 +318,12 @@ namespace Spring.Aop.Framework /// /// Set interfaces to be proxied, bypassing locking and /// - protected void SetInterfacesInternal(Type[] value) + protected void SetInterfacesInternal(IList value) { this.interfaceMap.Clear(); if (value != null) { - for (int i = 0; i < value.Length; i++) + for (int i = 0; i < value.Count; i++) { AddInterfaceInternal(value[i]); } @@ -392,14 +392,9 @@ namespace Spring.Aop.Framework /// instances that have been applied to this proxy. /// /// - public virtual IAdvisor[] Advisors + public virtual IList Advisors { - get - { - { - return _advisorsArray; - } - } + get { return _advisorsArray; } } /// @@ -419,13 +414,13 @@ namespace Spring.Aop.Framework /// instances that have been applied to this proxy. /// /// - public virtual IIntroductionAdvisor[] Introductions + public virtual IList Introductions { get { lock (this.SyncRoot) { - return this._introductions.ToArray(); + return this._introductions; } } } @@ -1491,7 +1486,7 @@ namespace Spring.Aop.Framework /// protected internal virtual void CopyConfigurationFrom(AdvisedSupport other) { - CopyConfigurationFrom(other, other.TargetSource, new List(other.Advisors), new List(other.Introductions)); + CopyConfigurationFrom(other, other.TargetSource, new List(other.Advisors), new List(other.Introductions)); } /// @@ -1514,14 +1509,14 @@ namespace Spring.Aop.Framework /// the new target source /// the advisors for the chain /// the introductions for the chain - protected internal virtual void CopyConfigurationFrom(AdvisedSupport other, ITargetSource targetSource, IList advisors, IList introductions) + protected internal virtual void CopyConfigurationFrom(AdvisedSupport other, ITargetSource targetSource, IList advisors, IList introductions) { CopyFrom(other); this.AdvisorChainFactory = other.advisorChainFactory; this.m_targetSource = targetSource; // this.cachedProxyType = other.cachedProxyType; // this.cachedProxyConstructor = other.cachedProxyConstructor; - this.Interfaces = (Type[]) CollectionUtils.ToArray(other.Interfaces, typeof(Type)); + this.Interfaces = new List(other.Interfaces); foreach (Type intf in other.interfaceMap.Keys) { this.interfaceMap[intf] = other.interfaceMap[intf]; diff --git a/src/Spring/Spring.Aop/Aop/Framework/AdvisorChainFactoryUtils.cs b/src/Spring/Spring.Aop/Aop/Framework/AdvisorChainFactoryUtils.cs index 935898d8..d4ebd34e 100644 --- a/src/Spring/Spring.Aop/Aop/Framework/AdvisorChainFactoryUtils.cs +++ b/src/Spring/Spring.Aop/Aop/Framework/AdvisorChainFactoryUtils.cs @@ -67,7 +67,7 @@ namespace Spring.Aop.Framework public static IList CalculateInterceptors( IAdvised config, object proxy, MethodInfo method, Type targetType) { - IList interceptors = new List(config.Advisors.Length); + IList interceptors = new List(config.Advisors.Count); foreach (IAdvisor advisor in config.Advisors) { if (advisor is IPointcutAdvisor) diff --git a/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/AbstractAdvisorAutoProxyCreator.cs b/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/AbstractAdvisorAutoProxyCreator.cs index 0b923d81..6144760e 100644 --- a/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/AbstractAdvisorAutoProxyCreator.cs +++ b/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/AbstractAdvisorAutoProxyCreator.cs @@ -22,13 +22,14 @@ using System; using System.Collections; - +using System.Collections.Generic; using Common.Logging; using Spring.Core; using Spring.Objects.Factory; using Spring.Objects.Factory.Config; using Spring.Util; +using System.Linq; #endregion @@ -125,20 +126,20 @@ namespace Spring.Aop.Framework.AutoProxy /// the type of the target object /// the name of the target object /// targetSource returned by TargetSource property: - /// may be ignored. Will be null unless a custom target source is in use. + /// may be ignored. Will be null unless a custom target source is in use. /// /// an array of additional interceptors for the particular object; /// or an empty array if no additional interceptors but just the common ones; /// or null if no proxy at all, not even with the common interceptors. /// - protected override object[] GetAdvicesAndAdvisorsForObject(Type targetType, string targetName, ITargetSource customTargetSource) + protected override IList GetAdvicesAndAdvisorsForObject(Type targetType, string targetName, ITargetSource customTargetSource) { - IList advisors = FindEligibleAdvisors(targetType, targetName); + IList advisors = FindEligibleAdvisors(targetType, targetName); if (advisors.Count == 0) { return DO_NOT_PROXY; } - return (object[]) CollectionUtils.ToArray(advisors, typeof (object)); + return advisors.Cast().ToArray(); } /// @@ -150,10 +151,10 @@ namespace Spring.Aop.Framework.AutoProxy /// the empty list, not null, if there are no pointcuts or interceptors. /// The by-order sorted list of advisors otherwise /// - protected IList FindEligibleAdvisors(Type targetType, string targetName) + protected IList FindEligibleAdvisors(Type targetType, string targetName) { - IList candidateAdvisors = FindCandidateAdvisors(targetType, targetName); - IList eligibleAdvisors = FindAdvisorsThatCanApply(candidateAdvisors, targetType, targetName); + IList candidateAdvisors = FindCandidateAdvisors(targetType, targetName); + IList eligibleAdvisors = FindAdvisorsThatCanApply(candidateAdvisors, targetType, targetName); ExtendAdvisors(eligibleAdvisors, targetType, targetName); eligibleAdvisors = SortAdvisors(eligibleAdvisors); @@ -167,7 +168,7 @@ namespace Spring.Aop.Framework.AutoProxy /// the type of the object to be advised /// the name of the object to be advised /// the list of candidate advisors - protected virtual IList FindCandidateAdvisors(Type targetType, string targetName) + protected virtual IList FindCandidateAdvisors(Type targetType, string targetName) { return _advisorRetrievalHelper.FindAdvisorObjects(targetType, targetName); } @@ -180,14 +181,14 @@ namespace Spring.Aop.Framework.AutoProxy /// the target object's type /// the target object's name /// the list of applicable advisors - protected virtual IList FindAdvisorsThatCanApply(IList candidateAdvisors, Type targetType, string targetName) + protected virtual IList FindAdvisorsThatCanApply(IList candidateAdvisors, Type targetType, string targetName) { if (candidateAdvisors.Count==0) { return candidateAdvisors; } - ArrayList eligibleAdvisors = new ArrayList(); + List eligibleAdvisors = new List(); foreach(IAdvisor candidate in candidateAdvisors) { if (candidate is IIntroductionAdvisor && AopUtils.CanApply(candidate, targetType, null)) @@ -230,14 +231,16 @@ namespace Spring.Aop.Framework.AutoProxy /// /// The advisors. /// - protected virtual IList SortAdvisors(IList advisors) + protected virtual IList SortAdvisors(IList advisors) { if (advisors.Count==0) { return advisors; - } + } - if (advisors is ArrayList) + if (advisors is List) + ((List)advisors).Sort(new OrderComparator()); + else if (advisors is ArrayList) ((ArrayList) advisors).Sort(new OrderComparator()); else if (advisors is Array) Array.Sort((Array) advisors, new OrderComparator()); @@ -257,7 +260,7 @@ namespace Spring.Aop.Framework.AutoProxy /// Advisors that have already been identified as applying to a given object /// the type of the object to be advised /// the name of the object to be advised - protected virtual void ExtendAdvisors(IList advisors, Type objectType, string objectName) + protected virtual void ExtendAdvisors(IList advisors, Type objectType, string objectName) {} /// diff --git a/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/AbstractAutoProxyCreator.cs b/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/AbstractAutoProxyCreator.cs index 85e39cd3..4e45a493 100644 --- a/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/AbstractAutoProxyCreator.cs +++ b/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/AbstractAutoProxyCreator.cs @@ -21,6 +21,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Linq; using System.Reflection; using System.Runtime.Remoting; @@ -82,13 +83,13 @@ namespace Spring.Aop.Framework.AutoProxy /// /// Convenience constant for subclasses: Return value for "do not proxy". /// - protected static readonly object[] DO_NOT_PROXY = null; + protected static readonly IList DO_NOT_PROXY = null; /// /// Convenience constant for subclasses: Return value for /// "proxy without additional interceptors, just the common ones". /// - protected static readonly object[] PROXY_WITHOUT_ADDITIONAL_INTERCEPTORS = new object[0]; + protected static readonly IList PROXY_WITHOUT_ADDITIONAL_INTERCEPTORS = new List(0); #endregion @@ -286,8 +287,7 @@ namespace Spring.Aop.Framework.AutoProxy } //ITargetSource targetSource = GetCustomTargetSource(obj.GetType(), objectName); - object[] specificInterceptors; - specificInterceptors = GetAdvicesAndAdvisorsForObject(objectType, objectName, null); + IList specificInterceptors = GetAdvicesAndAdvisorsForObject(objectType, objectName, null); // proxy if we have advice or if a TargetSourceCreator wants to do some @@ -458,11 +458,11 @@ namespace Spring.Aop.Framework.AutoProxy /// the new object instance /// the name of the object /// targetSource returned by TargetSource property: - /// may be ignored. Will be null unless a custom target source is in use. + /// may be ignored. Will be null unless a custom target source is in use. /// an array of additional interceptors for the particular object; /// or an empty array if no additional interceptors but just the common ones; /// or null if no proxy at all, not even with the common interceptors. - protected abstract object[] GetAdvicesAndAdvisorsForObject(Type targetType, string targetName, ITargetSource customTargetSource); + protected abstract IList GetAdvicesAndAdvisorsForObject(Type targetType, string targetName, ITargetSource customTargetSource); /// /// Create an AOP proxy for the given object. @@ -470,10 +470,10 @@ namespace Spring.Aop.Framework.AutoProxy /// Type of the object. /// The name of the object. /// The set of interceptors that is specific to this - /// object (may be empty but not null) + /// object (may be empty but not null) /// The target source for the proxy, already pre-configured to access the object. /// The AOP Proxy for the object. - protected virtual object CreateProxy(Type targetType, string targetName, object[] specificInterceptors, ITargetSource targetSource) + protected virtual object CreateProxy(Type targetType, string targetName, IList specificInterceptors, ITargetSource targetSource) { ProxyFactory proxyFactory = CreateProxyFactory(); // copy our properties (proxyTargetClass) inherited from ProxyConfig @@ -494,7 +494,7 @@ namespace Spring.Aop.Framework.AutoProxy } - IAdvisor[] advisors = BuildAdvisors(targetName, specificInterceptors); + IList advisors = BuildAdvisors(targetName, specificInterceptors); foreach (IAdvisor advisor in advisors) { @@ -529,14 +529,14 @@ namespace Spring.Aop.Framework.AutoProxy /// /// The name of the object. /// The set of interceptors that is specific to this - /// object (may be empty, but not null) + /// object (may be empty, but not null) /// The list of Advisors for the given object - protected virtual IAdvisor[] BuildAdvisors(string targetName, object[] specificInterceptors) + protected virtual IList BuildAdvisors(string targetName, IList specificInterceptors) { // handle prototypes correctly - IAdvisor[] commonInterceptors = ResolveInterceptorNames(); + IList commonInterceptors = ResolveInterceptorNames(); - ArrayList allInterceptors = new ArrayList(); + List allInterceptors = new List(); if (specificInterceptors != null) { allInterceptors.AddRange(specificInterceptors); @@ -544,26 +544,26 @@ namespace Spring.Aop.Framework.AutoProxy { if (applyCommonInterceptorsFirst) { - allInterceptors.InsertRange(0, commonInterceptors); + allInterceptors.InsertRange(0, commonInterceptors.Cast()); } else { - allInterceptors.AddRange(commonInterceptors); + allInterceptors.AddRange(commonInterceptors.Cast()); } } } if (logger.IsInfoEnabled) { - int nrOfCommonInterceptors = commonInterceptors != null ? commonInterceptors.Length : 0; - int nrOfSpecificInterceptors = specificInterceptors != null ? specificInterceptors.Length : 0; + int nrOfCommonInterceptors = commonInterceptors != null ? commonInterceptors.Count : 0; + int nrOfSpecificInterceptors = specificInterceptors != null ? specificInterceptors.Count : 0; logger.Info(string.Format("Creating implicit proxy for object '{0}' with {1} common interceptors and {2} specific interceptors", targetName, nrOfCommonInterceptors, nrOfSpecificInterceptors)); } - IAdvisor[] advisors = new IAdvisor[allInterceptors.Count]; + List advisors = new List(allInterceptors.Count); for (int i = 0; i < allInterceptors.Count; i++) { - advisors[i] = advisorAdapterRegistry.Wrap(allInterceptors[i]); + advisors.Add(advisorAdapterRegistry.Wrap(allInterceptors[i])); } return advisors; } @@ -584,7 +584,7 @@ namespace Spring.Aop.Framework.AutoProxy #region Private Methods - private IAdvisor[] ResolveInterceptorNames() + private IList ResolveInterceptorNames() { List advisors = new List(); foreach (string name in interceptorNames) @@ -599,7 +599,7 @@ namespace Spring.Aop.Framework.AutoProxy advisors.Add(advisorAdapterRegistry.Wrap(next)); } } - return advisors.ToArray(); + return advisors; } #endregion @@ -659,7 +659,7 @@ namespace Spring.Aop.Framework.AutoProxy if (targetSource != null) { targetSourcedObjects.Add(objectName); - object[] specificInterceptors = GetAdvicesAndAdvisorsForObject(objectType, objectName, targetSource); + IList specificInterceptors = GetAdvicesAndAdvisorsForObject(objectType, objectName, targetSource); return CreateProxy(objectType, objectName, specificInterceptors, targetSource); } return null; @@ -687,8 +687,7 @@ namespace Spring.Aop.Framework.AutoProxy /// been set. /// Name of the object. /// The passed in PropertyValues - public IPropertyValues PostProcessPropertyValues(IPropertyValues pvs, PropertyInfo[] pis, object objectInstance, - string objectName) + public IPropertyValues PostProcessPropertyValues(IPropertyValues pvs, IList pis, object objectInstance, string objectName) { return pvs; } diff --git a/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/AbstractFilteringAutoProxyCreator.cs b/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/AbstractFilteringAutoProxyCreator.cs index 823be501..5c95302d 100644 --- a/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/AbstractFilteringAutoProxyCreator.cs +++ b/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/AbstractFilteringAutoProxyCreator.cs @@ -21,6 +21,7 @@ #region Imports using System; +using System.Collections.Generic; #endregion @@ -58,7 +59,7 @@ namespace Spring.Aop.Framework.AutoProxy /// Always to indicate, that the object shall be proxied. /// /// - protected override object[] GetAdvicesAndAdvisorsForObject( Type targetType, string targetName, ITargetSource customTargetSource ) + protected override IList GetAdvicesAndAdvisorsForObject(Type targetType, string targetName, ITargetSource customTargetSource) { return PROXY_WITHOUT_ADDITIONAL_INTERCEPTORS; } diff --git a/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/DefaultAdvisorAutoProxyCreator.cs b/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/DefaultAdvisorAutoProxyCreator.cs index 45aebb98..5217ef44 100644 --- a/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/DefaultAdvisorAutoProxyCreator.cs +++ b/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/DefaultAdvisorAutoProxyCreator.cs @@ -22,7 +22,7 @@ using System; using System.Collections; - +using System.Collections.Generic; using Spring.Objects.Factory; #endregion @@ -45,7 +45,7 @@ namespace Spring.Aop.Framework.AutoProxy public static readonly string SEPARATOR = "."; private bool usePrefix; private string advisorObjectNamePrefix; - private IList cachedAdvisors; + private IList cachedAdvisors; #region Properties @@ -108,7 +108,7 @@ namespace Spring.Aop.Framework.AutoProxy /// the type of the object to be advised /// the name of the object to be advised /// the list of candidate advisors - protected override IList FindCandidateAdvisors(Type targetType, string targetName) + protected override IList FindCandidateAdvisors(Type targetType, string targetName) { if (cachedAdvisors == null) { cachedAdvisors = base.FindCandidateAdvisors(targetType, targetName); diff --git a/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/IAdvisorRetrievalHelper.cs b/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/IAdvisorRetrievalHelper.cs index 681b82a7..bcaa8451 100644 --- a/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/IAdvisorRetrievalHelper.cs +++ b/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/IAdvisorRetrievalHelper.cs @@ -1,5 +1,6 @@ using System; using System.Collections; +using System.Collections.Generic; namespace Spring.Aop.Framework.AutoProxy { @@ -13,6 +14,6 @@ namespace Spring.Aop.Framework.AutoProxy /// /// Get the list of advisor objects to apply on the target. /// - IList FindAdvisorObjects(Type targetType, string targetName); + IList FindAdvisorObjects(Type targetType, string targetName); } } \ No newline at end of file diff --git a/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/InheritanceBasedAopConfigurer.cs b/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/InheritanceBasedAopConfigurer.cs index e442f9d6..3269320b 100644 --- a/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/InheritanceBasedAopConfigurer.cs +++ b/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/InheritanceBasedAopConfigurer.cs @@ -176,8 +176,8 @@ namespace Spring.Aop.Framework.AutoProxy /// public void PostProcessObjectFactory(IConfigurableListableObjectFactory factory) { - string[] objectDefinitionNames = factory.GetObjectDefinitionNames(); - for (int i = 0; i < objectDefinitionNames.Length; ++i) + IList objectDefinitionNames = factory.GetObjectDefinitionNames(); + for (int i = 0; i < objectDefinitionNames.Count; ++i) { string name = objectDefinitionNames[i]; if (IsObjectNameMatch(name)) @@ -260,7 +260,7 @@ namespace Spring.Aop.Framework.AutoProxy proxyFactory.Interfaces = Type.EmptyTypes; } - IAdvisor[] advisors = ResolveInterceptorNames(); + IList advisors = ResolveInterceptorNames(); foreach (IAdvisor advisor in advisors) { if (advisor is IIntroductionAdvisor) @@ -307,7 +307,7 @@ namespace Spring.Aop.Framework.AutoProxy #region Private Methods - private IAdvisor[] ResolveInterceptorNames() + private IList ResolveInterceptorNames() { List advisors = new List(); foreach (string name in interceptorNames) @@ -322,7 +322,7 @@ namespace Spring.Aop.Framework.AutoProxy advisors.Add(advisorAdapterRegistry.Wrap(next)); } } - return advisors.ToArray(); + return advisors; } #endregion diff --git a/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/ObjectFactoryAdvisorRetrievalHelper.cs b/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/ObjectFactoryAdvisorRetrievalHelper.cs index 956da743..71196265 100644 --- a/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/ObjectFactoryAdvisorRetrievalHelper.cs +++ b/src/Spring/Spring.Aop/Aop/Framework/AutoProxy/ObjectFactoryAdvisorRetrievalHelper.cs @@ -1,25 +1,24 @@ #region License -/* - * Copyright 2002-2010 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. +/* + * Copyright 2002-2010 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ #endregion using System; -using System.Collections; using System.Collections.Generic; using Common.Logging; @@ -38,7 +37,7 @@ namespace Spring.Aop.Framework.AutoProxy { private readonly ILog _log; private readonly IConfigurableListableObjectFactory _objectFactory; - private string[] _cachedObjectNames; + private List _cachedObjectNames; /// /// The object factory to lookup advisors from @@ -64,18 +63,18 @@ namespace Spring.Aop.Framework.AutoProxy /// the type of the object to be advised /// the name of the object to be advised /// A list of eligible instances - public virtual IList FindAdvisorObjects(Type targetType, string targetName) + public virtual IList FindAdvisorObjects(Type targetType, string targetName) { - string[] advisorNames = GetAdvisorCandidateNames(targetType, targetName); + IList advisorNames = GetAdvisorCandidateNames(targetType, targetName); List advisors = new List(); - if (advisorNames.Length == 0) + if (advisorNames.Count == 0) { return advisors; } - for (int i = 0; i < advisorNames.Length; i++) + for (int i = 0; i < advisorNames.Count; i++) { string name = advisorNames[i]; if (IsEligibleObject(name, targetType, targetName) && !_objectFactory.IsCurrentlyInCreation(name)) @@ -137,7 +136,7 @@ namespace Spring.Aop.Framework.AutoProxy /// the type of the object to be advised /// the name of the object to be advised /// a non-null string array of advisor candidate names - protected virtual string[] GetAdvisorCandidateNames(Type targetType, string targetName) + protected virtual IList GetAdvisorCandidateNames(Type targetType, string targetName) { if (_cachedObjectNames == null) { @@ -146,11 +145,11 @@ namespace Spring.Aop.Framework.AutoProxy if (_cachedObjectNames == null) { List candidateNameList = new List(); - string[] advisorCandidateNames = ObjectFactoryUtils.ObjectNamesForTypeIncludingAncestors( _objectFactory, typeof(IAdvisor), true, false); + IList advisorCandidateNames = ObjectFactoryUtils.ObjectNamesForTypeIncludingAncestors( _objectFactory, typeof(IAdvisor), true, false); candidateNameList.AddRange(advisorCandidateNames); - string[] advisorsCandidateNames = ObjectFactoryUtils.ObjectNamesForTypeIncludingAncestors(_objectFactory, typeof(IAdvisors), true, false); + IList advisorsCandidateNames = ObjectFactoryUtils.ObjectNamesForTypeIncludingAncestors(_objectFactory, typeof(IAdvisors), true, false); candidateNameList.AddRange(advisorsCandidateNames); - _cachedObjectNames = candidateNameList.ToArray(); + _cachedObjectNames = candidateNameList; } } } @@ -164,7 +163,7 @@ namespace Spring.Aop.Framework.AutoProxy /// /// the name of the candidate advisor /// the type of the object to be advised - /// the name of the object to be advised + /// the name of the object to be advised protected virtual bool IsEligibleObject(string advisorName, Type objectType, string objectName ) { bool containsObjectDefinition = this.ObjectFactory.ContainsObjectDefinition(advisorName); diff --git a/src/Spring/Spring.Aop/Aop/Framework/DynamicProxy/AbstractAopProxyFactory.cs b/src/Spring/Spring.Aop/Aop/Framework/DynamicProxy/AbstractAopProxyFactory.cs index b4d0088a..9d0d95fa 100644 --- a/src/Spring/Spring.Aop/Aop/Framework/DynamicProxy/AbstractAopProxyFactory.cs +++ b/src/Spring/Spring.Aop/Aop/Framework/DynamicProxy/AbstractAopProxyFactory.cs @@ -31,7 +31,7 @@ namespace Spring.Aop.Framework.DynamicProxy { throw new AopConfigException("Cannot create IAopProxy with null ProxyConfig"); } - if (advisedSupport.Advisors.Length == 0 && advisedSupport.TargetSource == EmptyTargetSource.Empty) + if (advisedSupport.Advisors.Count == 0 && advisedSupport.TargetSource == EmptyTargetSource.Empty) { throw new AopConfigException("Cannot create IAopProxy with no advisors and no target source"); } diff --git a/src/Spring/Spring.Aop/Aop/Framework/DynamicProxy/AdvisedProxy.cs b/src/Spring/Spring.Aop/Aop/Framework/DynamicProxy/AdvisedProxy.cs index 695cba78..7427af85 100644 --- a/src/Spring/Spring.Aop/Aop/Framework/DynamicProxy/AdvisedProxy.cs +++ b/src/Spring/Spring.Aop/Aop/Framework/DynamicProxy/AdvisedProxy.cs @@ -165,8 +165,8 @@ namespace Spring.Aop.Framework.DynamicProxy this.m_targetType = advised.TargetSource.TargetType; // initialize introduction advice - this.m_introductions = new IAdvice[advised.Introductions.Length]; - for (int i = 0; i < advised.Introductions.Length; i++) + this.m_introductions = new IAdvice[advised.Introductions.Count]; + for (int i = 0; i < advised.Introductions.Count; i++) { this.m_introductions[i] = advised.Introductions[i].Advice; @@ -218,7 +218,7 @@ namespace Spring.Aop.Framework.DynamicProxy /// list of inteceptors for the specified method public IList GetInterceptors(Type targetType, MethodInfo method) { - if (m_advised.Advisors.Length == 0) + if (m_advised.Advisors.Count == 0) { return EmptyList; } @@ -252,17 +252,17 @@ namespace Spring.Aop.Framework.DynamicProxy get { return m_advised.ProxyTargetAttributes; } } - IAdvisor[] IAdvised.Advisors + IList IAdvised.Advisors { get { return m_advised.Advisors; } } - IIntroductionAdvisor[] IAdvised.Introductions + IList IAdvised.Introductions { get { return m_advised.Introductions; } } - Type[] IAdvised.Interfaces + IList IAdvised.Interfaces { get { return m_advised.Interfaces; } } diff --git a/src/Spring/Spring.Aop/Aop/Framework/DynamicProxy/CachedAopProxyFactory.cs b/src/Spring/Spring.Aop/Aop/Framework/DynamicProxy/CachedAopProxyFactory.cs index 1cb41710..79ab6917 100644 --- a/src/Spring/Spring.Aop/Aop/Framework/DynamicProxy/CachedAopProxyFactory.cs +++ b/src/Spring/Spring.Aop/Aop/Framework/DynamicProxy/CachedAopProxyFactory.cs @@ -21,6 +21,7 @@ #region Imports using System; +using System.Collections.Generic; using System.Text; using System.Collections; @@ -123,27 +124,27 @@ namespace Spring.Aop.Framework.DynamicProxy /// private sealed class ProxyTypeCacheKey { - private sealed class HashCodeComparer : IComparer + private sealed class HashCodeComparer : IComparer { - public int Compare(object x, object y) + public int Compare(Type x, Type y) { return x.GetHashCode().CompareTo(y.GetHashCode()); } } - private static IComparer interfaceComparer = new HashCodeComparer(); + private static HashCodeComparer interfaceComparer = new HashCodeComparer(); private Type baseType; private Type targetType; - private Type[] interfaceTypes; + private List interfaceTypes; private bool proxyTargetAttributes; - public ProxyTypeCacheKey(Type baseType, Type targetType, Type[] interfaceTypes, bool proxyTargetAttributes) + public ProxyTypeCacheKey(Type baseType, Type targetType, IList interfaceTypes, bool proxyTargetAttributes) { this.baseType = baseType; this.targetType = targetType; - Array.Sort(interfaceTypes, interfaceComparer); // sort by GetHashcode()? to have a defined order - this.interfaceTypes = interfaceTypes; + this.interfaceTypes = new List(interfaceTypes); + this.interfaceTypes.Sort(interfaceComparer); // sort by GetHashcode()? to have a defined order this.proxyTargetAttributes = proxyTargetAttributes; } @@ -166,7 +167,7 @@ namespace Spring.Aop.Framework.DynamicProxy { return false; } - for (int i = 0; i < interfaceTypes.Length; i++) + for (int i = 0; i < interfaceTypes.Count; i++) { if (!Equals(interfaceTypes[i], proxyTypeCacheKey.interfaceTypes[i])) { @@ -184,7 +185,7 @@ namespace Spring.Aop.Framework.DynamicProxy { int result = baseType.GetHashCode(); result = 29*result + targetType.GetHashCode(); - for (int i = 0; i < interfaceTypes.Length; i++) + for (int i = 0; i < interfaceTypes.Count; i++) { result = 29 * result + interfaceTypes[i].GetHashCode(); } diff --git a/src/Spring/Spring.Aop/Aop/Framework/DynamicProxy/DefaultAopProxyFactory.cs b/src/Spring/Spring.Aop/Aop/Framework/DynamicProxy/DefaultAopProxyFactory.cs index 55ea6a04..052597e9 100644 --- a/src/Spring/Spring.Aop/Aop/Framework/DynamicProxy/DefaultAopProxyFactory.cs +++ b/src/Spring/Spring.Aop/Aop/Framework/DynamicProxy/DefaultAopProxyFactory.cs @@ -69,7 +69,7 @@ namespace Spring.Aop.Framework.DynamicProxy { IProxyTypeBuilder typeBuilder; if ((advisedSupport.ProxyTargetType) || - (advisedSupport.Interfaces.Length == 0)) + (advisedSupport.Interfaces.Count == 0)) { typeBuilder = new DecoratorAopProxyTypeBuilder(advisedSupport); } diff --git a/src/Spring/Spring.Aop/Aop/Framework/IAdvised.cs b/src/Spring/Spring.Aop/Aop/Framework/IAdvised.cs index ea62cbed..f372be8b 100644 --- a/src/Spring/Spring.Aop/Aop/Framework/IAdvised.cs +++ b/src/Spring/Spring.Aop/Aop/Framework/IAdvised.cs @@ -22,6 +22,7 @@ using System; using System.Collections; +using System.Collections.Generic; using AopAlliance.Aop; @@ -109,7 +110,7 @@ namespace Spring.Aop.Framework /// The collection of /// instances that have been applied to this proxy. /// - IAdvisor[] Advisors { get; } + IList Advisors { get; } /// /// Returns the collection of @@ -127,7 +128,7 @@ namespace Spring.Aop.Framework /// The collection of /// instances that have been applied to this proxy. /// - IIntroductionAdvisor[] Introductions { get; } + IList Introductions { get; } /// /// Returns the collection of interface s @@ -137,7 +138,7 @@ namespace Spring.Aop.Framework /// The collection of interface s /// to be (or that are being) proxied by this proxy. /// - Type[] Interfaces { get; } + IList Interfaces { get; } /// /// Returns the mapping of the proxied interface diff --git a/src/Spring/Spring.Aop/Aop/Framework/ProxyFactoryObject.cs b/src/Spring/Spring.Aop/Aop/Framework/ProxyFactoryObject.cs index 2473a5e8..7e7b00d7 100644 --- a/src/Spring/Spring.Aop/Aop/Framework/ProxyFactoryObject.cs +++ b/src/Spring/Spring.Aop/Aop/Framework/ProxyFactoryObject.cs @@ -397,7 +397,7 @@ namespace Spring.Aop.Framework { return this.singletonInstance.GetType(); } - else if (Interfaces.Length == 1) + else if (Interfaces.Count == 1) { return Interfaces[0]; } @@ -457,7 +457,7 @@ namespace Spring.Aop.Framework // The copy needs a fresh advisor chain, and a fresh TargetSource. ITargetSource targetSource = FreshTargetSource(); IList advisorChain = FreshAdvisorChain(); - IList introductionChain = FreshIntroductionChain(); + IList introductionChain = FreshIntroductionChain(); AdvisedSupport copy = new AdvisedSupport(); copy.CopyConfigurationFrom(this, targetSource, advisorChain, introductionChain); @@ -625,16 +625,16 @@ namespace Spring.Aop.Framework /// Add all global interceptors and pointcuts. private void AddGlobalAdvisor(IListableObjectFactory objectFactory, string prefix) { - string[] globalAspectNames = + IList globalAspectNames = ObjectFactoryUtils.ObjectNamesForTypeIncludingAncestors(objectFactory, typeof(IAdvisors)); - string[] globalAdvisorNames = + IList globalAdvisorNames = ObjectFactoryUtils.ObjectNamesForTypeIncludingAncestors(objectFactory, typeof(IAdvisor)); - string[] globalInterceptorNames = + IList globalInterceptorNames = ObjectFactoryUtils.ObjectNamesForTypeIncludingAncestors(objectFactory, typeof(IInterceptor)); List objects = new List(); Dictionary names = new Dictionary(); - for (int i = 0; i < globalAspectNames.Length; i++) + for (int i = 0; i < globalAspectNames.Count; i++) { string name = globalAspectNames[i]; if (name.StartsWith(prefix)) @@ -651,7 +651,7 @@ namespace Spring.Aop.Framework } } } - for (int i = 0; i < globalAdvisorNames.Length; i++) + for (int i = 0; i < globalAdvisorNames.Count; i++) { string name = globalAdvisorNames[i]; if (name.StartsWith(prefix)) @@ -665,7 +665,7 @@ namespace Spring.Aop.Framework } } } - for (int i = 0; i < globalInterceptorNames.Length; i++) + for (int i = 0; i < globalInterceptorNames.Count; i++) { string name = globalInterceptorNames[i]; if (name.StartsWith(prefix)) @@ -737,16 +737,16 @@ namespace Spring.Aop.Framework /// Add all global introductions. private void AddGlobalIntroduction(IListableObjectFactory objectFactory, string prefix) { - string[] globalAspectNames = + IList globalAspectNames = ObjectFactoryUtils.ObjectNamesForTypeIncludingAncestors(objectFactory, typeof(IAdvisors)); - string[] globalAdvisorNames = + IList globalAdvisorNames = ObjectFactoryUtils.ObjectNamesForTypeIncludingAncestors(objectFactory, typeof(IAdvisor)); - string[] globalIntroductionNames = + IList globalIntroductionNames = ObjectFactoryUtils.ObjectNamesForTypeIncludingAncestors(objectFactory, typeof(IAdvice)); ArrayList objects = new ArrayList(); Dictionary names = new Dictionary(); - for (int i = 0; i < globalAspectNames.Length; i++) + for (int i = 0; i < globalAspectNames.Count; i++) { string name = globalAspectNames[i]; if (name.StartsWith(prefix)) @@ -763,7 +763,7 @@ namespace Spring.Aop.Framework } } } - for (int i = 0; i < globalAdvisorNames.Length; i++) + for (int i = 0; i < globalAdvisorNames.Count; i++) { string name = globalAdvisorNames[i]; if (name.StartsWith(prefix)) @@ -777,7 +777,7 @@ namespace Spring.Aop.Framework } } } - for (int i = 0; i < globalIntroductionNames.Length; i++) + for (int i = 0; i < globalIntroductionNames.Count; i++) { string name = globalIntroductionNames[i]; if (name.StartsWith(prefix)) @@ -850,7 +850,7 @@ namespace Spring.Aop.Framework /// private IList FreshAdvisorChain() { - IAdvisor[] advisors = Advisors; + IList advisors = Advisors; List freshAdvisors = new List(); foreach (IAdvisor advisor in advisors) { @@ -881,10 +881,10 @@ namespace Spring.Aop.Framework /// We need to do this every time a new prototype instance is returned, /// to return distinct instances of prototype interfaces and pointcuts. /// - private IList FreshIntroductionChain() + private IList FreshIntroductionChain() { - IIntroductionAdvisor[] introductions = Introductions; - List freshIntroductions = new List(); + IList introductions = Introductions; + List freshIntroductions = new List(); foreach (IIntroductionAdvisor introduction in introductions) { if (introduction is PrototypePlaceholder) @@ -899,7 +899,7 @@ namespace Spring.Aop.Framework AssertUtils.ArgumentNotNull(this.objectFactory, "ObjectFactory"); object introductionObject = this.objectFactory.GetObject(pa.ObjectName); - IAdvisor freshIntroduction = NamedObjectToIntroduction(introductionObject); + IIntroductionAdvisor freshIntroduction = NamedObjectToIntroduction(introductionObject); freshIntroductions.Add(freshIntroduction); } else diff --git a/src/Spring/Spring.Aop/Spring.Aop.2008.csproj b/src/Spring/Spring.Aop/Spring.Aop.2008.csproj index 6c3d3cb5..e12fc8cd 100644 --- a/src/Spring/Spring.Aop/Spring.Aop.2008.csproj +++ b/src/Spring/Spring.Aop/Spring.Aop.2008.csproj @@ -93,6 +93,9 @@ System + + 3.5 + System.Data diff --git a/src/Spring/Spring.Core/Context/IMessageSourceResolvable.cs b/src/Spring/Spring.Core/Context/IMessageSourceResolvable.cs index 35832428..d871adb6 100644 --- a/src/Spring/Spring.Core/Context/IMessageSourceResolvable.cs +++ b/src/Spring/Spring.Core/Context/IMessageSourceResolvable.cs @@ -21,6 +21,7 @@ #region Imports using System; +using System.Collections.Generic; using System.Globalization; #endregion @@ -46,16 +47,16 @@ namespace Spring.Context /// Return the codes to be used to resolve this message, in the order /// that they are to be tried. /// - /// - ///

- /// The last code will therefore be the default one. - ///

- ///
+ /// + ///

+ /// The last code will therefore be the default one. + ///

+ ///
/// /// A array of codes which are associated /// with this message. /// - string[] GetCodes(); + IList GetCodes(); /// /// Return the array of arguments to be used to resolve this message. diff --git a/src/Spring/Spring.Core/Context/Support/AbstractApplicationContext.cs b/src/Spring/Spring.Core/Context/Support/AbstractApplicationContext.cs index 42e31143..85944326 100644 --- a/src/Spring/Spring.Core/Context/Support/AbstractApplicationContext.cs +++ b/src/Spring/Spring.Core/Context/Support/AbstractApplicationContext.cs @@ -513,7 +513,7 @@ namespace Spring.Context.Support } } - IDictionary objectMap = objectFactory.GetObjectsOfType(true, false); + IDictionary objectMap = objectFactory.GetObjects(true, false); List registryPostProcessorObjects = new List(objectMap.Values); registryPostProcessorObjects.Sort(new OrderComparator()); @@ -547,11 +547,8 @@ namespace Spring.Context.Support // Do not initialize FactoryBeans here: We need to leave all regular beans // uninitialized to let the bean factory post-processors apply to them! List factoryProcessorNames = new List(); - string[] names = GetObjectNamesForType(typeof(IObjectFactoryPostProcessor), true, false); - foreach (string name in names) - { - factoryProcessorNames.Add(name); - } + IList names = GetObjectNamesForType(typeof(IObjectFactoryPostProcessor), true, false); + factoryProcessorNames.AddRange(names); // Separate between ObjectFactoryPostProcessors that implement PriorityOrdered, // Ordered, and the rest. @@ -621,7 +618,7 @@ namespace Spring.Context.Support // Now will find any additional IObjectFactoryPostProcessors that implement IPriorityOrdered that may have been // resolved due to using TypeAlias - string[] factoryProcessorNamesAfterTypeAlias = GetObjectNamesForType(typeof(IObjectFactoryPostProcessor), true, false); + IList factoryProcessorNamesAfterTypeAlias = GetObjectNamesForType(typeof(IObjectFactoryPostProcessor), true, false); priorityOrderedFactoryProcessors.Clear(); foreach (string factoryProcessorName in factoryProcessorNamesAfterTypeAlias) { @@ -649,7 +646,7 @@ namespace Spring.Context.Support private void RegisterObjectPostProcessors(IConfigurableListableObjectFactory objectFactory) { RefreshObjectPostProcessorChecker(objectFactory); - IDictionary dict = GetObjectsOfType(true, false); + IDictionary dict = GetObjects(true, false); List objectProcessors = new List(dict.Values); // objectProcessors.Sort(new OrderComparator()); foreach (IObjectPostProcessor objectPostProcessor in objectProcessors) @@ -675,7 +672,7 @@ namespace Spring.Context.Support /// private void RefreshObjectPostProcessorChecker(IConfigurableListableObjectFactory objectFactory) { - int registeredObjectPostProcessorCount = GetObjectNamesForType(typeof(IObjectPostProcessor), true, false).Length; + int registeredObjectPostProcessorCount = GetObjectNamesForType(typeof(IObjectPostProcessor), true, false).Count; int objectPostProcessorCount = ObjectFactory.ObjectPostProcessorCount + 1 + registeredObjectPostProcessorCount; ((ObjectPostProcessorChecker)_defaultObjectPostProcessors[0]).Reset(objectFactory, objectPostProcessorCount); @@ -733,7 +730,7 @@ namespace Spring.Context.Support #endregion } - ICollection interestedParties = GetObjectsOfType(true, false).Values; + ICollection interestedParties = GetObjects(true, false).Values; foreach (IEventRegistryAware party in interestedParties) { party.EventRegistry = EventRegistry; @@ -856,7 +853,7 @@ namespace Spring.Context.Support private void RefreshApplicationEventListeners() { - ICollection listeners = GetObjectsOfType(true, false).Values; + ICollection listeners = GetObjects(true, false).Values; foreach (IApplicationEventListener applicationListener in listeners) { EventRegistry.Subscribe(applicationListener); @@ -1165,7 +1162,7 @@ namespace Spring.Context.Support get { IConfigurableListableObjectFactory objectFactory = ObjectFactory; - string[] objectNames = objectFactory.SingletonNames; + IList objectNames = objectFactory.SingletonNames; IDictionary lifeCycleObjects = new Dictionary(); foreach (string objectName in objectNames) { @@ -1232,7 +1229,7 @@ namespace Spring.Context.Support /// are defined. /// /// - public string[] GetObjectNamesForType(Type type) + public IList GetObjectNamesForType(Type type) { return ObjectFactory.GetObjectNamesForType(type); } @@ -1260,7 +1257,7 @@ namespace Spring.Context.Support /// The names of all objects defined in this factory, or an empty array if none /// are defined. /// - public string[] GetObjectNamesForType() + public IList GetObjectNames() { return GetObjectNamesForType(typeof(T)); } @@ -1286,8 +1283,7 @@ namespace Spring.Context.Support /// are defined. /// /// - public string[] GetObjectNamesForType( - Type type, bool includePrototypes, bool includeFactoryObjects) + public IList GetObjectNamesForType(Type type, bool includePrototypes, bool includeFactoryObjects) { return ObjectFactory.GetObjectNamesForType(type, includePrototypes, includeFactoryObjects); } @@ -1327,7 +1323,7 @@ namespace Spring.Context.Support /// The names of all objects defined in this factory, or an empty array if none /// are defined. /// - public string[] GetObjectNamesForType(bool includePrototypes, bool includeFactoryObjects) + public IList GetObjectNames(bool includePrototypes, bool includeFactoryObjects) { return GetObjectNamesForType(typeof(T), includePrototypes, includeFactoryObjects); } @@ -1340,7 +1336,7 @@ namespace Spring.Context.Support /// are defined. /// /// - public string[] GetObjectDefinitionNames() + public IList GetObjectDefinitionNames() { return ObjectFactory.GetObjectDefinitionNames(); } @@ -1442,9 +1438,9 @@ namespace Spring.Context.Support /// /// If the objects could not be created. /// - public IDictionary GetObjectsOfType() + public IDictionary GetObjects() { - return ObjectFactory.GetObjectsOfType(true, true); + return ObjectFactory.GetObjects(true, true); } /// @@ -1506,9 +1502,9 @@ namespace Spring.Context.Support /// /// If the objects could not be created. /// - public IDictionary GetObjectsOfType(bool includePrototypes, bool includeFactoryObjects) + public IDictionary GetObjects(bool includePrototypes, bool includeFactoryObjects) { - return ObjectFactory.GetObjectsOfType(includePrototypes, includeFactoryObjects); + return ObjectFactory.GetObjects(includePrototypes, includeFactoryObjects); } /// @@ -1542,13 +1538,13 @@ namespace Spring.Context.Support /// public T GetObject() { - string[] objectNamesForType = GetObjectNamesForType(typeof(T)); - if ((objectNamesForType == null) || (objectNamesForType.Length == 0)) + IList objectNamesForType = GetObjectNamesForType(typeof(T)); + if ((objectNamesForType == null) || (objectNamesForType.Count == 0)) { throw new NoSuchObjectDefinitionException(typeof(T).FullName, "Requested Type not Defined in the Context."); } - if (objectNamesForType.Length > 1) + if (objectNamesForType.Count > 1) { throw new ObjectDefinitionStoreException(string.Format("More than one definition for {0} found in the Context.", typeof(T).FullName)); } @@ -1624,7 +1620,7 @@ namespace Spring.Context.Support /// If there's no such object definition. /// /// - public string[] GetAliases(string name) + public IList GetAliases(string name) { return ObjectFactory.GetAliases(name); } diff --git a/src/Spring/Spring.Core/Context/Support/AbstractMessageSource.cs b/src/Spring/Spring.Core/Context/Support/AbstractMessageSource.cs index 024513fd..462e71bc 100644 --- a/src/Spring/Spring.Core/Context/Support/AbstractMessageSource.cs +++ b/src/Spring/Spring.Core/Context/Support/AbstractMessageSource.cs @@ -19,6 +19,7 @@ #endregion using System; +using System.Collections.Generic; using System.Globalization; using Common.Logging; @@ -282,21 +283,21 @@ namespace Spring.Context.Support /// public string GetMessage(IMessageSourceResolvable resolvable, CultureInfo culture) { - string[] codes = resolvable.GetCodes(); + IList codes = resolvable.GetCodes(); if (codes == null) codes = new string[0]; - for (int i = 0; i < codes.Length; i++) + for (int i = 0; i < codes.Count; i++) { string msg = GetMessageInternal(codes[i], resolvable.GetArguments(), culture); if (msg != null) return msg; } if (resolvable.DefaultMessage != null) return RenderDefaultMessage(resolvable.DefaultMessage, resolvable.GetArguments(), culture); - if (codes.Length > 0) + if (codes.Count > 0) { string fallback = GetDefaultMessage(codes[0]); if (fallback != null) return fallback; } - throw new NoSuchMessageException(codes.Length > 0 ? codes[codes.Length - 1] : null, culture); + throw new NoSuchMessageException(codes.Count > 0 ? codes[codes.Count - 1] : null, culture); } /// diff --git a/src/Spring/Spring.Core/Context/Support/ContextHandler.cs b/src/Spring/Spring.Core/Context/Support/ContextHandler.cs index bee696a3..c97613aa 100644 --- a/src/Spring/Spring.Core/Context/Support/ContextHandler.cs +++ b/src/Spring/Spring.Core/Context/Support/ContextHandler.cs @@ -282,7 +282,7 @@ namespace Spring.Context.Support bool caseSensitive = GetCaseSensitivity(contextElement); // get resource-list - string[] resources = GetResources(contextElement); + IList resources = GetResources(contextElement); // finally create the context instance context = InstantiateContext(parentContext, configContext, contextName, contextType, caseSensitive, resources); @@ -293,7 +293,7 @@ namespace Spring.Context.Support } // get and create child context definitions - XmlNode[] childContexts = GetChildContexts(contextElement); + IList childContexts = GetChildContexts(contextElement); CreateChildContexts(context, configContext, childContexts); if (Log.IsDebugEnabled) Log.Debug( string.Format("context '{0}' created for name '{1}'", context, contextName) ); @@ -309,15 +309,15 @@ namespace Spring.Context.Support throw; } return context; - } - - /// - /// Create all child-contexts in the given for the given context. - /// - /// The parent context to use - /// The current configContext - /// The list of child context elements - protected virtual void CreateChildContexts(IApplicationContext parentContext, object configContext, XmlNode[] childContexts) + } + + /// + /// Create all child-contexts in the given for the given context. + /// + /// The parent context to use + /// The current configContext + /// The list of child context elements + protected virtual void CreateChildContexts(IApplicationContext parentContext, object configContext, IList childContexts) { // create child contexts for 'the most recently created context'... foreach (XmlNode childContext in childContexts) @@ -329,18 +329,18 @@ namespace Spring.Context.Support /// /// Instantiates a new context. /// - protected virtual IApplicationContext InstantiateContext(IApplicationContext parentContext, object configContext, string contextName, Type contextType, bool caseSensitive, string[] resources) + protected virtual IApplicationContext InstantiateContext(IApplicationContext parentContext, object configContext, string contextName, Type contextType, bool caseSensitive, IList resources) { IApplicationContext context; ContextInstantiator instantiator; if (parentContext == null) { - instantiator = new RootContextInstantiator(contextType, contextName, caseSensitive, resources); + instantiator = new RootContextInstantiator(contextType, contextName, caseSensitive, new List(resources).ToArray()); } else - { - instantiator = new DescendantContextInstantiator(parentContext, contextType, contextName, caseSensitive, resources); + { + instantiator = new DescendantContextInstantiator(parentContext, contextType, contextName, caseSensitive, new List(resources).ToArray()); } if (IsLazy) @@ -446,7 +446,7 @@ namespace Spring.Context.Support /// Returns the array of resources containing object definitions for /// this context. /// - private string[] GetResources( XmlElement contextElement ) + private IList GetResources( XmlElement contextElement ) { List resourceNodes = new List(contextElement.ChildNodes.Count); foreach (XmlNode possibleResourceNode in contextElement.ChildNodes) @@ -462,13 +462,13 @@ namespace Spring.Context.Support } } } - return resourceNodes.ToArray(); + return resourceNodes; } /// /// Returns the array of child contexts for this context. /// - private XmlNode[] GetChildContexts(XmlElement contextElement) + private IList GetChildContexts(XmlElement contextElement) { List contextNodes = new List(contextElement.ChildNodes.Count); foreach (XmlNode possibleContextNode in contextElement.ChildNodes) @@ -480,7 +480,7 @@ namespace Spring.Context.Support contextNodes.Add(possibleContextElement); } } - return contextNodes.ToArray(); + return contextNodes; } #region Inner Class : ContextInstantiator @@ -528,7 +528,7 @@ namespace Spring.Context.Support get { return _caseSensitive; } } - protected string[] Resources + protected IList Resources { get { return _resources; } } @@ -536,7 +536,7 @@ namespace Spring.Context.Support private Type _contextType; private string _contextName; private bool _caseSensitive; - private string[] _resources; + private IList _resources; } #endregion diff --git a/src/Spring/Spring.Core/Context/Support/DefaultMessageSourceResolvable.cs b/src/Spring/Spring.Core/Context/Support/DefaultMessageSourceResolvable.cs index ca8fbeb6..5f86f20f 100644 --- a/src/Spring/Spring.Core/Context/Support/DefaultMessageSourceResolvable.cs +++ b/src/Spring/Spring.Core/Context/Support/DefaultMessageSourceResolvable.cs @@ -21,6 +21,7 @@ #region Imports using System; +using System.Collections.Generic; using System.Globalization; using Spring.Util; @@ -44,7 +45,7 @@ namespace Spring.Context.Support [Serializable] public class DefaultMessageSourceResolvable : IMessageSourceResolvable { - private string[] codes; + private IList codes; private object[] arguments; private string defaultMessage; @@ -97,7 +98,7 @@ namespace Spring.Context.Support /// The default message used if no code could be resolved. /// public DefaultMessageSourceResolvable( - string[] codes, object[] arguments, string defaultMessage) + IList codes, object[] arguments, string defaultMessage) { this.codes = codes; this.arguments = arguments; @@ -141,9 +142,9 @@ namespace Spring.Context.Support { get { - if (codes != null && codes.Length > 0) + if (codes != null && codes.Count > 0) { - return codes[codes.Length - 1]; + return codes[codes.Count - 1]; } else { @@ -181,16 +182,16 @@ namespace Spring.Context.Support #region IMessageSourceResolvable Members - /// - /// Return the codes to be used to resolve this message, in the order - /// that they are to be tried. - /// - /// - /// A array of codes which are associated - /// with this message. - /// - /// - public string[] GetCodes() + /// + /// Return the codes to be used to resolve this message, in the order + /// that they are to be tried. + /// + /// + /// A array of codes which are associated + /// with this message. + /// + /// + public IList GetCodes() { return codes; } diff --git a/src/Spring/Spring.Core/Context/Support/DelegatingMessageSource.cs b/src/Spring/Spring.Core/Context/Support/DelegatingMessageSource.cs index ad75cdfd..03bddaa1 100644 --- a/src/Spring/Spring.Core/Context/Support/DelegatingMessageSource.cs +++ b/src/Spring/Spring.Core/Context/Support/DelegatingMessageSource.cs @@ -20,6 +20,7 @@ #region Imports +using System.Collections.Generic; using System.Globalization; using Spring.Util; @@ -352,8 +353,8 @@ namespace Spring.Context.Support { return resolvable.DefaultMessage; } - string[] codes = resolvable.GetCodes(); - string code = (codes != null && codes.Length > 0 ? codes[0] : string.Empty); + IList codes = resolvable.GetCodes(); + string code = (codes != null && codes.Count > 0 ? codes[0] : string.Empty); throw new NoSuchMessageException(code, culture); } diff --git a/src/Spring/Spring.Core/Core/TypeResolution/TypeResolutionUtils.cs b/src/Spring/Spring.Core/Core/TypeResolution/TypeResolutionUtils.cs index cfdf4b20..5eade196 100644 --- a/src/Spring/Spring.Core/Core/TypeResolution/TypeResolutionUtils.cs +++ b/src/Spring/Spring.Core/Core/TypeResolution/TypeResolutionUtils.cs @@ -21,7 +21,6 @@ #region Imports using System; -using System.Collections; using System.Collections.Generic; using System.Globalization; using System.Text.RegularExpressions; @@ -123,7 +122,7 @@ namespace Spring.Core.TypeResolution /// If (or any of its elements ) is /// . /// - public static Type[] ResolveInterfaceArray(string[] interfaceNames) + public static IList ResolveInterfaceArray(string[] interfaceNames) { AssertUtils.ArgumentNotNull(interfaceNames, "interfaceNames"); @@ -144,7 +143,7 @@ namespace Spring.Core.TypeResolution interfaces.Add(resolvedInterface); interfaces.AddRange(resolvedInterface.GetInterfaces()); } - return interfaces.ToArray(); + return interfaces; } #region MethodMatch diff --git a/src/Spring/Spring.Core/Expressions/ConstructorNode.cs b/src/Spring/Spring.Core/Expressions/ConstructorNode.cs index 332b273a..e5aae7c5 100644 --- a/src/Spring/Spring.Core/Expressions/ConstructorNode.cs +++ b/src/Spring/Spring.Core/Expressions/ConstructorNode.cs @@ -179,15 +179,15 @@ namespace Spring.Expressions private static ConstructorInfo GetBestConstructor(Type type, object[] argValues) { - ConstructorInfo[] candidates = GetCandidateConstructors(type, argValues.Length); - if (candidates.Length > 0) + IList candidates = GetCandidateConstructors(type, argValues.Length); + if (candidates.Count > 0) { return ReflectionUtils.GetConstructorByArgumentValues(candidates, argValues); } return null; } - private static ConstructorInfo[] GetCandidateConstructors(Type type, int argCount) + private static IList GetCandidateConstructors(Type type, int argCount) { ConstructorInfo[] ctors = type.GetConstructors(BindingFlags.Instance|BindingFlags.Public|BindingFlags.NonPublic); List matches = new List(); @@ -209,7 +209,7 @@ namespace Spring.Expressions } } - return matches.ToArray(); + return matches; } } diff --git a/src/Spring/Spring.Core/Expressions/MethodNode.cs b/src/Spring/Spring.Core/Expressions/MethodNode.cs index e7f0d99b..079b71d6 100644 --- a/src/Spring/Spring.Core/Expressions/MethodNode.cs +++ b/src/Spring/Spring.Core/Expressions/MethodNode.cs @@ -234,8 +234,8 @@ namespace Spring.Expressions catch (AmbiguousMatchException) { - MethodInfo[] overloads = GetCandidateMethods(type, methodName, bindingFlags, argValues.Length); - if (overloads.Length > 0) + IList overloads = GetCandidateMethods(type, methodName, bindingFlags, argValues.Length); + if (overloads.Count > 0) { mi = ReflectionUtils.GetMethodByArgumentValues(overloads, argValues); } @@ -245,7 +245,7 @@ namespace Spring.Expressions - private static MethodInfo[] GetCandidateMethods(Type type, string methodName, BindingFlags bindingFlags, int argCount) + private static IList GetCandidateMethods(Type type, string methodName, BindingFlags bindingFlags, int argCount) { MethodInfo[] methods = type.GetMethods(bindingFlags | BindingFlags.FlattenHierarchy); List matches = new List(); @@ -270,7 +270,7 @@ namespace Spring.Expressions } } - return matches.ToArray(); + return matches; } // used to calculate signature hash while caring for arg positions diff --git a/src/Spring/Spring.Core/Objects/Factory/Attributes/RequiredAttributeObjectPostProcessor.cs b/src/Spring/Spring.Core/Objects/Factory/Attributes/RequiredAttributeObjectPostProcessor.cs index 19e174ba..2f822123 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Attributes/RequiredAttributeObjectPostProcessor.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Attributes/RequiredAttributeObjectPostProcessor.cs @@ -107,8 +107,7 @@ namespace Spring.Objects.Factory.Attributes /// /// If a required property value has not been specified /// in the configuration metadata. - public override IPropertyValues PostProcessPropertyValues(IPropertyValues pvs, PropertyInfo[] pis, object objectInstance, - string objectName) + public override IPropertyValues PostProcessPropertyValues(IPropertyValues pvs, IList pis, object objectInstance, string objectName) { if (!validatedObjectNames.Contains(objectName)) { @@ -124,7 +123,7 @@ namespace Spring.Objects.Factory.Attributes if (invalidProperties.Count != 0) { throw new ObjectInitializationException( - BuildExceptionMessage(invalidProperties.ToArray(), objectName)); + BuildExceptionMessage(invalidProperties, objectName)); } validatedObjectNames.Add(objectName); } @@ -154,9 +153,9 @@ namespace Spring.Objects.Factory.Attributes /// The list of names of invalid properties. /// Name of the object. /// The exception message - private string BuildExceptionMessage(string[] invalidProperties, ICloneable objectName) + private string BuildExceptionMessage(IList invalidProperties, ICloneable objectName) { - int size = invalidProperties.Length; + int size = invalidProperties.Count; StringBuilder sb = new StringBuilder(); sb.Append(size == 1 ? "Property" : "Properties"); for (int i=0; i < size; i++) diff --git a/src/Spring/Spring.Core/Objects/Factory/Config/IInstantiationAwareObjectPostProcessor.cs b/src/Spring/Spring.Core/Objects/Factory/Config/IInstantiationAwareObjectPostProcessor.cs index b9d5673c..f7a44bab 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Config/IInstantiationAwareObjectPostProcessor.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Config/IInstantiationAwareObjectPostProcessor.cs @@ -19,6 +19,7 @@ #endregion using System; +using System.Collections.Generic; using System.Reflection; namespace Spring.Objects.Factory.Config { @@ -105,26 +106,25 @@ namespace Spring.Objects.Factory.Config { /// invoked on this object instance. bool PostProcessAfterInstantiation(object objectInstance, string objectName); - /// - /// Post-process the given property values before the factory applies them - /// to the given object. - /// - /// Allows for checking whether all dependencies have been - /// satisfied, for example based on a "Required" annotation on bean property setters. - /// Also allows for replacing the property values to apply, typically through - /// creating a new MutablePropertyValues instance based on the original PropertyValues, - /// adding or removing specific values. - /// - /// - /// The property values that the factory is about to apply (never null). - /// he relevant property infos for the target object (with ignored - /// dependency types - which the factory handles specifically - already filtered out) - /// The object instance created, but whose properties have not yet - /// been set. - /// Name of the object. - /// The actual property values to apply to the given object (can be the - /// passed-in PropertyValues instances0 or null to skip property population. - IPropertyValues PostProcessPropertyValues(IPropertyValues pvs, PropertyInfo[] pis, object objectInstance, - string objectName); + /// + /// Post-process the given property values before the factory applies them + /// to the given object. + /// + /// Allows for checking whether all dependencies have been + /// satisfied, for example based on a "Required" annotation on bean property setters. + /// Also allows for replacing the property values to apply, typically through + /// creating a new MutablePropertyValues instance based on the original PropertyValues, + /// adding or removing specific values. + /// + /// + /// The property values that the factory is about to apply (never null). + /// he relevant property infos for the target object (with ignored + /// dependency types - which the factory handles specifically - already filtered out) + /// The object instance created, but whose properties have not yet + /// been set. + /// Name of the object. + /// The actual property values to apply to the given object (can be the + /// passed-in PropertyValues instances0 or null to skip property population. + IPropertyValues PostProcessPropertyValues(IPropertyValues pvs, IList pis, object objectInstance, string objectName); } } diff --git a/src/Spring/Spring.Core/Objects/Factory/Config/IObjectDefinition.cs b/src/Spring/Spring.Core/Objects/Factory/Config/IObjectDefinition.cs index f61d8f1f..81f19b3d 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Config/IObjectDefinition.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Config/IObjectDefinition.cs @@ -21,6 +21,7 @@ #region Imports using System; +using System.Collections.Generic; #endregion @@ -178,7 +179,7 @@ namespace Spring.Objects.Factory.Config /// preparation on startup. ///

/// - string[] DependsOn { get; } + IList DependsOn { get; } /// /// The name of the initializer method. diff --git a/src/Spring/Spring.Core/Objects/Factory/Config/ISingletonObjectRegistry.cs b/src/Spring/Spring.Core/Objects/Factory/Config/ISingletonObjectRegistry.cs index b2f0a4c7..e1019486 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Config/ISingletonObjectRegistry.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Config/ISingletonObjectRegistry.cs @@ -18,6 +18,8 @@ #endregion +using System.Collections.Generic; + namespace Spring.Objects.Factory.Config { /// @@ -138,7 +140,7 @@ namespace Spring.Objects.Factory.Config /// /// /// - string[] SingletonNames + IList SingletonNames { get; } diff --git a/src/Spring/Spring.Core/Objects/Factory/Config/InstantiationAwareObjectPostProcessorAdapter.cs b/src/Spring/Spring.Core/Objects/Factory/Config/InstantiationAwareObjectPostProcessorAdapter.cs index d96f4557..2d357fad 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Config/InstantiationAwareObjectPostProcessorAdapter.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Config/InstantiationAwareObjectPostProcessorAdapter.cs @@ -19,6 +19,7 @@ #endregion using System; +using System.Collections.Generic; using System.Reflection; namespace Spring.Objects.Factory.Config @@ -153,8 +154,7 @@ namespace Spring.Objects.Factory.Config /// Name of the object. /// The actual property values to apply to the given object (can be the /// passed-in PropertyValues instances0 or null to skip property population. - public virtual IPropertyValues PostProcessPropertyValues(IPropertyValues pvs, PropertyInfo[] pis, object objectInstance, - string objectName) + public virtual IPropertyValues PostProcessPropertyValues(IPropertyValues pvs, IList pis, object objectInstance, string objectName) { return pvs; } diff --git a/src/Spring/Spring.Core/Objects/Factory/Config/ObjectDefinitionHolder.cs b/src/Spring/Spring.Core/Objects/Factory/Config/ObjectDefinitionHolder.cs index 082842b5..4fa884b9 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Config/ObjectDefinitionHolder.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Config/ObjectDefinitionHolder.cs @@ -21,7 +21,8 @@ #region Imports using System; -using Spring.Objects.Factory.Config; +using System.Collections.Generic; + using Spring.Objects.Factory.Xml; using Spring.Util; @@ -56,7 +57,7 @@ namespace Spring.Objects.Factory.Config { private IObjectDefinition objectDefinition; private string objectName; - private string[] aliases; + private IList aliases; #region Constructor () / Destructor @@ -87,11 +88,11 @@ namespace Spring.Objects.Factory.Config /// Any aliases for the supplied /// public ObjectDefinitionHolder( - IObjectDefinition definition, string name, string[] aliases) + IObjectDefinition definition, string name, IList aliases) { this.objectDefinition = definition; this.objectName = name; - this.aliases = aliases == null ? StringUtils.EmptyStrings : aliases; + this.aliases = aliases ?? new List(0); } #endregion @@ -126,7 +127,7 @@ namespace Spring.Objects.Factory.Config /// array will be returned. ///

/// - public string[] Aliases + public IList Aliases { get { return aliases; } } diff --git a/src/Spring/Spring.Core/Objects/Factory/Config/ObjectDefinitionVisitor.cs b/src/Spring/Spring.Core/Objects/Factory/Config/ObjectDefinitionVisitor.cs index 1b8a4b81..31f23ce4 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Config/ObjectDefinitionVisitor.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Config/ObjectDefinitionVisitor.cs @@ -115,7 +115,7 @@ namespace Spring.Objects.Factory.Config MutablePropertyValues pvs = objectDefinition.PropertyValues; if (pvs != null) { - for (int j = 0; j < pvs.PropertyValues.Length; j++) + for (int j = 0; j < pvs.PropertyValues.Count; j++) { PropertyValue pv = pvs.PropertyValues[j]; object newVal = ResolveValue(pv.Value); diff --git a/src/Spring/Spring.Core/Objects/Factory/Config/PropertyPlaceholderConfigurer.cs b/src/Spring/Spring.Core/Objects/Factory/Config/PropertyPlaceholderConfigurer.cs index 88ea1636..017d5f40 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Config/PropertyPlaceholderConfigurer.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Config/PropertyPlaceholderConfigurer.cs @@ -21,10 +21,12 @@ #region Imports using System; -using System.Collections; +using System.Collections.Generic; using System.Collections.Specialized; using System.Globalization; + using Common.Logging; + using Spring.Collections; #endregion @@ -228,10 +230,10 @@ namespace Spring.Objects.Factory.Config protected override void ProcessProperties(IConfigurableListableObjectFactory factory, NameValueCollection props) { PlaceholderResolveHandlerAdapter resolveAdapter = new PlaceholderResolveHandlerAdapter(this, props); - ObjectDefinitionVisitor visitor = new ObjectDefinitionVisitor(new ObjectDefinitionVisitor.ResolveHandler(resolveAdapter.ParseAndResolveVariables)); + ObjectDefinitionVisitor visitor = new ObjectDefinitionVisitor(resolveAdapter.ParseAndResolveVariables); - string[] objectDefinitionNames = factory.GetObjectDefinitionNames(); - for (int i = 0; i < objectDefinitionNames.Length; ++i) + IList objectDefinitionNames = factory.GetObjectDefinitionNames(); + for (int i = 0; i < objectDefinitionNames.Count; ++i) { string name = objectDefinitionNames[i]; IObjectDefinition definition = factory.GetObjectDefinition(name); diff --git a/src/Spring/Spring.Core/Objects/Factory/Config/VariablePlaceholderConfigurer.cs b/src/Spring/Spring.Core/Objects/Factory/Config/VariablePlaceholderConfigurer.cs index b38ff170..bbb18561 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Config/VariablePlaceholderConfigurer.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Config/VariablePlaceholderConfigurer.cs @@ -20,6 +20,7 @@ using System; using System.Collections; +using System.Collections.Generic; using System.Globalization; using Common.Logging; using Spring.Collections; @@ -245,8 +246,8 @@ namespace Spring.Objects.Factory.Config TextProcessor tp = new TextProcessor(this, compositeVariableSource); ObjectDefinitionVisitor visitor = new ObjectDefinitionVisitor(new ObjectDefinitionVisitor.ResolveHandler(tp.ParseAndResolveVariables)); - string[] objectDefinitionNames = factory.GetObjectDefinitionNames(); - for (int i = 0; i < objectDefinitionNames.Length; ++i) + IList objectDefinitionNames = factory.GetObjectDefinitionNames(); + for (int i = 0; i < objectDefinitionNames.Count; ++i) { string name = objectDefinitionNames[i]; IObjectDefinition definition = factory.GetObjectDefinition( name ); diff --git a/src/Spring/Spring.Core/Objects/Factory/IListableObjectFactory.cs b/src/Spring/Spring.Core/Objects/Factory/IListableObjectFactory.cs index 9866b06b..c071a342 100644 --- a/src/Spring/Spring.Core/Objects/Factory/IListableObjectFactory.cs +++ b/src/Spring/Spring.Core/Objects/Factory/IListableObjectFactory.cs @@ -86,141 +86,141 @@ namespace Spring.Objects.Factory /// int ObjectDefinitionCount { get; } - - /// - /// Return the names of all objects defined in this factory. - /// - /// - /// The names of all objects defined in this factory, or an empty array if none - /// are defined. - /// - string[] GetObjectDefinitionNames(); - /// - /// Return the names of objects matching the given - /// (including subclasses), judging from the object definitions. - /// - /// - ///

- /// Does consider objects created by s, - /// or rather it considers the type of objects created by - /// (which means that - /// s will be instantiated). - ///

- ///

- /// Does not consider any hierarchy this factory may participate in. - ///

- ///
- /// - /// The (class or interface) to match, or - /// for all object names. - /// - /// - /// The names of all objects defined in this factory, or an empty array if none - /// are defined. - /// - string[] GetObjectNamesForType(Type type); + /// + /// Return the names of all objects defined in this factory. + /// + /// + /// The names of all objects defined in this factory, or an empty array if none + /// are defined. + /// + IList GetObjectDefinitionNames(); + + /// + /// Return the names of objects matching the given + /// (including subclasses), judging from the object definitions. + /// + /// + ///

+ /// Does consider objects created by s, + /// or rather it considers the type of objects created by + /// (which means that + /// s will be instantiated). + ///

+ ///

+ /// Does not consider any hierarchy this factory may participate in. + ///

+ ///
+ /// + /// The (class or interface) to match, or + /// for all object names. + /// + /// + /// The names of all objects defined in this factory, or an empty array if none + /// are defined. + /// + IList GetObjectNamesForType(Type type); - /// - /// Return the names of objects matching the given - /// (including subclasses), judging from the object definitions. - /// - /// - ///

- /// Does consider objects created by s, - /// or rather it considers the type of objects created by - /// (which means that - /// s will be instantiated). - ///

- ///

- /// Does not consider any hierarchy this factory may participate in. - ///

- ///
- /// - /// The (class or interface) to match, or - /// for all object names. - /// - /// - /// The names of all objects defined in this factory, or an empty array if none - /// are defined. - /// - string[] GetObjectNamesForType(); + /// + /// Return the names of objects matching the given + /// (including subclasses), judging from the object definitions. + /// + /// + ///

+ /// Does consider objects created by s, + /// or rather it considers the type of objects created by + /// (which means that + /// s will be instantiated). + ///

+ ///

+ /// Does not consider any hierarchy this factory may participate in. + ///

+ ///
+ /// + /// The (class or interface) to match, or + /// for all object names. + /// + /// + /// The names of all objects defined in this factory, or an empty array if none + /// are defined. + /// + IList GetObjectNames(); - /// - /// Return the names of objects matching the given - /// (including subclasses), judging from the object definitions. - /// - /// - ///

- /// Does consider objects created by s, - /// or rather it considers the type of objects created by - /// (which means that - /// s will be instantiated). - ///

- ///

- /// Does not consider any hierarchy this factory may participate in. - /// Use - /// to include beans in ancestor factories too. - /// <p>Note: Does <i>not</i> ignore singleton objects that have been registered - /// by other means than bean definitions. - ///

- ///
- /// - /// The (class or interface) to match, or - /// for all object names. - /// - /// - /// Whether to include prototype objects too or just singletons (also applies to - /// s). - /// - /// - /// Whether to include s too - /// or just normal objects. - /// - /// - /// The names of all objects defined in this factory, or an empty array if none - /// are defined. - /// - string[] GetObjectNamesForType(Type type, bool includePrototypes, bool includeFactoryObjects); + /// + /// Return the names of objects matching the given + /// (including subclasses), judging from the object definitions. + /// + /// + ///

+ /// Does consider objects created by s, + /// or rather it considers the type of objects created by + /// (which means that + /// s will be instantiated). + ///

+ ///

+ /// Does not consider any hierarchy this factory may participate in. + /// Use + /// to include beans in ancestor factories too. + /// <p>Note: Does <i>not</i> ignore singleton objects that have been registered + /// by other means than bean definitions. + ///

+ ///
+ /// + /// The (class or interface) to match, or + /// for all object names. + /// + /// + /// Whether to include prototype objects too or just singletons (also applies to + /// s). + /// + /// + /// Whether to include s too + /// or just normal objects. + /// + /// + /// The names of all objects defined in this factory, or an empty array if none + /// are defined. + /// + IList GetObjectNamesForType(Type type, bool includePrototypes, bool includeFactoryObjects); - /// - /// Return the names of objects matching the given - /// (including subclasses), judging from the object definitions. - /// - /// - ///

- /// Does consider objects created by s, - /// or rather it considers the type of objects created by - /// (which means that - /// s will be instantiated). - ///

- ///

- /// Does not consider any hierarchy this factory may participate in. - /// Use - /// to include beans in ancestor factories too. - /// <p>Note: Does <i>not</i> ignore singleton objects that have been registered - /// by other means than bean definitions. - ///

- ///
- /// - /// The (class or interface) to match, or - /// for all object names. - /// - /// - /// Whether to include prototype objects too or just singletons (also applies to - /// s). - /// - /// - /// Whether to include s too - /// or just normal objects. - /// - /// - /// The names of all objects defined in this factory, or an empty array if none - /// are defined. - /// - string[] GetObjectNamesForType(bool includePrototypes, bool includeFactoryObjects); + /// + /// Return the names of objects matching the given + /// (including subclasses), judging from the object definitions. + /// + /// + ///

+ /// Does consider objects created by s, + /// or rather it considers the type of objects created by + /// (which means that + /// s will be instantiated). + ///

+ ///

+ /// Does not consider any hierarchy this factory may participate in. + /// Use + /// to include beans in ancestor factories too. + /// <p>Note: Does <i>not</i> ignore singleton objects that have been registered + /// by other means than bean definitions. + ///

+ ///
+ /// + /// The (class or interface) to match, or + /// for all object names. + /// + /// + /// Whether to include prototype objects too or just singletons (also applies to + /// s). + /// + /// + /// Whether to include s too + /// or just normal objects. + /// + /// + /// The names of all objects defined in this factory, or an empty array if none + /// are defined. + /// + IList GetObjectNames(bool includePrototypes, bool includeFactoryObjects); /// /// Return the object instances that match the given object @@ -278,7 +278,7 @@ namespace Spring.Objects.Factory /// /// If the objects could not be created. /// - IDictionary GetObjectsOfType(); + IDictionary GetObjects(); /// /// Return the object instances that match the given object @@ -334,7 +334,7 @@ namespace Spring.Objects.Factory /// /// If the objects could not be created. /// - IDictionary GetObjectsOfType(bool includePrototypes, bool includeFactoryObjects); + IDictionary GetObjects(bool includePrototypes, bool includeFactoryObjects); /// /// Return an instance (possibly shared or independent) of the given object name. diff --git a/src/Spring/Spring.Core/Objects/Factory/IObjectFactory.cs b/src/Spring/Spring.Core/Objects/Factory/IObjectFactory.cs index dbfaadae..aff582d0 100644 --- a/src/Spring/Spring.Core/Objects/Factory/IObjectFactory.cs +++ b/src/Spring/Spring.Core/Objects/Factory/IObjectFactory.cs @@ -21,6 +21,7 @@ #region Imports using System; +using System.Collections.Generic; #endregion @@ -209,21 +210,21 @@ namespace Spring.Objects.Factory /// True if an object with the given name is defined. bool ContainsObject(string name); - /// - /// Return the aliases for the given object name, if defined. - /// - /// - /// - /// Will ask the parent factory if the object cannot be found in this factory - /// instance. - /// - /// - /// The object name to check for aliases. - /// The aliases, or an empty array if none. - /// - /// If there's no such object definition. - /// - string[] GetAliases(string name); + /// + /// Return the aliases for the given object name, if defined. + /// + /// + /// + /// Will ask the parent factory if the object cannot be found in this factory + /// instance. + /// + /// + /// The object name to check for aliases. + /// The aliases, or an empty array if none. + /// + /// If there's no such object definition. + /// + IList GetAliases(string name); #if !MONO /// diff --git a/src/Spring/Spring.Core/Objects/Factory/ObjectFactoryUtils.cs b/src/Spring/Spring.Core/Objects/Factory/ObjectFactoryUtils.cs index c94455d9..eee5e85b 100644 --- a/src/Spring/Spring.Core/Objects/Factory/ObjectFactoryUtils.cs +++ b/src/Spring/Spring.Core/Objects/Factory/ObjectFactoryUtils.cs @@ -111,7 +111,7 @@ namespace Spring.Objects.Factory /// public static int CountObjectsIncludingAncestors(IListableObjectFactory factory) { - return ObjectNamesIncludingAncestors(factory).Length; + return ObjectNamesIncludingAncestors(factory).Count; } /// @@ -119,7 +119,7 @@ namespace Spring.Objects.Factory /// /// The object factory. /// The array of object names, or an empty array if none. - public static string[] ObjectNamesIncludingAncestors(IListableObjectFactory factory) + public static IList ObjectNamesIncludingAncestors(IListableObjectFactory factory) { return ObjectNamesForTypeIncludingAncestors(factory, typeof(object)); } @@ -159,7 +159,7 @@ namespace Spring.Objects.Factory /// /// The array of object names, or an empty array if none. /// - public static string[] ObjectNamesForTypeIncludingAncestors( + public static IList ObjectNamesForTypeIncludingAncestors( IListableObjectFactory factory, Type type, bool includePrototypes, bool includeFactoryObjects) { @@ -169,7 +169,7 @@ namespace Spring.Objects.Factory if (pof != null) { IHierarchicalObjectFactory hof = (IHierarchicalObjectFactory)factory; - string[] parentsResult = ObjectNamesForTypeIncludingAncestors(pof, type, includePrototypes, includeFactoryObjects); + IList parentsResult = ObjectNamesForTypeIncludingAncestors(pof, type, includePrototypes, includeFactoryObjects); foreach (string objectName in parentsResult) { if (!result.Contains(objectName) && !hof.ContainsLocalObject(objectName)) @@ -178,7 +178,7 @@ namespace Spring.Objects.Factory } } } - return result.ToArray(); + return result; } /// @@ -209,7 +209,7 @@ namespace Spring.Objects.Factory /// /// The array of object names, or an empty array if none. /// - public static string[] ObjectNamesForTypeIncludingAncestors( + public static IList ObjectNamesForTypeIncludingAncestors( IListableObjectFactory factory, Type type) { List result = new List(); @@ -218,7 +218,7 @@ namespace Spring.Objects.Factory if (pof != null) { IHierarchicalObjectFactory hof = (IHierarchicalObjectFactory)factory; - string[] parentsResult = ObjectNamesForTypeIncludingAncestors(pof, type); + IList parentsResult = ObjectNamesForTypeIncludingAncestors(pof, type); foreach (string objectName in parentsResult) { if (!result.Contains(objectName) && !hof.ContainsLocalObject(objectName)) @@ -227,7 +227,7 @@ namespace Spring.Objects.Factory } } } - return result.ToArray(); + return result; } /// diff --git a/src/Spring/Spring.Core/Objects/Factory/Support/AbstractAutowireCapableObjectFactory.cs b/src/Spring/Spring.Core/Objects/Factory/Support/AbstractAutowireCapableObjectFactory.cs index 25803c29..e7af9d00 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Support/AbstractAutowireCapableObjectFactory.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Support/AbstractAutowireCapableObjectFactory.cs @@ -349,15 +349,15 @@ namespace Spring.Objects.Factory.Support /// protected void ApplyPropertyValues(string name, RootObjectDefinition definition, IObjectWrapper wrapper, IPropertyValues properties) { - if (properties == null || properties.PropertyValues.Length == 0) + if (properties == null || properties.PropertyValues.Count == 0) { return; } ObjectDefinitionValueResolver valueResolver = CreateValueResolver(); MutablePropertyValues deepCopy = new MutablePropertyValues(properties); - PropertyValue[] copiedProperties = deepCopy.PropertyValues; - for (int i = 0; i < copiedProperties.Length; ++i) + IList copiedProperties = deepCopy.PropertyValues; + for (int i = 0; i < copiedProperties.Count; ++i) { PropertyValue copiedProperty = copiedProperties[i]; //(string name, RootObjectDefinition definition, string argumentName, object argumentValue) @@ -500,7 +500,7 @@ namespace Spring.Objects.Factory.Support if (wrapper == null) { - if (properties.PropertyValues.Length > 0) + if (properties.PropertyValues.Count > 0) { throw new ObjectCreationException(definition.ResourceDescription, name, "Cannot apply property values to null instance."); @@ -534,7 +534,7 @@ namespace Spring.Objects.Factory.Support if (hasInstAwareOpps || needsDepCheck) { - PropertyInfo[] filteredPropInfo = FilterPropertyInfoForDependencyCheck(wrapper); + IList filteredPropInfo = FilterPropertyInfoForDependencyCheck(wrapper); if (hasInstAwareOpps) { foreach (IObjectPostProcessor processor in ObjectPostProcessors) @@ -834,7 +834,7 @@ namespace Spring.Objects.Factory.Support protected internal override object InstantiateObject(string name, RootObjectDefinition definition, object[] arguments, bool allowEagerCaching, bool suppressConfigure) { // guarantee the initialization of objects that the current one depends on.. - if (definition.DependsOn != null && definition.DependsOn.Length > 0) + if (definition.DependsOn != null && definition.DependsOn.Count > 0) { foreach (string dependant in definition.DependsOn) { @@ -1155,7 +1155,7 @@ namespace Spring.Objects.Factory.Support return; } - PropertyInfo[] filteredPropInfo = FilterPropertyInfoForDependencyCheck(wrapper); + IList filteredPropInfo = FilterPropertyInfoForDependencyCheck(wrapper); if (HasInstantiationAwareBeanPostProcessors) { foreach (IObjectPostProcessor processor in ObjectPostProcessors) @@ -1177,12 +1177,12 @@ namespace Spring.Objects.Factory.Support CheckDependencies(name, definition, filteredPropInfo, properties); } - private void CheckDependencies(string name, IConfigurableObjectDefinition definition, PropertyInfo[] filteredPropInfo, IPropertyValues properties) + private void CheckDependencies(string name, IConfigurableObjectDefinition definition, IList filteredPropInfo, IPropertyValues properties) { DependencyCheckingMode dependencyCheck = definition.DependencyCheck; - PropertyInfo[] unsatisfiedDependencies = AutowireUtils.GetUnsatisfiedDependencies(filteredPropInfo, properties, dependencyCheck); + IList unsatisfiedDependencies = AutowireUtils.GetUnsatisfiedDependencies(filteredPropInfo, properties, dependencyCheck); - if (unsatisfiedDependencies.Length > 0) + if (unsatisfiedDependencies.Count > 0) { throw new UnsatisfiedDependencyException(definition.ResourceDescription, name, unsatisfiedDependencies[0].Name, "Set this property value or disable dependency checking for this object."); @@ -1195,11 +1195,11 @@ namespace Spring.Objects.Factory.Support /// /// The object wrapper the object was created with. /// The filtered PropertyInfos - private PropertyInfo[] FilterPropertyInfoForDependencyCheck(IObjectWrapper wrapper) + private IList FilterPropertyInfoForDependencyCheck(IObjectWrapper wrapper) { lock (filteredPropertyDescriptorsCache) { - PropertyInfo[] filtered; + IList filtered; if (!filteredPropertyDescriptorsCache.TryGetValue(wrapper.WrappedType, out filtered)) { @@ -1213,7 +1213,7 @@ namespace Spring.Objects.Factory.Support } } - filtered = list.ToArray(); + filtered = list; filteredPropertyDescriptorsCache.Add(wrapper.WrappedType, filtered); } return filtered; @@ -1461,7 +1461,7 @@ namespace Spring.Objects.Factory.Support /// private void DestroyDependantObjects(string name) { - string[] dependingObjects = GetDependingObjectNames(name); + IList dependingObjects = GetDependingObjectNames(name); foreach (string doName in dependingObjects) { DestroySingleton(doName); @@ -1769,7 +1769,7 @@ namespace Spring.Objects.Factory.Support /// /// In case of errors. /// - protected abstract string[] GetDependingObjectNames(string name); + protected abstract IList GetDependingObjectNames(string name); /// /// Injects dependencies into the supplied instance @@ -2080,7 +2080,7 @@ namespace Spring.Objects.Factory.Support /// /// Cache of filtered PropertyInfos: object Type -> PropertyInfo array /// - private IDictionary filteredPropertyDescriptorsCache = new Dictionary(); + private IDictionary> filteredPropertyDescriptorsCache = new Dictionary>(); /// /// Dependency interfaces to ignore on dependency check and autowire, as Set of diff --git a/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectDefinition.cs b/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectDefinition.cs index 6defe1cd..e12ba0ae 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectDefinition.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectDefinition.cs @@ -21,12 +21,11 @@ #region Imports using System; -using System.Collections; using System.Collections.Generic; using System.Globalization; using System.Reflection; using System.Text; -using Spring.Core; + using Spring.Core.TypeResolution; using Spring.Objects.Factory.Config; using Spring.Util; @@ -135,9 +134,8 @@ namespace Spring.Objects.Factory.Support InitMethodName = other.InitMethodName; DestroyMethodName = other.DestroyMethodName; - DependsOn = new string[other.DependsOn.Length]; IsAutowireCandidate = other.IsAutowireCandidate; - Array.Copy(other.DependsOn, DependsOn, other.DependsOn.Length); + DependsOn = new List(other.DependsOn); FactoryMethodName = other.FactoryMethodName; FactoryObjectName = other.FactoryObjectName; AutowireMode = other.AutowireMode; @@ -524,10 +522,10 @@ namespace Spring.Objects.Factory.Support /// preparation on startup. /// /// - public string[] DependsOn + public IList DependsOn { get { return dependsOn; } - set { dependsOn = value == null ? StringUtils.EmptyStrings : value; } + set { dependsOn = value ?? StringUtils.EmptyStrings; } } /// @@ -739,14 +737,14 @@ namespace Spring.Objects.Factory.Support { FactoryMethodName = other.FactoryMethodName; } - if (ArrayUtils.HasLength(other.DependsOn)) + if (other.DependsOn != null && other.DependsOn.Count > 0) { List deps = new List(other.DependsOn); - if (ArrayUtils.HasLength(DependsOn)) + if (DependsOn != null && DependsOn.Count > 0) { deps.AddRange(DependsOn); } - DependsOn = deps.ToArray(); + DependsOn = deps; } AutowireMode = other.AutowireMode; ResourceDescription = other.ResourceDescription; @@ -811,7 +809,7 @@ namespace Spring.Objects.Factory.Support private object objectType; private AutoWiringMode autowireMode = AutoWiringMode.No; private DependencyCheckingMode dependencyCheck = DependencyCheckingMode.None; - private string[] dependsOn; + private IList dependsOn; private bool autowireCandidate = true; private string initMethodName = null; private string destroyMethodName = null; diff --git a/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectFactory.cs b/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectFactory.cs index 7cd5c38b..446336bd 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectFactory.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectFactory.cs @@ -29,7 +29,6 @@ using System.ComponentModel; using Common.Logging; using Spring.Collections; -using Spring.Collections.Generic; using Spring.Core; using Spring.Core.TypeConversion; using Spring.Objects.Factory.Config; @@ -1211,7 +1210,7 @@ namespace Spring.Objects.Factory.Support /// The names of objects in the singleton cache that match the given /// object type (including subclasses), or an empty array if none. /// - public virtual string[] GetSingletonNames(Type type) + public virtual IList GetSingletonNames(Type type) { lock (singletonCache) { @@ -1225,7 +1224,7 @@ namespace Spring.Objects.Factory.Support matches.Add(name); } } - return matches.ToArray(); + return matches; } } @@ -1448,12 +1447,12 @@ namespace Spring.Objects.Factory.Support ///

/// /// The names of the objects in the singleton cache. - public virtual string[] GetSingletonNames() + public virtual IList GetSingletonNames() { lock (singletonCache) { IEnumerable keys = singletonCache.Keys.Cast(); - return new List(keys).ToArray(); + return new List(keys); } } @@ -1622,7 +1621,7 @@ namespace Spring.Objects.Factory.Support /// /// Set of registered singletons, containing the bean names in registration order /// - private ISet registeredSingletons = new HashedSet(); + private HashSet registeredSingletons = new HashSet(); private readonly IDictionary singletonsInCreation; @@ -1815,7 +1814,7 @@ namespace Spring.Objects.Factory.Support /// Return the aliases for the given object name, if defined. ///
/// . - public string[] GetAliases(string name) + public IList GetAliases(string name) { string objectName = TransformedObjectName(name); // check if object actually exists in this object factory... @@ -1834,7 +1833,7 @@ namespace Spring.Objects.Factory.Support } } } - return matches.ToArray(); + return matches; } // not found, so check parent... @@ -2534,7 +2533,7 @@ namespace Spring.Objects.Factory.Support /// /// /// - public string[] SingletonNames + public IList SingletonNames { get { diff --git a/src/Spring/Spring.Core/Objects/Factory/Support/AutowireUtils.cs b/src/Spring/Spring.Core/Objects/Factory/Support/AutowireUtils.cs index 9f8d4634..b68e6747 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Support/AutowireUtils.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Support/AutowireUtils.cs @@ -24,10 +24,10 @@ using System; using System.Collections; using System.Collections.Generic; using System.Reflection; + using Spring.Collections; using Spring.Core; using Spring.Objects.Factory.Config; -using Spring.Objects.Support; using Spring.Util; #endregion @@ -355,7 +355,7 @@ namespace Spring.Objects.Factory.Support /// Returns the list of that are not satisfied by . ///
/// the filtered list. Is never null - public static PropertyInfo[] GetUnsatisfiedDependencies(PropertyInfo[] propertyInfos, IPropertyValues properties, DependencyCheckingMode dependencyCheck) + public static IList GetUnsatisfiedDependencies(IList propertyInfos, IPropertyValues properties, DependencyCheckingMode dependencyCheck) { List unsatisfiedDependenciesList = new List(); foreach (PropertyInfo property in propertyInfos) @@ -371,7 +371,7 @@ namespace Spring.Objects.Factory.Support } } } - return unsatisfiedDependenciesList.ToArray(); + return unsatisfiedDependenciesList; } } } \ No newline at end of file diff --git a/src/Spring/Spring.Core/Objects/Factory/Support/ConstructorResolver.cs b/src/Spring/Spring.Core/Objects/Factory/Support/ConstructorResolver.cs index c862ce91..979f966e 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Support/ConstructorResolver.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Support/ConstructorResolver.cs @@ -31,6 +31,8 @@ using Spring.Core.TypeResolution; using Spring.Objects.Factory.Config; using Spring.Util; +using System.Linq; + namespace Spring.Objects.Factory.Support { /// @@ -307,12 +309,12 @@ namespace Spring.Objects.Factory.Support } GenericArgumentsHolder genericArgsInfo = new GenericArgumentsHolder(definition.FactoryMethodName); - MethodInfo[] factoryMethodCandidates = FindMethods(genericArgsInfo.GenericMethodName, expectedArgCount, isStatic, factoryClass); + IList factoryMethodCandidates = FindMethods(genericArgsInfo.GenericMethodName, expectedArgCount, isStatic, factoryClass); bool autowiring = (definition.AutowireMode == AutoWiringMode.Constructor); // try all matching methods to see if they match the constructor arguments... - for (int i = 0; i < factoryMethodCandidates.Length; i++) + for (int i = 0; i < factoryMethodCandidates.Count; i++) { MethodInfo factoryMethodCandidate = factoryMethodCandidates[i]; if (genericArgsInfo.ContainsGenericArguments) @@ -610,16 +612,14 @@ namespace Spring.Objects.Factory.Support /// methods exposed on the /// that match the supplied criteria. /// - private static MethodInfo[] FindMethods(string methodName, int expectedArgumentCount, bool isStatic, Type searchType) + private static IList FindMethods(string methodName, int expectedArgumentCount, bool isStatic, Type searchType) { ComposedCriteria methodCriteria = new ComposedCriteria(); methodCriteria.Add(new MethodNameMatchCriteria(methodName)); methodCriteria.Add(new MethodParametersCountCriteria(expectedArgumentCount)); BindingFlags methodFlags = BindingFlags.Public | BindingFlags.IgnoreCase | (isStatic ? BindingFlags.Static : BindingFlags.Instance); - MemberInfo[] methods = - searchType.FindMembers(MemberTypes.Method, methodFlags, new MemberFilter(new CriteriaMemberFilter().FilterMemberByCriteria), - methodCriteria); - return (MethodInfo[])ArrayList.Adapter(methods).ToArray(typeof(MethodInfo)); + MemberInfo[] methods = searchType.FindMembers(MemberTypes.Method, methodFlags, new CriteriaMemberFilter().FilterMemberByCriteria, methodCriteria); + return methods.Cast().ToArray(); } internal class ArgumentsHolder { diff --git a/src/Spring/Spring.Core/Objects/Factory/Support/DefaultListableObjectFactory.cs b/src/Spring/Spring.Core/Objects/Factory/Support/DefaultListableObjectFactory.cs index b30915d7..8092101f 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Support/DefaultListableObjectFactory.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Support/DefaultListableObjectFactory.cs @@ -217,16 +217,15 @@ namespace Spring.Objects.Factory.Support /// /// In case of errors. /// - protected override string[] GetDependingObjectNames(string objectName) + protected override IList GetDependingObjectNames(string objectName) { List dependingObjectNames = new List(); - string[] allObjectDefinitionNames = GetObjectDefinitionNames(); + IList allObjectDefinitionNames = GetObjectDefinitionNames(); foreach (string name in allObjectDefinitionNames) { if (ContainsObjectDefinition(name)) { - RootObjectDefinition rod - = GetMergedObjectDefinition(name, false); + RootObjectDefinition rod = GetMergedObjectDefinition(name, false); if (rod.DependsOn != null) { HashSet dependsOn = new HashSet(rod.DependsOn); @@ -249,7 +248,7 @@ namespace Spring.Objects.Factory.Support } } } - return dependingObjectNames.ToArray(); + return dependingObjectNames; } /// @@ -604,9 +603,9 @@ namespace Spring.Objects.Factory.Support /// are defined. /// /// - public string[] GetObjectDefinitionNames() + public IList GetObjectDefinitionNames() { - return objectDefinitionNames.ToArray(); + return objectDefinitionNames; } /// @@ -622,7 +621,7 @@ namespace Spring.Objects.Factory.Support /// are defined. /// /// - public string[] GetObjectDefinitionNames(Type type) + public IList GetObjectDefinitionNames(Type type) { List matches = new List(); foreach (string name in objectDefinitionNames) @@ -632,7 +631,7 @@ namespace Spring.Objects.Factory.Support matches.Add(name); } } - return matches.ToArray(); + return matches; } /// @@ -648,7 +647,7 @@ namespace Spring.Objects.Factory.Support /// are defined. /// /// - public string[] GetObjectNamesForType(Type type) + public IList GetObjectNamesForType(Type type) { return GetObjectNamesForType(type, true, true); } @@ -676,7 +675,7 @@ namespace Spring.Objects.Factory.Support /// The names of all objects defined in this factory, or an empty array if none /// are defined. /// - public string[] GetObjectNamesForType() + public IList GetObjectNames() { return GetObjectNamesForType(typeof (T)); } @@ -702,10 +701,10 @@ namespace Spring.Objects.Factory.Support /// are defined. /// /// - public string[] GetObjectNamesForType(Type type, bool includePrototypes, bool includeFactoryObjects) + public IList GetObjectNamesForType(Type type, bool includePrototypes, bool includeFactoryObjects) { List objectNames = DoGetObjectNamesForType(type, includePrototypes, includeFactoryObjects); - return objectNames.ToArray(); + return objectNames; } /// @@ -743,7 +742,7 @@ namespace Spring.Objects.Factory.Support /// The names of all objects defined in this factory, or an empty array if none /// are defined. /// - public string[] GetObjectNamesForType(bool includePrototypes, bool includeFactoryObjects) + public IList GetObjectNames(bool includePrototypes, bool includeFactoryObjects) { return GetObjectNamesForType(typeof (T), includePrototypes, includeFactoryObjects); } @@ -799,7 +798,7 @@ namespace Spring.Objects.Factory.Support /// /// If the objects could not be created. /// - public IDictionary GetObjectsOfType() + public IDictionary GetObjects() { Dictionary result = new Dictionary(); DoGetObjectsOfType(typeof (T), true, true, result); @@ -896,7 +895,7 @@ namespace Spring.Objects.Factory.Support /// /// If the objects could not be created. /// - public IDictionary GetObjectsOfType(bool includePrototypes, bool includeFactoryObjects) + public IDictionary GetObjects(bool includePrototypes, bool includeFactoryObjects) { Dictionary result = new Dictionary(); DoGetObjectsOfType(typeof (T), includePrototypes, includeFactoryObjects, result); @@ -934,13 +933,13 @@ namespace Spring.Objects.Factory.Support /// public T GetObject() { - string[] objectNamesForType = GetObjectNamesForType(typeof(T)); - if ((objectNamesForType == null) || (objectNamesForType.Length == 0)) + IList objectNamesForType = GetObjectNamesForType(typeof(T)); + if ((objectNamesForType == null) || (objectNamesForType.Count == 0)) { throw new NoSuchObjectDefinitionException(typeof(T).FullName, "Requested Type not Defined in the Context."); } - if (objectNamesForType.Length > 1) + if (objectNamesForType.Count > 1) { throw new ObjectDefinitionStoreException(string.Format("More than one definition for {0} found in the Context.", typeof(T).FullName)); } @@ -975,7 +974,7 @@ namespace Spring.Objects.Factory.Support protected List DoGetObjectNamesForType(Type type, bool includeNonSingletons, bool allowEagerInit) { List result = new List(); - string[] objectNames = GetObjectDefinitionNames(); + IList objectNames = GetObjectDefinitionNames(); foreach (string s in objectNames) { string objectName = s; @@ -1033,7 +1032,7 @@ namespace Spring.Objects.Factory.Support } // check singletons too, to catch manually registered singletons... - string[] singletonNames = GetSingletonNames(); + IList singletonNames = GetSingletonNames(); foreach (string s in singletonNames) { string objectName = s; @@ -1170,9 +1169,9 @@ namespace Spring.Objects.Factory.Support private IDictionary FindAutowireCandidates(string objectName, Type requiredType, DependencyDescriptor descriptor) { - string[] candidateNames = + IList candidateNames = ObjectFactoryUtils.ObjectNamesForTypeIncludingAncestors(this, requiredType, true, descriptor.Eager); - IDictionary result = new OrderedDictionary(candidateNames.Length); + IDictionary result = new OrderedDictionary(candidateNames.Count); foreach (DictionaryEntry entry in resolvableDependencies) { @@ -1187,7 +1186,7 @@ namespace Spring.Objects.Factory.Support } } } - for (int i = 0; i < candidateNames.Length; i++) + for (int i = 0; i < candidateNames.Count; i++) { string candidateName = candidateNames[i]; if (!candidateName.Equals(objectName) && IsAutowireCandidate(candidateName, descriptor)) diff --git a/src/Spring/Spring.Core/Objects/Factory/Support/IConfigurableObjectDefinition.cs b/src/Spring/Spring.Core/Objects/Factory/Support/IConfigurableObjectDefinition.cs index 008684c2..35429241 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Support/IConfigurableObjectDefinition.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Support/IConfigurableObjectDefinition.cs @@ -21,6 +21,8 @@ #region Imports using System; +using System.Collections.Generic; + using Spring.Objects.Factory.Config; #endregion @@ -159,7 +161,7 @@ namespace Spring.Objects.Factory.Support /// preparation on startup. ///

/// - new string[] DependsOn { get; set; } + new IList DependsOn { get; set; } /// /// The name of the initializer method. diff --git a/src/Spring/Spring.Core/Objects/Factory/Support/IObjectDefinitionRegistry.cs b/src/Spring/Spring.Core/Objects/Factory/Support/IObjectDefinitionRegistry.cs index e80a6de7..25ca92cc 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Support/IObjectDefinitionRegistry.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Support/IObjectDefinitionRegistry.cs @@ -20,6 +20,8 @@ #region Imports +using System.Collections.Generic; + using Spring.Objects.Factory; using Spring.Objects.Factory.Config; @@ -69,7 +71,7 @@ namespace Spring.Objects.Factory.Support /// The names of all objects defined in this registry, or an empty array /// if none defined /// - string [] GetObjectDefinitionNames (); + IList GetObjectDefinitionNames (); /// /// Check if this registry contains a object definition with the given name. @@ -126,25 +128,25 @@ namespace Spring.Objects.Factory.Support /// If the object definition is invalid. /// void RegisterObjectDefinition (string name, IObjectDefinition definition); - - /// - /// Return the aliases for the given object name, if defined. - /// - /// the object name to check for aliases - /// - /// - ///

- /// Will ask the parent factory if the object cannot be found in this - /// factory instance. - ///

- ///
- /// - /// The aliases, or an empty array if none. - /// - /// - /// If there's no such object definition. - /// - string [] GetAliases (string name); + + /// + /// Return the aliases for the given object name, if defined. + /// + /// the object name to check for aliases + /// + /// + ///

+ /// Will ask the parent factory if the object cannot be found in this + /// factory instance. + ///

+ ///
+ /// + /// The aliases, or an empty array if none. + /// + /// + /// If there's no such object definition. + /// + IList GetAliases (string name); /// /// Given a object name, create an alias. We typically use this method to diff --git a/src/Spring/Spring.Core/Objects/Factory/Support/ObjectDefinitionBuilder.cs b/src/Spring/Spring.Core/Objects/Factory/Support/ObjectDefinitionBuilder.cs index e3a9a068..49e80bae 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Support/ObjectDefinitionBuilder.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Support/ObjectDefinitionBuilder.cs @@ -397,7 +397,7 @@ namespace Spring.Objects.Factory.Support List arrayList = new List(); arrayList.AddRange(objectDefinition.DependsOn); arrayList.AddRange(new string[]{ objectName}); - objectDefinition.DependsOn = arrayList.ToArray(); + objectDefinition.DependsOn = arrayList; } return this; } diff --git a/src/Spring/Spring.Core/Objects/Factory/Support/ObjectDefinitionReaderUtils.cs b/src/Spring/Spring.Core/Objects/Factory/Support/ObjectDefinitionReaderUtils.cs index 878cb901..613e33b4 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Support/ObjectDefinitionReaderUtils.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Support/ObjectDefinitionReaderUtils.cs @@ -21,9 +21,9 @@ #region Imports using System; -using System.Text; +using System.Collections.Generic; using System.Text.RegularExpressions; -using Spring.Objects.Factory; + using Spring.Objects.Factory.Config; using Spring.Objects.Factory.Xml; using Spring.Objects.Support; @@ -96,8 +96,8 @@ namespace Spring.Objects.Factory.Support AssertUtils.ArgumentNotNull(registry, "registry"); registry.RegisterObjectDefinition(objectDefinition.ObjectName, objectDefinition.ObjectDefinition); - string[] aliases = objectDefinition.Aliases; - for (int i = 0; i < aliases.Length; ++i) + IList aliases = objectDefinition.Aliases; + for (int i = 0; i < aliases.Count; ++i) { string alias = aliases[i]; registry.RegisterAlias(objectDefinition.ObjectName, alias); diff --git a/src/Spring/Spring.Core/Objects/Factory/Support/StaticListableObjectFactory.cs b/src/Spring/Spring.Core/Objects/Factory/Support/StaticListableObjectFactory.cs index 03244397..445fbd52 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Support/StaticListableObjectFactory.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Support/StaticListableObjectFactory.cs @@ -498,7 +498,7 @@ namespace Spring.Objects.Factory.Support /// /// If there's no such object definition. /// - public string[] GetAliases(string name) + public IList GetAliases(string name) { return StringUtils.EmptyStrings; } @@ -551,10 +551,10 @@ namespace Spring.Objects.Factory.Support /// The names of all objects defined in this factory, or an empty array if none /// are defined. /// - public string[] GetObjectDefinitionNames() + public IList GetObjectDefinitionNames() { List names = new List(objects.Keys); - return names.ToArray(); + return names; } /// @@ -575,7 +575,7 @@ namespace Spring.Objects.Factory.Support /// The names of all objects defined in this factory, or an empty array if none /// are defined. /// - public string[] GetObjectDefinitionNames(Type type) + public IList GetObjectDefinitionNames(Type type) { List matches = new List(); foreach (string name in objects.Keys) @@ -586,7 +586,7 @@ namespace Spring.Objects.Factory.Support matches.Add(name); } } - return matches.ToArray(); + return matches; } /// @@ -612,7 +612,7 @@ namespace Spring.Objects.Factory.Support /// The names of all objects defined in this factory, or an empty array if none /// are defined. /// - public string[] GetObjectNamesForType(Type type) + public IList GetObjectNamesForType(Type type) { return GetObjectNamesForType(type, true, true); } @@ -640,7 +640,7 @@ namespace Spring.Objects.Factory.Support /// The names of all objects defined in this factory, or an empty array if none /// are defined. /// - public string[] GetObjectNamesForType() + public IList GetObjectNames() { return GetObjectNamesForType(typeof(T)); } @@ -674,8 +674,7 @@ namespace Spring.Objects.Factory.Support /// are defined. /// /// - public string[] GetObjectNamesForType( - Type type, bool includePrototypes, bool includeFactoryObjects) + public IList GetObjectNamesForType(Type type, bool includePrototypes, bool includeFactoryObjects) { bool isFactoryType = (type != null && typeof(IFactoryObject).IsAssignableFrom(type)); List matches = new List(); @@ -701,7 +700,7 @@ namespace Spring.Objects.Factory.Support } } } - return matches.ToArray(); + return matches; } /// @@ -739,7 +738,7 @@ namespace Spring.Objects.Factory.Support /// The names of all objects defined in this factory, or an empty array if none /// are defined. /// - public string[] GetObjectNamesForType(bool includePrototypes, bool includeFactoryObjects) + public IList GetObjectNames(bool includePrototypes, bool includeFactoryObjects) { return GetObjectNamesForType(typeof(T), includePrototypes, includeFactoryObjects); } @@ -816,7 +815,7 @@ namespace Spring.Objects.Factory.Support /// /// If the objects could not be created. /// - public IDictionary GetObjectsOfType() + public IDictionary GetObjects() { Dictionary collector = new Dictionary(); DoGetObjectsOfType(typeof(T), true, true, collector); @@ -917,7 +916,7 @@ namespace Spring.Objects.Factory.Support /// /// If the objects could not be created. /// - public IDictionary GetObjectsOfType(bool includePrototypes, bool includeFactoryObjects) + public IDictionary GetObjects(bool includePrototypes, bool includeFactoryObjects) { Dictionary collector = new Dictionary(); DoGetObjectsOfType(typeof(T), includeFactoryObjects, includePrototypes, collector); @@ -955,13 +954,13 @@ namespace Spring.Objects.Factory.Support /// public T GetObject() { - string[] objectNamesForType = GetObjectNamesForType(typeof(T)); - if ((objectNamesForType == null) || (objectNamesForType.Length == 0)) + IList objectNamesForType = GetObjectNamesForType(typeof(T)); + if ((objectNamesForType == null) || (objectNamesForType.Count == 0)) { throw new NoSuchObjectDefinitionException(typeof(T).FullName, "Requested Type not Defined in the Context."); } - if (objectNamesForType.Length > 1) + if (objectNamesForType.Count > 1) { throw new ObjectDefinitionStoreException(string.Format("More than one definition for {0} found in the Context.", typeof(T).FullName)); } diff --git a/src/Spring/Spring.Core/Objects/Factory/Xml/ObjectDefinitionParserHelper.cs b/src/Spring/Spring.Core/Objects/Factory/Xml/ObjectDefinitionParserHelper.cs index b8fb31bc..d4a64c38 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Xml/ObjectDefinitionParserHelper.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Xml/ObjectDefinitionParserHelper.cs @@ -322,8 +322,8 @@ namespace Spring.Objects.Factory.Xml #endregion } - string[] aliasesArray = aliases.ToArray(); - return CreateObjectDefinitionHolder(element, definition, objectName, aliasesArray); + + return CreateObjectDefinitionHolder(element, definition, objectName, aliases); } return null; } @@ -334,9 +334,9 @@ namespace Spring.Objects.Factory.Xml /// /// This method may be used as a last resort to post-process an object definition before it gets added to the registry. /// - protected virtual ObjectDefinitionHolder CreateObjectDefinitionHolder(XmlElement element, IConfigurableObjectDefinition definition, string objectName, string[] aliasesArray) + protected virtual ObjectDefinitionHolder CreateObjectDefinitionHolder(XmlElement element, IConfigurableObjectDefinition definition, string objectName, IList aliases) { - return new ObjectDefinitionHolder(definition, objectName, aliasesArray); + return new ObjectDefinitionHolder(definition, objectName, aliases); } /// diff --git a/src/Spring/Spring.Core/Objects/Factory/Xml/ObjectsNamespaceParser.cs b/src/Spring/Spring.Core/Objects/Factory/Xml/ObjectsNamespaceParser.cs index f4644ebd..4f2a34a8 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Xml/ObjectsNamespaceParser.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Xml/ObjectsNamespaceParser.cs @@ -26,13 +26,11 @@ using System.Collections.Generic; using System.Collections.Specialized; using System.Globalization; using System.IO; -using System.Text; using System.Xml; -using System.Xml.Schema; + using Common.Logging; using Spring.Collections; -using Spring.Core; using Spring.Core.IO; using Spring.Core.TypeResolution; using Spring.Objects.Factory.Config; diff --git a/src/Spring/Spring.Core/Objects/IPropertyValues.cs b/src/Spring/Spring.Core/Objects/IPropertyValues.cs index 34416d06..f9876ac3 100644 --- a/src/Spring/Spring.Core/Objects/IPropertyValues.cs +++ b/src/Spring/Spring.Core/Objects/IPropertyValues.cs @@ -21,6 +21,7 @@ #region Imports using System.Collections; +using System.Collections.Generic; #endregion @@ -41,7 +42,7 @@ namespace Spring.Objects /// An array of the objects held /// in this object. /// - PropertyValue [] PropertyValues + IList PropertyValues { get; } diff --git a/src/Spring/Spring.Core/Objects/MutablePropertyValues.cs b/src/Spring/Spring.Core/Objects/MutablePropertyValues.cs index e8833b7d..4583bd74 100644 --- a/src/Spring/Spring.Core/Objects/MutablePropertyValues.cs +++ b/src/Spring/Spring.Core/Objects/MutablePropertyValues.cs @@ -70,8 +70,8 @@ namespace Spring.Objects /// s can be added with the various /// overloaded , /// , - /// , - /// and + /// , + /// and /// methods. ///

/// @@ -96,7 +96,7 @@ namespace Spring.Objects { if (other != null) { - AddAll (other.PropertyValues); + AddAll(other.PropertyValues); } } @@ -108,7 +108,7 @@ namespace Spring.Objects /// The with property values /// keyed by property name, which must be a . /// - public MutablePropertyValues (IDictionary map) + public MutablePropertyValues (IDictionary map) { AddAll (map); } @@ -120,9 +120,9 @@ namespace Spring.Objects /// /// Property to retrieve the array of property values. /// - public PropertyValue[] PropertyValues + public IList PropertyValues { - get { return propertyValuesList.ToArray(); } + get { return propertyValuesList; } } #endregion @@ -154,7 +154,7 @@ namespace Spring.Objects { for (int i = 0; i < propertyValuesList.Count; ++i) { - PropertyValue currentPv = (PropertyValue) propertyValuesList [i]; + PropertyValue currentPv = propertyValuesList [i]; if (currentPv.Name.Equals (pv.Name)) { pv = MergeIfRequired(pv, currentPv); @@ -196,13 +196,13 @@ namespace Spring.Objects /// The map of property values, the keys of which must be /// s. /// - public void AddAll (IDictionary map) + public void AddAll (IDictionary map) { if (map != null) { - foreach (string key in map.Keys) + foreach (KeyValuePair pair in map) { - Add (new PropertyValue (key, map [key])); + Add (new PropertyValue (pair.Key, pair.Value)); } } } @@ -214,7 +214,7 @@ namespace Spring.Objects /// /// The list of s to be added. /// - public void AddAll (IList values) + public void AddAll(IList values) { if (values != null) { @@ -357,10 +357,10 @@ namespace Spring.Objects /// public override string ToString () { - PropertyValue[] pvs = PropertyValues; + IList pvs = PropertyValues; StringBuilder sb = new StringBuilder ( - "MutablePropertyValues: length=").Append (pvs.Length).Append ("; "); + "MutablePropertyValues: length=").Append (pvs.Count).Append ("; "); sb.Append (StringUtils.ArrayToDelimitedString (pvs, ",")); return sb.ToString (); } diff --git a/src/Spring/Spring.Core/Objects/PropertyAccessExceptionsException.cs b/src/Spring/Spring.Core/Objects/PropertyAccessExceptionsException.cs index 817e6d28..3a167f59 100644 --- a/src/Spring/Spring.Core/Objects/PropertyAccessExceptionsException.cs +++ b/src/Spring/Spring.Core/Objects/PropertyAccessExceptionsException.cs @@ -102,10 +102,7 @@ namespace Spring.Objects : base(string.Empty) { _objectWrapper = objectWrapper; - _propertyAccessExceptions - = propertyAccessExceptions == null ? - EmptyPropertyAccessExceptions : - propertyAccessExceptions; + _propertyAccessExceptions = propertyAccessExceptions ?? EmptyPropertyAccessExceptions; } /// diff --git a/src/Spring/Spring.Core/Proxy/AbstractProxyTypeBuilder.cs b/src/Spring/Spring.Core/Proxy/AbstractProxyTypeBuilder.cs index 93f8b50d..ea861e29 100644 --- a/src/Spring/Spring.Core/Proxy/AbstractProxyTypeBuilder.cs +++ b/src/Spring/Spring.Core/Proxy/AbstractProxyTypeBuilder.cs @@ -62,7 +62,7 @@ namespace Spring.Proxy private string _name; private Type _targetType; private Type _baseType = typeof (object); - private Type[] _interfaces; + private IList _interfaces; private bool _proxyTargetAttributes = true; private IList _typeAttributes = new ArrayList(); private IDictionary _memberAttributes = new Hashtable(); @@ -126,7 +126,7 @@ namespace Spring.Proxy /// The default value of this property is all the interfaces /// implemented or inherited by the target type. /// - public Type[] Interfaces + public IList Interfaces { get { @@ -873,22 +873,22 @@ namespace Spring.Proxy #endregion - /// - /// Returns an array of s that represent - /// the proxiable interfaces. - /// - /// - /// An interface is proxiable if it's not marked with the - /// . - /// - /// - /// The array of interfaces from which - /// we want to get the proxiable interfaces. - /// - /// - /// An array containing the interface s. - /// - protected virtual Type[] GetProxiableInterfaces(Type[] interfaces) + /// + /// Returns an array of s that represent + /// the proxiable interfaces. + /// + /// + /// An interface is proxiable if it's not marked with the + /// . + /// + /// + /// The array of interfaces from which + /// we want to get the proxiable interfaces. + /// + /// + /// An array containing the interface s. + /// + protected virtual IList GetProxiableInterfaces(IList interfaces) { List proxiableInterfaces = new List(); @@ -914,7 +914,7 @@ namespace Spring.Proxy } } - return proxiableInterfaces.ToArray(); + return proxiableInterfaces; } /// diff --git a/src/Spring/Spring.Core/Proxy/CompositionProxyTypeBuilder.cs b/src/Spring/Spring.Core/Proxy/CompositionProxyTypeBuilder.cs index 9a0059ff..8e9ad773 100644 --- a/src/Spring/Spring.Core/Proxy/CompositionProxyTypeBuilder.cs +++ b/src/Spring/Spring.Core/Proxy/CompositionProxyTypeBuilder.cs @@ -102,7 +102,7 @@ namespace Spring.Proxy /// public override Type BuildProxyType() { - if (Interfaces == null || Interfaces.Length == 0) + if (Interfaces == null || Interfaces.Count == 0) { throw new ArgumentException( "Composition proxy target must implement at least one interface."); diff --git a/src/Spring/Spring.Core/Proxy/IProxyTypeBuilder.cs b/src/Spring/Spring.Core/Proxy/IProxyTypeBuilder.cs index f2cf8e2b..a88e8e6e 100644 --- a/src/Spring/Spring.Core/Proxy/IProxyTypeBuilder.cs +++ b/src/Spring/Spring.Core/Proxy/IProxyTypeBuilder.cs @@ -22,6 +22,7 @@ using System; using System.Collections; +using System.Collections.Generic; #endregion @@ -60,7 +61,7 @@ namespace Spring.Proxy /// /// Gets or sets the list of interfaces proxy should implement. /// - Type[] Interfaces { get; set; } + IList Interfaces { get; set; } /// /// Should we proxy target attributes? diff --git a/src/Spring/Spring.Core/Util/EventUtils.cs b/src/Spring/Spring.Core/Util/EventUtils.cs index a3a71d6c..6d897724 100644 --- a/src/Spring/Spring.Core/Util/EventUtils.cs +++ b/src/Spring/Spring.Core/Util/EventUtils.cs @@ -47,14 +47,14 @@ namespace Spring.Util get { return _eventExceptions.Count > 0; } } - public Delegate[] Sources + public IList Sources { - get { return new List(_eventExceptions.Keys).ToArray(); } + get { return new List(_eventExceptions.Keys); } } - public Exception[] Exceptions + public IList Exceptions { - get { return new List(_eventExceptions.Values).ToArray(); } + get { return new List(_eventExceptions.Values); } } public Exception this[Delegate source] diff --git a/src/Spring/Spring.Core/Util/IEventExceptionsCollector.cs b/src/Spring/Spring.Core/Util/IEventExceptionsCollector.cs index bf6cc365..710f1cf6 100644 --- a/src/Spring/Spring.Core/Util/IEventExceptionsCollector.cs +++ b/src/Spring/Spring.Core/Util/IEventExceptionsCollector.cs @@ -1,12 +1,13 @@ using System; +using System.Collections.Generic; namespace Spring.Util { public interface IEventExceptionsCollector { bool HasExceptions { get; } - Delegate[] Sources { get;} - Exception[] Exceptions { get; } + IList Sources { get;} + IList Exceptions { get; } Exception this[Delegate source] { get; } } } \ No newline at end of file diff --git a/src/Spring/Spring.Core/Util/ReflectionUtils.cs b/src/Spring/Spring.Core/Util/ReflectionUtils.cs index 625b59a3..a10f64bd 100644 --- a/src/Spring/Spring.Core/Util/ReflectionUtils.cs +++ b/src/Spring/Spring.Core/Util/ReflectionUtils.cs @@ -386,7 +386,7 @@ namespace Spring.Util /// /// If more than 1 matching methods are found in the list. /// - public static MethodInfo GetMethodByArgumentValues(MethodInfo[] methods, object[] argValues) + public static MethodInfo GetMethodByArgumentValues(IEnumerable methods, object[] argValues) where T : MethodBase { return (MethodInfo)GetMethodBaseByArgumentValues("method", methods, argValues); } @@ -401,8 +401,7 @@ namespace Spring.Util /// /// If more than 1 matching methods are found in the list. /// - private static MethodBase GetMethodBaseByArgumentValues(string methodTypeName, MethodBase[] methods, - object[] argValues) + private static MethodBase GetMethodBaseByArgumentValues(string methodTypeName, IEnumerable methods, object[] argValues) where T : MethodBase { MethodBase match = null; int matchCount = 0; @@ -490,7 +489,7 @@ namespace Spring.Util /// /// If more than 1 matching methods are found in the list. /// - public static ConstructorInfo GetConstructorByArgumentValues(ConstructorInfo[] methods, object[] argValues) + public static ConstructorInfo GetConstructorByArgumentValues(IList methods, object[] argValues) where T : MethodBase { return (ConstructorInfo)GetMethodBaseByArgumentValues("constructor", methods, argValues); } @@ -540,7 +539,7 @@ namespace Spring.Util /// /// If is . /// - public static Type[] ToInterfaceArray(Type intf) + public static IList ToInterfaceArray(Type intf) { AssertUtils.ArgumentNotNull(intf, "intf"); @@ -555,7 +554,7 @@ namespace Spring.Util List interfaces = new List(intf.GetInterfaces()); interfaces.Add(intf); - return interfaces.ToArray(); + return interfaces; } /// diff --git a/src/Spring/Spring.Core/Util/StringUtils.cs b/src/Spring/Spring.Core/Util/StringUtils.cs index a0791ec4..a37c72a9 100644 --- a/src/Spring/Spring.Core/Util/StringUtils.cs +++ b/src/Spring/Spring.Core/Util/StringUtils.cs @@ -325,8 +325,8 @@ namespace Spring.Util /// The delimiter to use (probably a ','). /// /// The delimited string representation. - public static string CollectionToDelimitedString( - ICollection c, string delimiter) + public static string CollectionToDelimitedString( + IEnumerable c, string delimiter) { if (c == null) { @@ -354,8 +354,7 @@ namespace Spring.Util /// The to display. /// /// The delimited string representation. - public static string CollectionToCommaDelimitedString( - ICollection collection) + public static string CollectionToCommaDelimitedString(IEnumerable collection) { return CollectionToDelimitedString(collection, ","); } @@ -369,7 +368,7 @@ namespace Spring.Util /// will be called on each /// element). /// - public static string ArrayToCommaDelimitedString(object[] source) + public static string ArrayToCommaDelimitedString(IEnumerable source) { return ArrayToDelimitedString(source, ","); } @@ -386,8 +385,7 @@ namespace Spring.Util /// /// The delimiter to use (probably a ','). /// - public static string ArrayToDelimitedString( - object[] source, string delimiter) + public static string ArrayToDelimitedString(IEnumerable source, string delimiter) { if (source == null) { diff --git a/src/Spring/Spring.Data.NHibernate/Data/NHibernate/Bytecode/ObjectsFactory.cs b/src/Spring/Spring.Data.NHibernate/Data/NHibernate/Bytecode/ObjectsFactory.cs index 209a8a95..21c44914 100644 --- a/src/Spring/Spring.Data.NHibernate/Data/NHibernate/Bytecode/ObjectsFactory.cs +++ b/src/Spring/Spring.Data.NHibernate/Data/NHibernate/Bytecode/ObjectsFactory.cs @@ -21,6 +21,7 @@ #region Imports using System; +using System.Collections.Generic; using NHibernate.Bytecode; @@ -53,8 +54,8 @@ namespace Spring.Data.NHibernate.Bytecode /// A reference to the created object. public object CreateInstance(Type type) { - string[] namesForType = listableObjectFactory.GetObjectNamesForType(type); - return namesForType.Length > 0 ? listableObjectFactory.GetObject(namesForType[0], type) : Activator.CreateInstance(type); + IList namesForType = listableObjectFactory.GetObjectNamesForType(type); + return namesForType.Count > 0 ? listableObjectFactory.GetObject(namesForType[0], type) : Activator.CreateInstance(type); } /// @@ -64,8 +65,8 @@ namespace Spring.Data.NHibernate.Bytecode /// A reference to the created object public object CreateInstance(Type type, bool nonPublic) { - string[] namesForType = listableObjectFactory.GetObjectNamesForType(type); - return namesForType.Length > 0 ? listableObjectFactory.GetObject(namesForType[0], type) : Activator.CreateInstance(type); + IList namesForType = listableObjectFactory.GetObjectNamesForType(type); + return namesForType.Count > 0 ? listableObjectFactory.GetObject(namesForType[0], type) : Activator.CreateInstance(type); } /// diff --git a/src/Spring/Spring.Data.NHibernate/Data/NHibernate/Bytecode/ReflectionOptimizer.cs b/src/Spring/Spring.Data.NHibernate/Data/NHibernate/Bytecode/ReflectionOptimizer.cs index eb4c93e3..e8f48e86 100644 --- a/src/Spring/Spring.Data.NHibernate/Data/NHibernate/Bytecode/ReflectionOptimizer.cs +++ b/src/Spring/Spring.Data.NHibernate/Data/NHibernate/Bytecode/ReflectionOptimizer.cs @@ -21,6 +21,7 @@ #region Imports using System; +using System.Collections.Generic; using NHibernate.Properties; @@ -57,8 +58,8 @@ namespace Spring.Data.NHibernate.Bytecode /// The new instance. public override object CreateInstance() { - string[] namesForType = listableObjectFactory.GetObjectNamesForType(mappedType); - if (namesForType.Length > 0) + IList namesForType = listableObjectFactory.GetObjectNamesForType(mappedType); + if (namesForType.Count > 0) { return listableObjectFactory.GetObject(namesForType[0], mappedType); } diff --git a/src/Spring/Spring.Data.NHibernate/Data/NHibernate/LocalSessionFactoryObject.cs b/src/Spring/Spring.Data.NHibernate/Data/NHibernate/LocalSessionFactoryObject.cs index 00db9298..c87dfa35 100644 --- a/src/Spring/Spring.Data.NHibernate/Data/NHibernate/LocalSessionFactoryObject.cs +++ b/src/Spring/Spring.Data.NHibernate/Data/NHibernate/LocalSessionFactoryObject.cs @@ -610,7 +610,7 @@ namespace Spring.Data.NHibernate // Register cache strategies for mapped entities. foreach (string className in this.entityCacheStrategies.Keys) { - String[] strategyAndRegion = StringUtils.CommaDelimitedListToStringArray(this.entityCacheStrategies.GetProperty(className)); + string[] strategyAndRegion = StringUtils.CommaDelimitedListToStringArray(this.entityCacheStrategies.GetProperty(className)); if (strategyAndRegion.Length > 1) { config.SetCacheConcurrencyStrategy(className, strategyAndRegion[0], strategyAndRegion[1]); diff --git a/src/Spring/Spring.Data.NHibernate/Data/NHibernate/SessionFactoryUtils.cs b/src/Spring/Spring.Data.NHibernate/Data/NHibernate/SessionFactoryUtils.cs index f160a3b5..0b8b1dcd 100644 --- a/src/Spring/Spring.Data.NHibernate/Data/NHibernate/SessionFactoryUtils.cs +++ b/src/Spring/Spring.Data.NHibernate/Data/NHibernate/SessionFactoryUtils.cs @@ -22,6 +22,8 @@ using System; using System.Collections; +using System.Collections.Generic; + using Common.Logging; using NHibernate; using NHibernate.Connection; @@ -695,7 +697,7 @@ namespace Spring.Data.NHibernate { Type hibCommandType = db.CreateCommand().GetType(); - string[] providerNames = ctx.GetObjectNamesForType(typeof(DbProvider), true, false); + IList providerNames = ctx.GetObjectNamesForType(typeof(DbProvider), true, false); string hibCommandAQN = hibCommandType.AssemblyQualifiedName; foreach (string providerName in providerNames) { diff --git a/src/Spring/Spring.Data/Data/Common/DbProviderFactory.cs b/src/Spring/Spring.Data/Data/Common/DbProviderFactory.cs index 699599ef..cf94a94f 100644 --- a/src/Spring/Spring.Data/Data/Common/DbProviderFactory.cs +++ b/src/Spring/Spring.Data/Data/Common/DbProviderFactory.cs @@ -19,6 +19,8 @@ #endregion using System; +using System.Collections.Generic; + using Common.Logging; using Spring.Context; using Spring.Context.Support; @@ -143,10 +145,10 @@ namespace Spring.Data.Common ctx = new XmlApplicationContext(DBPROVIDER_CONTEXTNAME, true, new string[] { DBPROVIDER_DEFAULT_RESOURCE_NAME }); } - string[] dbProviderNames = ctx.GetObjectNamesForType(typeof(IDbProvider)); + IList dbProviderNames = ctx.GetObjectNames(); if (log.IsInfoEnabled) { - log.Info(String.Format("{0} DbProviders Available. [{1}]", dbProviderNames.Length, StringUtils.ArrayToCommaDelimitedString(dbProviderNames))); + log.Info(String.Format("{0} DbProviders Available. [{1}]", dbProviderNames.Count, StringUtils.CollectionToCommaDelimitedString(dbProviderNames))); } } catch (Exception e) diff --git a/src/Spring/Spring.Data/Data/Core/AdoTemplate.cs b/src/Spring/Spring.Data/Data/Core/AdoTemplate.cs index 8f1f81be..41433802 100644 --- a/src/Spring/Spring.Data/Data/Core/AdoTemplate.cs +++ b/src/Spring/Spring.Data/Data/Core/AdoTemplate.cs @@ -167,8 +167,7 @@ namespace Spring.Data.Core { throw new ArgumentException("DataReaderWrapper type must implement IDataReaderWrapper. Implemented interfaces on " + value.GetType().Name + "are [" + - StringUtils.ArrayToCommaDelimitedString( - ReflectionUtils.ToInterfaceArray(value)) + "]"); + StringUtils.CollectionToCommaDelimitedString(ReflectionUtils.ToInterfaceArray(value)) + "]"); } } diff --git a/src/Spring/Spring.Data/Transaction/Interceptor/TransactionProxyFactoryObject.cs b/src/Spring/Spring.Data/Transaction/Interceptor/TransactionProxyFactoryObject.cs index 703e893c..c4eaafab 100644 --- a/src/Spring/Spring.Data/Transaction/Interceptor/TransactionProxyFactoryObject.cs +++ b/src/Spring/Spring.Data/Transaction/Interceptor/TransactionProxyFactoryObject.cs @@ -21,6 +21,7 @@ #region Imports using System; +using System.Collections.Generic; using System.Collections.Specialized; using Spring.Aop; @@ -71,7 +72,7 @@ namespace Spring.Transaction.Interceptor { private TransactionInterceptor _transactionInterceptor; private object _target; - private Type[] _proxyInterfaces; + private IList _proxyInterfaces; private TruePointcut _pointcut; private object[] _preInterceptors; private object[] _postInterceptors; diff --git a/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Connections/ChainedExceptionListener.cs b/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Connections/ChainedExceptionListener.cs index 52229572..99a8ce2a 100644 --- a/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Connections/ChainedExceptionListener.cs +++ b/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Connections/ChainedExceptionListener.cs @@ -63,9 +63,9 @@ namespace Spring.Messaging.Nms.Connections /// Gets the exception listeners as an array. /// /// The exception listeners. - public IExceptionListener[] Listeners + public IList Listeners { - get { return listeners.ToArray(); } + get { return listeners; } } } } \ No newline at end of file diff --git a/src/Spring/Spring.Messaging/Messaging/Core/DefaultMessageQueueFactory.cs b/src/Spring/Spring.Messaging/Messaging/Core/DefaultMessageQueueFactory.cs index ed2edf31..a7bae9d9 100644 --- a/src/Spring/Spring.Messaging/Messaging/Core/DefaultMessageQueueFactory.cs +++ b/src/Spring/Spring.Messaging/Messaging/Core/DefaultMessageQueueFactory.cs @@ -67,7 +67,7 @@ namespace Spring.Messaging.Core MessageQueueFactoryObject mqfo = new MessageQueueFactoryObject(); mqfo.MessageCreatorDelegate = messageQueueCreatorDelegate; applicationContext.ObjectFactory.RegisterSingleton(messageQueueObjectName, mqfo); - IDictionary caches = applicationContext.GetObjectsOfType(); + IDictionary caches = applicationContext.GetObjects(); foreach (KeyValuePair entry in caches) { entry.Value.Insert(mqfo.Path, new MessageQueueMetadata(mqfo.RemoteQueue, mqfo.RemoteQueueIsTransactional)); diff --git a/src/Spring/Spring.Messaging/Messaging/Core/MessageQueueMetadataCache.cs b/src/Spring/Spring.Messaging/Messaging/Core/MessageQueueMetadataCache.cs index 9b24f450..86799a2b 100644 --- a/src/Spring/Spring.Messaging/Messaging/Core/MessageQueueMetadataCache.cs +++ b/src/Spring/Spring.Messaging/Messaging/Core/MessageQueueMetadataCache.cs @@ -40,7 +40,7 @@ namespace Spring.Messaging.Core public void Initialize() { - IDictionary messageQueueDictionary = configurableApplicationContext.GetObjectsOfType(); + IDictionary messageQueueDictionary = configurableApplicationContext.GetObjects(); lock (itemStore.SyncRoot) { foreach (KeyValuePair entry in messageQueueDictionary) diff --git a/src/Spring/Spring.Scheduling.Quartz/Scheduling/Quartz/QuartzJobObject.cs b/src/Spring/Spring.Scheduling.Quartz/Scheduling/Quartz/QuartzJobObject.cs index 54b6753f..e6dd48a3 100644 --- a/src/Spring/Spring.Scheduling.Quartz/Scheduling/Quartz/QuartzJobObject.cs +++ b/src/Spring/Spring.Scheduling.Quartz/Scheduling/Quartz/QuartzJobObject.cs @@ -13,6 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +using System.Collections; + using Quartz; using Spring.Objects; @@ -68,8 +71,14 @@ namespace Spring.Scheduling.Quartz { ObjectWrapper bw = new ObjectWrapper(this); MutablePropertyValues pvs = new MutablePropertyValues(); - pvs.AddAll(context.Scheduler.Context); - pvs.AddAll(context.MergedJobDataMap); + foreach (DictionaryEntry entry in context.Scheduler.Context) + { + pvs.Add(entry.Key.ToString(), entry.Value); + } + foreach (DictionaryEntry entry in context.MergedJobDataMap) + { + pvs.Add(entry.Key.ToString(), entry.Value); + } bw.SetPropertyValues(pvs, true); } catch (SchedulerException ex) diff --git a/src/Spring/Spring.Scheduling.Quartz/Scheduling/Quartz/SchedulerAccessorObject.cs b/src/Spring/Spring.Scheduling.Quartz/Scheduling/Quartz/SchedulerAccessorObject.cs index eff543f7..b30be10e 100644 --- a/src/Spring/Spring.Scheduling.Quartz/Scheduling/Quartz/SchedulerAccessorObject.cs +++ b/src/Spring/Spring.Scheduling.Quartz/Scheduling/Quartz/SchedulerAccessorObject.cs @@ -15,6 +15,7 @@ */ using System; +using System.Collections.Generic; using Quartz; using Quartz.Impl; @@ -132,8 +133,8 @@ namespace Spring.Scheduling.Quartz if (objectFactory is IListableObjectFactory) { IListableObjectFactory lbf = (IListableObjectFactory) objectFactory; - string[] objectNames = lbf.GetObjectNamesForType(typeof(IScheduler)); - for (int i = 0; i < objectNames.Length; i++) + IList objectNames = lbf.GetObjectNamesForType(typeof(IScheduler)); + for (int i = 0; i < objectNames.Count; i++) { IScheduler schedulerObject = (IScheduler)lbf.GetObject(objectNames[i]); if (schedulerName.Equals(schedulerObject.SchedulerName)) diff --git a/src/Spring/Spring.Scheduling.Quartz/Scheduling/Quartz/SpringObjectJobFactory.cs b/src/Spring/Spring.Scheduling.Quartz/Scheduling/Quartz/SpringObjectJobFactory.cs index a213566b..40e27460 100644 --- a/src/Spring/Spring.Scheduling.Quartz/Scheduling/Quartz/SpringObjectJobFactory.cs +++ b/src/Spring/Spring.Scheduling.Quartz/Scheduling/Quartz/SpringObjectJobFactory.cs @@ -13,6 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +using System.Collections; + using Quartz; using Quartz.Spi; using Spring.Objects; @@ -76,10 +79,19 @@ namespace Spring.Scheduling.Quartz MutablePropertyValues pvs = new MutablePropertyValues(); if (schedulerContext != null) { - pvs.AddAll(schedulerContext); + foreach (DictionaryEntry entry in schedulerContext) + { + pvs.Add(entry.Key.ToString(), entry.Value); + } + } + foreach (DictionaryEntry entry in bundle.JobDetail.JobDataMap) + { + pvs.Add(entry.Key.ToString(), entry.Value); + } + foreach (DictionaryEntry entry in bundle.Trigger.JobDataMap) + { + pvs.Add(entry.Key.ToString(), entry.Value); } - pvs.AddAll(bundle.JobDetail.JobDataMap); - pvs.AddAll(bundle.Trigger.JobDataMap); if (ignoredUnknownProperties != null) { for (int i = 0; i < ignoredUnknownProperties.Length; i++) diff --git a/src/Spring/Spring.Services/ServiceModel/ServiceExporter.cs b/src/Spring/Spring.Services/ServiceModel/ServiceExporter.cs index b9e83ff5..e6ebc108 100644 --- a/src/Spring/Spring.Services/ServiceModel/ServiceExporter.cs +++ b/src/Spring/Spring.Services/ServiceModel/ServiceExporter.cs @@ -22,6 +22,7 @@ using System; using System.Collections; +using System.Collections.Generic; using System.Reflection; using System.Reflection.Emit; using System.ServiceModel; @@ -491,12 +492,12 @@ namespace Spring.ServiceModel return attrs; } - protected override Type[] GetProxiableInterfaces(Type[] interfaces) + protected override IList GetProxiableInterfaces(IList interfaces) { if (contractInterface == null) { - Type[] proxiableInterfaces = base.GetProxiableInterfaces(interfaces); - if (proxiableInterfaces.Length > 1) + IList proxiableInterfaces = base.GetProxiableInterfaces(interfaces); + if (proxiableInterfaces.Count > 1) { throw new ArgumentException(String.Format( "ServiceExporter cannot export service type '{0}' as a WCF service because it implements multiple interfaces. Specify the contract interface to expose via the ContractInterface property.", @@ -558,7 +559,7 @@ namespace Spring.ServiceModel objectDefinition, null, null); - if (objectDefinition.PropertyValues.PropertyValues.Length == 0) + if (objectDefinition.PropertyValues.PropertyValues.Count == 0) { CustomAttributeBuilder cab = new CustomAttributeBuilder(ci.ConstructorInfo, ci.ArgInstances); diff --git a/src/Spring/Spring.Services/Web/Services/WebServiceProxyFactory.cs b/src/Spring/Spring.Services/Web/Services/WebServiceProxyFactory.cs index 2bebfbef..6ad87df6 100644 --- a/src/Spring/Spring.Services/Web/Services/WebServiceProxyFactory.cs +++ b/src/Spring/Spring.Services/Web/Services/WebServiceProxyFactory.cs @@ -487,7 +487,7 @@ namespace Spring.Web.Services /// The generated proxy class. public override Type BuildProxyType() { - if (Interfaces == null || Interfaces.Length == 0) + if (Interfaces == null || Interfaces.Count == 0) { throw new ArgumentException( "Web service client proxy must implement at least one interface."); diff --git a/src/Spring/Spring.Template.Velocity/Template/Velocity/Config/TemplateNamespaceParser.cs b/src/Spring/Spring.Template.Velocity/Template/Velocity/Config/TemplateNamespaceParser.cs index 8ecb2d52..0333de52 100644 --- a/src/Spring/Spring.Template.Velocity/Template/Velocity/Config/TemplateNamespaceParser.cs +++ b/src/Spring/Spring.Template.Velocity/Template/Velocity/Config/TemplateNamespaceParser.cs @@ -24,15 +24,14 @@ using System; using System.Collections; using System.Collections.Generic; using System.Xml; + using NVelocity.Runtime; -using NVelocity.Runtime.Resource.Loader; + using Spring.Core.TypeResolution; using Spring.Objects; -using Spring.Objects.Factory; using Spring.Objects.Factory.Config; using Spring.Objects.Factory.Support; using Spring.Objects.Factory.Xml; -using Spring.Template.Velocity; using Spring.Util; #endregion @@ -226,8 +225,9 @@ namespace Spring.Template.Velocity.Config { /// a list of nv:file elements defining the paths to template files /// the properties used to initialize the velocity engine private void AppendFileLoaderProperties(XmlNodeList elements, IDictionary properties) { - IList paths = new List(elements.Count); - foreach (XmlElement element in elements) { + IList paths = new List(elements.Count); + foreach (XmlElement element in elements) + { paths.Add(GetAttributeValue(element, VelocityConstants.Path)); } properties.Add(RuntimeConstants.RESOURCE_LOADER, VelocityConstants.File); @@ -241,7 +241,7 @@ namespace Spring.Template.Velocity.Config { /// a list of nv:assembly elements defining the assemblies /// the properties used to initialize the velocity engine private void AppendAssemblyLoaderProperties(XmlNodeList elements, IDictionary properties) { - IList assemblies = new List(elements.Count); + IList assemblies = new List(elements.Count); foreach (XmlElement element in elements) { assemblies.Add(GetAttributeValue(element, VelocityConstants.Name)); } diff --git a/src/Spring/Spring.Template.Velocity/Template/Velocity/VelocityEngineFactory.cs b/src/Spring/Spring.Template.Velocity/Template/Velocity/VelocityEngineFactory.cs index 1e19b372..71a53144 100644 --- a/src/Spring/Spring.Template.Velocity/Template/Velocity/VelocityEngineFactory.cs +++ b/src/Spring/Spring.Template.Velocity/Template/Velocity/VelocityEngineFactory.cs @@ -76,7 +76,7 @@ namespace Spring.Template.Velocity { private IDictionary velocityProperties = new Dictionary(); - private IList resourceLoaderPaths = new ArrayList(); + private IList resourceLoaderPaths = new List(); private IResourceLoader resourceLoader = new ConfigurableResourceLoader(); @@ -141,7 +141,8 @@ namespace Spring.Template.Velocity { /// /// /// - public IList ResourceLoaderPaths { + public IList ResourceLoaderPaths + { set { resourceLoaderPaths = value; } } @@ -287,12 +288,12 @@ namespace Spring.Template.Velocity { /// /// /// - protected void InitVelocityResourceLoader(VelocityEngine velocityEngine, ExtendedProperties extendedProperties, IList paths) { + protected void InitVelocityResourceLoader(VelocityEngine velocityEngine, ExtendedProperties extendedProperties, IList paths) { if (PreferFileSystemAccess) { // Try to load via the file system, fall back to SpringResourceLoader // (for hot detection of template changes, if possible). - IList resolvedPaths = new ArrayList(); + IList resolvedPaths = new List(); try { foreach (string path in paths) { IResource resource = ResourceLoader.GetResource(path); diff --git a/src/Spring/Spring.Testing.Microsoft/Testing/Microsoft/AbstractSpringContextTests.cs b/src/Spring/Spring.Testing.Microsoft/Testing/Microsoft/AbstractSpringContextTests.cs index ed1d3c36..dcffac9b 100644 --- a/src/Spring/Spring.Testing.Microsoft/Testing/Microsoft/AbstractSpringContextTests.cs +++ b/src/Spring/Spring.Testing.Microsoft/Testing/Microsoft/AbstractSpringContextTests.cs @@ -156,7 +156,7 @@ namespace Spring.Testing.Microsoft } if (contextKey is string[]) { - return StringUtils.ArrayToCommaDelimitedString((string[]) contextKey); + return StringUtils.CollectionToCommaDelimitedString((string[])contextKey); } else { @@ -216,7 +216,7 @@ namespace Spring.Testing.Microsoft { if (logger.IsInfoEnabled) { - logger.Info("Loading config for: " + StringUtils.ArrayToCommaDelimitedString(locations)); + logger.Info("Loading config for: " + StringUtils.CollectionToCommaDelimitedString(locations)); } return new XmlApplicationContext(locations); } diff --git a/src/Spring/Spring.Testing.NUnit/Testing/NUnit/AbstractDependencyInjectionSpringContextTests.cs b/src/Spring/Spring.Testing.NUnit/Testing/NUnit/AbstractDependencyInjectionSpringContextTests.cs index d5171402..e2eaa67b 100644 --- a/src/Spring/Spring.Testing.NUnit/Testing/NUnit/AbstractDependencyInjectionSpringContextTests.cs +++ b/src/Spring/Spring.Testing.NUnit/Testing/NUnit/AbstractDependencyInjectionSpringContextTests.cs @@ -19,13 +19,12 @@ #endregion using System; -using System.Collections; +using System.Collections.Generic; using System.Reflection; using NUnit.Framework; using Spring.Context; -using Spring.Context.Support; using Spring.Objects.Factory; using Spring.Objects.Factory.Config; using Spring.Objects.Factory.Support; @@ -90,7 +89,7 @@ namespace Spring.Testing.NUnit /// /// Holds names of the fields that should be used for field injection. /// - protected string[] managedVariableNames; + protected IList managedVariableNames; private int loadCount = 0; /// @@ -231,7 +230,7 @@ namespace Spring.Testing.NUnit /// protected virtual void InitManagedVariableNames() { - ArrayList managedVarNames = new ArrayList(); + List managedVarNames = new List(); Type type = GetType(); do @@ -273,7 +272,7 @@ namespace Spring.Testing.NUnit type = type.BaseType; } while (type != typeof (AbstractDependencyInjectionSpringContextTests)); - this.managedVariableNames = (string[]) managedVarNames.ToArray(typeof (string)); + this.managedVariableNames = managedVarNames; } private static bool IsProtectedInstanceField(FieldInfo field) @@ -286,7 +285,7 @@ namespace Spring.Testing.NUnit /// protected virtual void InjectProtectedVariables() { - for (int i = 0; i < this.managedVariableNames.Length; i++) + for (int i = 0; i < this.managedVariableNames.Count; i++) { string fieldName = this.managedVariableNames[i]; Object obj = null; diff --git a/src/Spring/Spring.Testing.NUnit/Testing/NUnit/AbstractSpringContextTests.cs b/src/Spring/Spring.Testing.NUnit/Testing/NUnit/AbstractSpringContextTests.cs index 8cbde4e1..b0e6f1e4 100644 --- a/src/Spring/Spring.Testing.NUnit/Testing/NUnit/AbstractSpringContextTests.cs +++ b/src/Spring/Spring.Testing.NUnit/Testing/NUnit/AbstractSpringContextTests.cs @@ -166,7 +166,7 @@ namespace Spring.Testing.NUnit } if (contextKey is string[]) { - return StringUtils.ArrayToCommaDelimitedString((string[]) contextKey); + return StringUtils.CollectionToCommaDelimitedString((string[])contextKey); } else { @@ -228,7 +228,7 @@ namespace Spring.Testing.NUnit { if (logger.IsInfoEnabled) { - logger.Info("Loading config for: " + StringUtils.ArrayToCommaDelimitedString(locations)); + logger.Info("Loading config for: " + StringUtils.CollectionToCommaDelimitedString(locations)); } return new XmlApplicationContext(locations); } diff --git a/src/Spring/Spring.Web/Context/Support/WebContextHandler.cs b/src/Spring/Spring.Web/Context/Support/WebContextHandler.cs index 535a11d7..e6d05617 100644 --- a/src/Spring/Spring.Web/Context/Support/WebContextHandler.cs +++ b/src/Spring/Spring.Web/Context/Support/WebContextHandler.cs @@ -21,13 +21,12 @@ #region Imports using System; -using System.IO; -using System.Reflection; -using System.Web; +using System.Collections.Generic; using System.Web.Configuration; -using System.Web.Hosting; using System.Xml; + using Common.Logging; + using Spring.Util; #endregion @@ -86,11 +85,10 @@ namespace Spring.Context.Support /// Nesting contexts in webapplications is done by explicitly declaring /// spring context sections for each directory. /// - protected override void CreateChildContexts(IApplicationContext parentContext, object configContext, - XmlNode[] childContexts) + protected override void CreateChildContexts(IApplicationContext parentContext, object configContext, IList childContexts) { // disable child contexts in webapps - if (childContexts.Length > 0) + if (childContexts.Count > 0) { throw ConfigurationUtils.CreateConfigurationException( String.Format("Nested Child Contexts are not allowed in Web Applications. Use Web.config hierarchy instead."), childContexts[0]); @@ -100,9 +98,7 @@ namespace Spring.Context.Support /// /// Handles web specific details of context instantiation. /// - protected override IApplicationContext InstantiateContext(IApplicationContext parent, object configContext, - string contextName, Type contextType, - bool caseSensitive, string[] resources) + protected override IApplicationContext InstantiateContext(IApplicationContext parent, object configContext, string contextName, Type contextType, bool caseSensitive, IList resources) { // ASP.NET may scavenge it's configuration section cache if memory usage is too high. // Thus a handler may be called more than once for the same context. @@ -124,8 +120,7 @@ namespace Spring.Context.Support if (!vpath.EndsWith("/")) vpath = vpath + "/"; using (new HttpContextSwitch(vpath)) { - return - base.InstantiateContext(parent, configContext, contextName, contextType, caseSensitive, resources); + return base.InstantiateContext(parent, configContext, contextName, contextType, caseSensitive, resources); } } diff --git a/src/Spring/Spring.Web/Objects/Factory/Xml/WebObjectDefinitionParserHelper.cs b/src/Spring/Spring.Web/Objects/Factory/Xml/WebObjectDefinitionParserHelper.cs index 1ad9317a..7d24d72d 100644 --- a/src/Spring/Spring.Web/Objects/Factory/Xml/WebObjectDefinitionParserHelper.cs +++ b/src/Spring/Spring.Web/Objects/Factory/Xml/WebObjectDefinitionParserHelper.cs @@ -85,7 +85,7 @@ namespace Spring.Objects.Factory.Xml return objectName; } - protected override ObjectDefinitionHolder CreateObjectDefinitionHolder(XmlElement element, IConfigurableObjectDefinition definition, string objectName, string[] aliasesArray) + protected override ObjectDefinitionHolder CreateObjectDefinitionHolder(XmlElement element, IConfigurableObjectDefinition definition, string objectName, IList aliasesArray) { IWebObjectDefinition webDefinition = definition as IWebObjectDefinition; diff --git a/src/Spring/Spring.Web/Web/Support/ContextMonitor.cs b/src/Spring/Spring.Web/Web/Support/ContextMonitor.cs index f1a55b80..1f2fc0c0 100644 --- a/src/Spring/Spring.Web/Web/Support/ContextMonitor.cs +++ b/src/Spring/Spring.Web/Web/Support/ContextMonitor.cs @@ -19,6 +19,7 @@ #endregion using System; +using System.Collections.Generic; using System.IO; using System.Web; @@ -67,7 +68,7 @@ namespace Spring.Web.Support "Implementations of IApplicationContext must also implement IConfigurableApplicationContext"); } - string[] names = appContext.GetObjectDefinitionNames(); + IList names = appContext.GetObjectDefinitionNames(); foreach (string name in names) { RenderObjectDefinition(res.Output, name, appContext.ObjectFactory.GetObjectDefinition(name)); diff --git a/test/Spring/Spring.Aop.Tests/Aop/Config/AopNamespaceParserTests.cs b/test/Spring/Spring.Aop.Tests/Aop/Config/AopNamespaceParserTests.cs index 82e9ae41..69867053 100644 --- a/test/Spring/Spring.Aop.Tests/Aop/Config/AopNamespaceParserTests.cs +++ b/test/Spring/Spring.Aop.Tests/Aop/Config/AopNamespaceParserTests.cs @@ -20,6 +20,8 @@ #region Imports +using System.Collections.Generic; + using NUnit.Framework; using Spring.Aop.Framework; @@ -70,8 +72,8 @@ namespace Spring.Aop.Config IAdvised advised = testObject as IAdvised; Assert.IsNotNull(advised); - IAdvisor[] advisors = advised.Advisors; - Assert.IsTrue(advisors.Length > 0, "Advisors should not be empty"); + IList advisors = advised.Advisors; + Assert.IsTrue(advisors.Count > 0, "Advisors should not be empty"); } diff --git a/test/Spring/Spring.Aop.Tests/Aop/Framework/AutoProxy/AbstractAdvisorAutoProxyCreatorTests.cs b/test/Spring/Spring.Aop.Tests/Aop/Framework/AutoProxy/AbstractAdvisorAutoProxyCreatorTests.cs index 0f9c5b22..fd412d51 100644 --- a/test/Spring/Spring.Aop.Tests/Aop/Framework/AutoProxy/AbstractAdvisorAutoProxyCreatorTests.cs +++ b/test/Spring/Spring.Aop.Tests/Aop/Framework/AutoProxy/AbstractAdvisorAutoProxyCreatorTests.cs @@ -1,25 +1,26 @@ #region License -/* - * Copyright 2002-2010 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. +/* + * Copyright 2002-2010 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ #endregion using System; using System.Collections; +using System.Collections.Generic; using AopAlliance.Aop; using NUnit.Framework; using Spring.Objects.Factory.Config; @@ -37,7 +38,7 @@ namespace Spring.Aop.Framework.AutoProxy { public ArrayList CheckedAdvisors = new ArrayList(); - public object[] GetAdvicesAndAdvisorsForObject(Type targetType, string targetName) + public IList GetAdvicesAndAdvisorsForObject(Type targetType, string targetName) { return base.GetAdvicesAndAdvisorsForObject(targetType, targetName, null); } @@ -87,8 +88,8 @@ namespace Spring.Aop.Framework.AutoProxy TestAdvisorAutoProxyCreator apc = new TestAdvisorAutoProxyCreator(); apc.ObjectFactory = of; - object[] advisors = apc.GetAdvicesAndAdvisorsForObject(typeof (object), "dummyTarget"); - Assert.AreEqual(1, advisors.Length); + IList advisors = apc.GetAdvicesAndAdvisorsForObject(typeof (object), "dummyTarget"); + Assert.AreEqual(1, advisors.Count); Assert.AreEqual( "RegularAdvisor", ((TestAdvisor)advisors[0]).Name ); Assert.AreEqual(1, apc.CheckedAdvisors.Count); diff --git a/test/Spring/Spring.Aop.Tests/Aop/Framework/AutoProxy/AbstractAutoProxyCreatorTests.cs b/test/Spring/Spring.Aop.Tests/Aop/Framework/AutoProxy/AbstractAutoProxyCreatorTests.cs index 0730c08d..318a1928 100644 --- a/test/Spring/Spring.Aop.Tests/Aop/Framework/AutoProxy/AbstractAutoProxyCreatorTests.cs +++ b/test/Spring/Spring.Aop.Tests/Aop/Framework/AutoProxy/AbstractAutoProxyCreatorTests.cs @@ -1,24 +1,25 @@ #region License -/* - * Copyright 2002-2010 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. +/* + * Copyright 2002-2010 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ #endregion using System; +using System.Collections.Generic; using System.Runtime.Remoting; using System.Runtime.Remoting.Messaging; using System.Runtime.Remoting.Proxies; @@ -120,13 +121,13 @@ namespace Spring.Aop.Framework.AutoProxy this.ObjectFactory = objectFactory; } - protected override object[] GetAdvicesAndAdvisorsForObject(Type targetType, string targetName, ITargetSource customTargetSource) + protected override IList GetAdvicesAndAdvisorsForObject(Type targetType, string targetName, ITargetSource customTargetSource) { if (typeof(IFactoryObject).IsAssignableFrom(targetType)) { return DO_NOT_PROXY; } - return new object[] { NopInterceptor }; + return new List { NopInterceptor }; } } diff --git a/test/Spring/Spring.Aop.Tests/Aop/Framework/AutoProxy/AdvisorAutoProxyCreatorCircularReferencesTests.cs b/test/Spring/Spring.Aop.Tests/Aop/Framework/AutoProxy/AdvisorAutoProxyCreatorCircularReferencesTests.cs index 194208e5..6598d9ef 100644 --- a/test/Spring/Spring.Aop.Tests/Aop/Framework/AutoProxy/AdvisorAutoProxyCreatorCircularReferencesTests.cs +++ b/test/Spring/Spring.Aop.Tests/Aop/Framework/AutoProxy/AdvisorAutoProxyCreatorCircularReferencesTests.cs @@ -21,6 +21,7 @@ #region Imports using System; +using System.Collections.Generic; using System.Reflection; using Common.Logging; @@ -93,10 +94,10 @@ namespace Spring.Aop.Framework.AutoProxy _logger.Trace("Created instance"); } - protected override object[] GetAdvicesAndAdvisorsForObject(Type targetType, string targetName, ITargetSource customTargetSource) + protected override IList GetAdvicesAndAdvisorsForObject(Type targetType, string targetName, ITargetSource customTargetSource) { _logger.Trace("GetAdvicesAndAdvisorsForObject begin"); - object[] advices = base.GetAdvicesAndAdvisorsForObject(targetType, targetName, customTargetSource); + IList advices = base.GetAdvicesAndAdvisorsForObject(targetType, targetName, customTargetSource); _logger.Trace("GetAdvicesAndAdvisorsForObject end"); return advices; } diff --git a/test/Spring/Spring.Aop.Tests/Aop/Framework/AutoProxy/InfrastructureAdvisorAutoProxyCreator.cs b/test/Spring/Spring.Aop.Tests/Aop/Framework/AutoProxy/InfrastructureAdvisorAutoProxyCreator.cs index 4fa6fe12..0617325a 100644 --- a/test/Spring/Spring.Aop.Tests/Aop/Framework/AutoProxy/InfrastructureAdvisorAutoProxyCreator.cs +++ b/test/Spring/Spring.Aop.Tests/Aop/Framework/AutoProxy/InfrastructureAdvisorAutoProxyCreator.cs @@ -1,24 +1,25 @@ #region License -/* - * Copyright 2002-2010 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. +/* + * Copyright 2002-2010 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ #endregion using System; +using System.Collections.Generic; using AopAlliance.Aop; using NUnit.Framework; using Spring.Objects.Factory.Config; @@ -34,7 +35,7 @@ namespace Spring.Aop.Framework.AutoProxy { public class TestAdvisorAutoProxyCreator : InfrastructureAdvisorAutoProxyCreator { - public object[] GetAdvicesAndAdvisorsForObject(Type targetType, string targetName) + public IList GetAdvicesAndAdvisorsForObject(Type targetType, string targetName) { return base.GetAdvicesAndAdvisorsForObject(targetType, targetName, null); } @@ -78,8 +79,8 @@ namespace Spring.Aop.Framework.AutoProxy TestAdvisorAutoProxyCreator apc = new TestAdvisorAutoProxyCreator(); apc.ObjectFactory = of; - object[] advisors = apc.GetAdvicesAndAdvisorsForObject(typeof(object), "dummyTarget"); - Assert.AreEqual(1, advisors.Length); + IList advisors = apc.GetAdvicesAndAdvisorsForObject(typeof(object), "dummyTarget"); + Assert.AreEqual(1, advisors.Count); Assert.AreEqual("InfrastructureAdvisor", ((TestAdvisor)advisors[0]).Name); } } diff --git a/test/Spring/Spring.Aop.Tests/Aop/Framework/DynamicProxy/AbstractAopProxyTests.cs b/test/Spring/Spring.Aop.Tests/Aop/Framework/DynamicProxy/AbstractAopProxyTests.cs index fd2f7138..0d5c0b55 100644 --- a/test/Spring/Spring.Aop.Tests/Aop/Framework/DynamicProxy/AbstractAopProxyTests.cs +++ b/test/Spring/Spring.Aop.Tests/Aop/Framework/DynamicProxy/AbstractAopProxyTests.cs @@ -1222,7 +1222,7 @@ namespace Spring.Aop.Framework.DynamicProxy IAdvised a1 = (IAdvised)p; IAdvised a2 = (IAdvised)p2; // Check we can manipulate state of p2 - Assert.AreEqual(a1.Advisors.Length, a2.Advisors.Length); + Assert.AreEqual(a1.Advisors.Count, a2.Advisors.Count); // This should work as SerializablePerson is equal Assert.AreEqual(p, p2, "Proxies should be equal, even after one was serialized"); @@ -1706,7 +1706,7 @@ namespace Spring.Aop.Framework.DynamicProxy Assert.AreEqual(2, ni.Count); IAdvised advised = (IAdvised)ito; - Assert.AreEqual(1, advised.Advisors.Length, "Have 1 advisor"); + Assert.AreEqual(1, advised.Advisors.Count, "Have 1 advisor"); Assert.AreEqual(ni, advised.Advisors[0].Advice); NopInterceptor ni2 = new NopInterceptor(); advised.AddAdvice(1, ni2); @@ -1750,7 +1750,7 @@ namespace Spring.Aop.Framework.DynamicProxy // Check it still works: proxy factory state shouldn't have been corrupted Assert.AreEqual(target.Age, proxied.Age); - Assert.AreEqual(1, ((IAdvised)proxied).Advisors.Length); + Assert.AreEqual(1, ((IAdvised)proxied).Advisors.Count); } [Test(Description = "Check that casting to Advised can't get around advice freeze.")] @@ -1778,7 +1778,7 @@ namespace Spring.Aop.Framework.DynamicProxy // Check it still works: proxy factory state shouldn't have been corrupted Assert.AreEqual(target.Age, proxied.Age); - Assert.AreEqual(1, advised.Advisors.Length); + Assert.AreEqual(1, advised.Advisors.Count); } [Test] @@ -1805,13 +1805,13 @@ namespace Spring.Aop.Framework.DynamicProxy } // Didn't get removed - Assert.AreEqual(1, advised.Advisors.Length); + Assert.AreEqual(1, advised.Advisors.Count); pf.IsFrozen = false; // Can now remove it advised.RemoveAdvisor(0); // Check it still works: proxy factory state shouldn't have been corrupted Assert.AreEqual(target.Age, proxied.Age); - Assert.AreEqual(0, advised.Advisors.Length); + Assert.AreEqual(0, advised.Advisors.Count); } [Test(Description = "Check that the string is informative.")] diff --git a/test/Spring/Spring.Aop.Tests/Aop/Framework/ProxyFactoryObjectTests.cs b/test/Spring/Spring.Aop.Tests/Aop/Framework/ProxyFactoryObjectTests.cs index 31cb7b55..de3b5d0d 100644 --- a/test/Spring/Spring.Aop.Tests/Aop/Framework/ProxyFactoryObjectTests.cs +++ b/test/Spring/Spring.Aop.Tests/Aop/Framework/ProxyFactoryObjectTests.cs @@ -154,11 +154,11 @@ namespace Spring.Aop.Framework IAdvised pc1 = (IAdvised)test1; IAdvised pc2 = (IAdvised)test1_1; Assert.AreEqual(pc1.Advisors, pc2.Advisors); - int oldLength = pc1.Advisors.Length; + int oldLength = pc1.Advisors.Count; NopInterceptor di = new NopInterceptor(); pc1.AddAdvice(1, di); Assert.AreEqual(pc1.Advisors, pc2.Advisors); - Assert.AreEqual(oldLength + 1, pc2.Advisors.Length, "Now have one more advisor"); + Assert.AreEqual(oldLength + 1, pc2.Advisors.Count, "Now have one more advisor"); Assert.AreEqual(di.Count, 0); test1.Age = (5); Assert.AreEqual(test1_1.Age, test1.Age); @@ -224,12 +224,12 @@ namespace Spring.Aop.Framework string dummy = to.Name; IAdvised config = (IAdvised)to; - Assert.AreEqual(1, config.Advisors.Length, "Object should have only one advisors"); + Assert.AreEqual(1, config.Advisors.Count, "Object should have only one advisors"); Exception ex = new NotSupportedException("Invoke"); // Add evil interceptor to head of list config.AddAdvice(0, new EvilMethodInterceptor(ex)); - Assert.AreEqual(2, config.Advisors.Length, "The advisor count is wrong after adding an advisor programmatically."); + Assert.AreEqual(2, config.Advisors.Count, "The advisor count is wrong after adding an advisor programmatically."); try { @@ -266,16 +266,16 @@ namespace Spring.Aop.Framework IIntroductionAdvisor advisor = new DefaultIntroductionAdvisor(ti, typeof(ITimeStamped)); // add to front of introduction chain - int oldCount = config.Introductions.Length; + int oldCount = config.Introductions.Count; config.AddIntroduction(0, advisor); - Assert.IsTrue(config.Introductions.Length == oldCount + 1); + Assert.IsTrue(config.Introductions.Count == oldCount + 1); ITimeStamped ts2 = (ITimeStamped)factory.GetObject("test1"); Assert.IsTrue(ts2.TimeStamp == new DateTime(time)); // Can remove config.RemoveIntroduction(advisor); - Assert.IsTrue(config.Introductions.Length == oldCount); + Assert.IsTrue(config.Introductions.Count == oldCount); // Existing reference will still work object o = ts2.TimeStamp; @@ -292,9 +292,9 @@ namespace Spring.Aop.Framework } // Now check non-effect of removing interceptor that isn't there - oldCount = config.Advisors.Length; + oldCount = config.Advisors.Count; config.RemoveAdvice(new DebugAdvice()); - Assert.IsTrue(config.Advisors.Length == oldCount); + Assert.IsTrue(config.Advisors.Count == oldCount); ITestObject it = (ITestObject)ts2; DebugAdvice debugInterceptor = new DebugAdvice(); @@ -330,16 +330,16 @@ namespace Spring.Aop.Framework IIntroductionAdvisor advisor = new DefaultIntroductionAdvisor(ti, typeof(ITimeStamped)); // add to front of introduction chain - int oldCount = config.Introductions.Length; + int oldCount = config.Introductions.Count; config.AddIntroduction(0, advisor); - Assert.IsTrue(config.Introductions.Length == oldCount + 1); + Assert.IsTrue(config.Introductions.Count == oldCount + 1); ITimeStamped ts2 = (ITimeStamped)factory.GetObject("test2"); Assert.IsTrue(ts2.TimeStamp == new DateTime(time)); // Can remove config.RemoveIntroduction(advisor); - Assert.IsTrue(config.Introductions.Length == oldCount); + Assert.IsTrue(config.Introductions.Count == oldCount); // Existing reference will still work object o = ts2.TimeStamp; @@ -358,9 +358,9 @@ namespace Spring.Aop.Framework ITestObject it = (ITestObject)factory.GetObject("test2"); config = (IAdvised)it; - oldCount = config.Advisors.Length; + oldCount = config.Advisors.Count; config.RemoveAdvice(new DebugAdvice()); - Assert.IsTrue(config.Advisors.Length == oldCount); + Assert.IsTrue(config.Advisors.Count == oldCount); DebugAdvice debugInterceptor = new DebugAdvice(); config.AddAdvice(0, debugInterceptor); @@ -462,10 +462,10 @@ namespace Spring.Aop.Framework ProxyFactoryObject pfb = (ProxyFactoryObject)factory.GetObject("&validGlobals"); pfb.GetObject(); // for creation - Assert.AreEqual(2, pfb.Advisors.Length, "Proxy should have 1 global and 1 explicit advisor"); - Assert.AreEqual(1, pfb.Introductions.Length, "Proxy should have 1 global introduction"); + Assert.AreEqual(2, pfb.Advisors.Count, "Proxy should have 1 global and 1 explicit advisor"); + Assert.AreEqual(1, pfb.Introductions.Count, "Proxy should have 1 global introduction"); - agi.GlobalsAdded = ((IAdvised)agi).Introductions.Length; + agi.GlobalsAdded = ((IAdvised)agi).Introductions.Count; Assert.IsTrue(agi.GlobalsAdded == 1); IApplicationEventListener l = (IApplicationEventListener)factory.GetObject("validGlobals"); diff --git a/test/Spring/Spring.Aop.Tests/Aop/Framework/ProxyFactoryTests.cs b/test/Spring/Spring.Aop.Tests/Aop/Framework/ProxyFactoryTests.cs index e4333a08..a2b2b673 100644 --- a/test/Spring/Spring.Aop.Tests/Aop/Framework/ProxyFactoryTests.cs +++ b/test/Spring/Spring.Aop.Tests/Aop/Framework/ProxyFactoryTests.cs @@ -399,7 +399,7 @@ namespace Spring.Aop.Framework advSup.AddAdvisor(advisor1); advSup.AddAdvisor(advisor1); - Assert.AreEqual(1, advSup.Advisors.Length); + Assert.AreEqual(1, advSup.Advisors.Count); } private class AnonymousClassTimeStamped : ITimeStamped @@ -454,7 +454,7 @@ namespace Spring.Aop.Framework // Extend to get new interface TestObjectSubclass raw = new TestObjectSubclass(); ProxyFactory factory = new ProxyFactory(raw); - Assert.AreEqual(8, factory.Interfaces.Length, "Found correct number of interfaces"); + Assert.AreEqual(8, factory.Interfaces.Count, "Found correct number of interfaces"); //System.out.println("Proxied interfaces are " + StringUtils.arrayToDelimitedString(factory.getProxiedInterfaces(), ",")); ITestObject tb = (ITestObject)factory.GetProxy(); Assert.IsTrue(tb is IOther, "Picked up secondary interface"); @@ -465,14 +465,14 @@ namespace Spring.Aop.Framework DateTime t = new DateTime(2004, 8, 1); TimestampIntroductionInterceptor ti = new TimestampIntroductionInterceptor(t); - Console.WriteLine(StringUtils.ArrayToDelimitedString(factory.Interfaces, "/")); + Console.WriteLine(StringUtils.CollectionToDelimitedString(factory.Interfaces, "/")); //factory.addAdvisor(0, new DefaultIntroductionAdvisor(ti, typeof(ITimeStamped))); factory.AddIntroduction( new DefaultIntroductionAdvisor(ti, typeof(ITimeStamped)) ); - Console.WriteLine(StringUtils.ArrayToDelimitedString(factory.Interfaces, "/")); + Console.WriteLine(StringUtils.CollectionToDelimitedString(factory.Interfaces, "/")); ITimeStamped ts = (ITimeStamped)factory.GetProxy(); Assert.IsTrue(ts.TimeStamp == t); diff --git a/test/Spring/Spring.Aop.Tests/Aspects/Exception/CaptureOutputLoggerFactoryAdapter.cs b/test/Spring/Spring.Aop.Tests/Aspects/Exception/CaptureOutputLoggerFactoryAdapter.cs index a3e999af..47544653 100644 --- a/test/Spring/Spring.Aop.Tests/Aspects/Exception/CaptureOutputLoggerFactoryAdapter.cs +++ b/test/Spring/Spring.Aop.Tests/Aspects/Exception/CaptureOutputLoggerFactoryAdapter.cs @@ -1,9 +1,9 @@ using System; -using System.Collections; -using System.Collections.Specialized; +using System.Collections.Generic; using System.Diagnostics; + using Common.Logging; using Common.Logging.Simple; @@ -44,9 +44,9 @@ namespace Spring.Aspects.Exceptions System.Diagnostics.Trace.Listeners.Remove(listener); } - private IList logMessages = new ArrayList(); + private IList logMessages = new List(); - public IList LogMessages + public IList LogMessages { get { return logMessages; } set { logMessages = value; } diff --git a/test/Spring/Spring.Core.Tests/Context/Support/ApplicationObjectSupportTests.cs b/test/Spring/Spring.Core.Tests/Context/Support/ApplicationObjectSupportTests.cs index fbac52d7..b2141921 100644 --- a/test/Spring/Spring.Core.Tests/Context/Support/ApplicationObjectSupportTests.cs +++ b/test/Spring/Spring.Core.Tests/Context/Support/ApplicationObjectSupportTests.cs @@ -119,28 +119,27 @@ namespace Spring.Context.Support return null; } - public string[] GetObjectNamesForType(Type type) + public IList GetObjectNamesForType(Type type) { return null; } - public string[] GetObjectNamesForType() + public IList GetObjectNames() { return null; } - public string[] GetObjectNamesForType( - Type type, bool includePrototypes, bool includeFactoryObjects) + public IList GetObjectNamesForType(Type type, bool includePrototypes, bool includeFactoryObjects) { return null; } - public string[] GetObjectNamesForType(bool includePrototypes, bool includeFactoryObjects) + public IList GetObjectNames(bool includePrototypes, bool includeFactoryObjects) { return null; } - string[] IListableObjectFactory.GetObjectDefinitionNames() + IList IListableObjectFactory.GetObjectDefinitionNames() { return null; } @@ -150,7 +149,7 @@ namespace Spring.Context.Support return null; } - public IDictionary GetObjectsOfType() + public IDictionary GetObjects() { return null; } @@ -160,7 +159,7 @@ namespace Spring.Context.Support return null; } - public IDictionary GetObjectsOfType(bool includePrototypes, bool includeFactoryObjects) + public IDictionary GetObjects(bool includePrototypes, bool includeFactoryObjects) { return null; } @@ -199,7 +198,7 @@ namespace Spring.Context.Support return false; } - public string[] GetAliases(string name) + public IList GetAliases(string name) { return null; } diff --git a/test/Spring/Spring.Core.Tests/Core/TypeResolution/TypeResolutionUtilsTests.cs b/test/Spring/Spring.Core.Tests/Core/TypeResolution/TypeResolutionUtilsTests.cs index 8d3bda36..c5f6ff5b 100644 --- a/test/Spring/Spring.Core.Tests/Core/TypeResolution/TypeResolutionUtilsTests.cs +++ b/test/Spring/Spring.Core.Tests/Core/TypeResolution/TypeResolutionUtilsTests.cs @@ -21,6 +21,7 @@ #region Imports using System; +using System.Collections.Generic; using System.Reflection; using NUnit.Framework; @@ -75,9 +76,9 @@ namespace Spring.Core.TypeResolution { Type[] expected = new Type[] { typeof(IFoo) }; string[] input = new string[] { typeof(IFoo).AssemblyQualifiedName }; - Type[] actual = TypeResolutionUtils.ResolveInterfaceArray(input); + IList actual = TypeResolutionUtils.ResolveInterfaceArray(input); Assert.IsNotNull(actual); - Assert.AreEqual(expected.Length, actual.Length); + Assert.AreEqual(expected.Length, actual.Count); Assert.AreEqual(expected[0], actual[0]); } diff --git a/test/Spring/Spring.Core.Tests/Objects/Factory/AbstractListableObjectFactoryTests.cs b/test/Spring/Spring.Core.Tests/Objects/Factory/AbstractListableObjectFactoryTests.cs index 8e084fff..7868fb2f 100644 --- a/test/Spring/Spring.Core.Tests/Objects/Factory/AbstractListableObjectFactoryTests.cs +++ b/test/Spring/Spring.Core.Tests/Objects/Factory/AbstractListableObjectFactoryTests.cs @@ -21,6 +21,7 @@ #region Imports using System; +using System.Collections.Generic; using NUnit.Framework; @@ -62,10 +63,10 @@ namespace Spring.Objects.Factory { protected internal void AssertCount (int count) { - string [] defnames = ListableObjectFactory.GetObjectDefinitionNames (); + IList defnames = ListableObjectFactory.GetObjectDefinitionNames (); Assert.IsTrue ( - defnames.Length == count, - string.Format ("We should have {0} objects, not {1}.", count, defnames.Length)); + defnames.Count == count, + string.Format ("We should have {0} objects, not {1}.", count, defnames.Count)); } [Test] @@ -76,19 +77,19 @@ namespace Spring.Objects.Factory { public virtual void AssertTestObjectCount (int count) { - string [] defnames = + IList defnames = ListableObjectFactory.GetObjectNamesForType (typeof (TestObject)); Assert.IsTrue ( - defnames.Length == count, - string.Format ("We should have {0} objects for class {1}, not {2}.", count, typeof (TestObject).FullName, defnames.Length)); + defnames.Count == count, + string.Format ("We should have {0} objects for class {1}, not {2}.", count, typeof (TestObject).FullName, defnames.Count)); } [Test] public virtual void GetDefinitionsForNoSuchClass () { - string[] defnames = + IList defnames = ListableObjectFactory.GetObjectNamesForType (typeof (string)); - Assert.IsTrue (defnames.Length == 0, "No string definitions"); + Assert.IsTrue (defnames.Count == 0, "No string definitions"); } /// @@ -101,7 +102,7 @@ namespace Spring.Objects.Factory { { int count = ListableObjectFactory.GetObjectNamesForType ( - typeof (IFactoryObject)).Length; + typeof (IFactoryObject)).Count; Assert.IsTrue ( count == 2, string.Format ("Should have 2 factories, not {0}.", count)); diff --git a/test/Spring/Spring.Core.Tests/Objects/Factory/AbstractObjectFactoryTests.cs b/test/Spring/Spring.Core.Tests/Objects/Factory/AbstractObjectFactoryTests.cs index 3d0e8830..61b69a01 100644 --- a/test/Spring/Spring.Core.Tests/Objects/Factory/AbstractObjectFactoryTests.cs +++ b/test/Spring/Spring.Core.Tests/Objects/Factory/AbstractObjectFactoryTests.cs @@ -80,7 +80,7 @@ namespace Spring.Objects.Factory Assert.IsTrue(-1 < ex.Message.IndexOf("already registered")); } - Assert.AreEqual(1, of.GetAliases("nAmE").Length); + Assert.AreEqual(1, of.GetAliases("nAmE").Count); Assert.AreEqual(testObject, of.GetObject("nAmE")); Assert.AreEqual(testObject, of.GetObject("ALIAS")); } diff --git a/test/Spring/Spring.Core.Tests/Objects/Factory/DefaultListableObjectFactoryTests.cs b/test/Spring/Spring.Core.Tests/Objects/Factory/DefaultListableObjectFactoryTests.cs index 6457253e..c9b66d4f 100644 --- a/test/Spring/Spring.Core.Tests/Objects/Factory/DefaultListableObjectFactoryTests.cs +++ b/test/Spring/Spring.Core.Tests/Objects/Factory/DefaultListableObjectFactoryTests.cs @@ -146,7 +146,7 @@ namespace Spring.Objects.Factory def.FactoryMethodName = "CreateTestObject"; DefaultListableObjectFactory lof = new DefaultListableObjectFactory(); lof.RegisterObjectDefinition("factoryObject", def); - IDictionary objs = lof.GetObjectsOfType(); + IDictionary objs = lof.GetObjects(); Assert.AreEqual(1, objs.Count); } @@ -160,7 +160,7 @@ namespace Spring.Objects.Factory DefaultListableObjectFactory lof = new DefaultListableObjectFactory(); lof.RegisterObjectDefinition("factoryObject", def); lof.RegisterObjectDefinition("target", new RootObjectDefinition(typeof(TestObjectCreator))); - IDictionary objs = lof.GetObjectsOfType(); + IDictionary objs = lof.GetObjects(); Assert.AreEqual(1, objs.Count); } @@ -404,8 +404,7 @@ namespace Spring.Objects.Factory #region IInstantiationAwareObjectPostProcessor Members - public IPropertyValues PostProcessPropertyValues(IPropertyValues pvs, PropertyInfo[] pis, object objectInstance, - string objectName) + public IPropertyValues PostProcessPropertyValues(IPropertyValues pvs, IList pis, object objectInstance, string objectName) { return pvs; } @@ -455,8 +454,7 @@ namespace Spring.Objects.Factory #region IInstantiationAwareObjectPostProcessor Members - public IPropertyValues PostProcessPropertyValues(IPropertyValues pvs, PropertyInfo[] pis, object objectInstance, - string objectName) + public IPropertyValues PostProcessPropertyValues(IPropertyValues pvs, IList pis, object objectInstance, string objectName) { return pvs; } @@ -532,7 +530,7 @@ namespace Spring.Objects.Factory { IListableObjectFactory lof = new DefaultListableObjectFactory(); Assert.IsTrue(lof.GetObjectDefinitionNames() != null, "No objects defined --> array != null"); - Assert.IsTrue(lof.GetObjectDefinitionNames().Length == 0, "No objects defined after no arg constructor"); + Assert.IsTrue(lof.GetObjectDefinitionNames().Count == 0, "No objects defined after no arg constructor"); Assert.IsTrue(lof.ObjectDefinitionCount == 0, "No objects defined after no arg constructor"); } @@ -640,7 +638,7 @@ namespace Spring.Objects.Factory lof.RegisterSingleton("singletonObject", singletonObject); Assert.IsTrue(lof.ContainsObject("singletonObject")); Assert.IsTrue(lof.IsSingleton("singletonObject")); - Assert.AreEqual(0, lof.GetAliases("singletonObject").Length); + Assert.AreEqual(0, lof.GetAliases("singletonObject").Count); DependenciesObject test = (DependenciesObject)lof.GetObject("test"); Assert.AreEqual(singletonObject, lof.GetObject("singletonObject")); Assert.AreEqual(singletonObject, test.Spouse); @@ -1751,8 +1749,8 @@ namespace Spring.Objects.Factory DefaultListableObjectFactory of = new DefaultListableObjectFactory(); of.RegisterObjectDefinition("mod", new RootObjectDefinition(typeof(A))); - string[] names = of.GetObjectNamesForType(typeof (ISerializable), false, false); - Assert.IsNotEmpty(names); + IList names = of.GetObjectNamesForType(typeof (ISerializable), false, false); + Assert.IsNotEmpty((ICollection) names); Assert.AreEqual("&mod", names[0]); } diff --git a/test/Spring/Spring.Core.Tests/Objects/Factory/ObjectFactoryUtilsTests.cs b/test/Spring/Spring.Core.Tests/Objects/Factory/ObjectFactoryUtilsTests.cs index c3471d00..1b138e43 100644 --- a/test/Spring/Spring.Core.Tests/Objects/Factory/ObjectFactoryUtilsTests.cs +++ b/test/Spring/Spring.Core.Tests/Objects/Factory/ObjectFactoryUtilsTests.cs @@ -72,7 +72,7 @@ namespace Spring.Objects.Factory [Test] public void ObjectNamesIncludingAncestors() { - IList names = ObjectFactoryUtils.ObjectNamesIncludingAncestors(_factory); + IList names = ObjectFactoryUtils.ObjectNamesIncludingAncestors(_factory); Assert.AreEqual(6, names.Count); } @@ -89,8 +89,8 @@ namespace Spring.Objects.Factory mocks.ReplayAll(); - string[] names = ObjectFactoryUtils.ObjectNamesIncludingAncestors(of); - Assert.AreEqual(5, names.Length); + IList names = ObjectFactoryUtils.ObjectNamesIncludingAncestors(of); + Assert.AreEqual(5, names.Count); Assert.AreEqual(new string[] { "objA","objB","objC","obj2A","obj2C" }, names); mocks.VerifyAll(); @@ -99,7 +99,7 @@ namespace Spring.Objects.Factory [Test] public void ObjectNamesForTypeIncludingAncestors() { - IList names = ObjectFactoryUtils.ObjectNamesForTypeIncludingAncestors(_factory, typeof (ITestObject)); + IList names = ObjectFactoryUtils.ObjectNamesForTypeIncludingAncestors(_factory, typeof (ITestObject)); // includes 2 TestObjects from IFactoryObjects (DummyFactory definitions) Assert.AreEqual(4, names.Count); Assert.IsTrue(names.Contains("test")); @@ -116,7 +116,7 @@ namespace Spring.Objects.Factory DefaultListableObjectFactory child = new DefaultListableObjectFactory(root); child.RegisterObjectDefinition("excludeLocalObject", new RootObjectDefinition(typeof(Hashtable))); - IList names = ObjectFactoryUtils.ObjectNamesForTypeIncludingAncestors(child, typeof (ArrayList)); + IList names = ObjectFactoryUtils.ObjectNamesForTypeIncludingAncestors(child, typeof (ArrayList)); // "excludeLocalObject" matches on the parent, but not the local object definition Assert.AreEqual(0, names.Count); @@ -139,8 +139,8 @@ namespace Spring.Objects.Factory mocks.ReplayAll(); - string[] names = ObjectFactoryUtils.ObjectNamesForTypeIncludingAncestors(of, EXPECTEDTYPE); - Assert.AreEqual(5, names.Length); + IList names = ObjectFactoryUtils.ObjectNamesForTypeIncludingAncestors(of, EXPECTEDTYPE); + Assert.AreEqual(5, names.Count); Assert.AreEqual(new string[] { "objA", "objB", "objC", "obj2A", "obj2C" }, names); mocks.VerifyAll(); @@ -160,8 +160,8 @@ namespace Spring.Objects.Factory mocks.ReplayAll(); - string[] names = ObjectFactoryUtils.ObjectNamesForTypeIncludingAncestors(of, EXPECTEDTYPE, false, false); - Assert.AreEqual(5, names.Length); + IList names = ObjectFactoryUtils.ObjectNamesForTypeIncludingAncestors(of, EXPECTEDTYPE, false, false); + Assert.AreEqual(5, names.Count); Assert.AreEqual(new string[] { "objA", "objB", "objC", "obj2A", "obj2C" }, names); diff --git a/test/Spring/Spring.Core.Tests/Objects/Factory/Support/ChildObjectDefinitionTests.cs b/test/Spring/Spring.Core.Tests/Objects/Factory/Support/ChildObjectDefinitionTests.cs index b90a3c58..5cd5d457 100644 --- a/test/Spring/Spring.Core.Tests/Objects/Factory/Support/ChildObjectDefinitionTests.cs +++ b/test/Spring/Spring.Core.Tests/Objects/Factory/Support/ChildObjectDefinitionTests.cs @@ -65,7 +65,7 @@ namespace Spring.Objects.Factory.Support "ParentName property not initialized correctly by ctor."); Assert.IsNotNull(def.PropertyValues, "PropertyValues must be init'd to a non-null collection if not explicitly supplied."); - Assert.AreEqual(0, def.PropertyValues.PropertyValues.Length, + Assert.AreEqual(0, def.PropertyValues.PropertyValues.Count, "PropertyValues must be init'd to an empty collection if not explicitly supplied."); } } diff --git a/test/Spring/Spring.Core.Tests/Objects/Factory/Support/DefaultObjectDefinitionFactoryTests.cs b/test/Spring/Spring.Core.Tests/Objects/Factory/Support/DefaultObjectDefinitionFactoryTests.cs index ecb3e754..7666373d 100644 --- a/test/Spring/Spring.Core.Tests/Objects/Factory/Support/DefaultObjectDefinitionFactoryTests.cs +++ b/test/Spring/Spring.Core.Tests/Objects/Factory/Support/DefaultObjectDefinitionFactoryTests.cs @@ -44,7 +44,7 @@ namespace Spring.Objects.Factory.Support typeof (TestObject).FullName, null, AppDomain.CurrentDomain); Assert.IsNotNull(definition, "CreateObjectDefinition with no parent is returning null (it must never do so)."); Assert.AreEqual(typeof (TestObject), definition.ObjectType); - Assert.AreEqual(0, definition.PropertyValues.PropertyValues.Length, + Assert.AreEqual(0, definition.PropertyValues.PropertyValues.Count, "Must not have any property values as none were passed in."); Assert.AreEqual(0, definition.ConstructorArgumentValues.ArgumentCount, "Must not have any ctor args as none were passed in."); @@ -59,7 +59,7 @@ namespace Spring.Objects.Factory.Support typeof (TestObject).FullName, "Aimee Mann", AppDomain.CurrentDomain); Assert.IsNotNull(definition, "CreateObjectDefinition with no parent is returning null (it must never do so)."); Assert.AreEqual(typeof (TestObject), definition.ObjectType); - Assert.AreEqual(0, definition.PropertyValues.PropertyValues.Length, + Assert.AreEqual(0, definition.PropertyValues.PropertyValues.Count, "Must not have any property values as none were passed in."); Assert.AreEqual(0, definition.ConstructorArgumentValues.ArgumentCount, "Must not have any ctor args as none were passed in."); @@ -74,7 +74,7 @@ namespace Spring.Objects.Factory.Support typeof (TestObject).FullName, null, null); Assert.IsNotNull(definition, "CreateObjectDefinition with no parent is returning null (it must never do so)."); Assert.AreEqual(typeof (TestObject).FullName, definition.ObjectTypeName); - Assert.AreEqual(0, definition.PropertyValues.PropertyValues.Length, + Assert.AreEqual(0, definition.PropertyValues.PropertyValues.Count, "Must not have any property values as none were passed in."); Assert.AreEqual(0, definition.ConstructorArgumentValues.ArgumentCount, "Must not have any ctor args as none were passed in."); diff --git a/test/Spring/Spring.Core.Tests/Objects/Factory/Support/RootObjectDefinitionTests.cs b/test/Spring/Spring.Core.Tests/Objects/Factory/Support/RootObjectDefinitionTests.cs index 8b113d9e..a84d9f4e 100644 --- a/test/Spring/Spring.Core.Tests/Objects/Factory/Support/RootObjectDefinitionTests.cs +++ b/test/Spring/Spring.Core.Tests/Objects/Factory/Support/RootObjectDefinitionTests.cs @@ -89,7 +89,7 @@ namespace Spring.Objects.Factory.Support Assert.AreEqual( "Ohhh", def.ResourceDescription ); Assert.IsTrue( def.HasConstructorArgumentValues ); Assert.AreEqual( other.ConstructorArgumentValues.ArgumentCount, def.ConstructorArgumentValues.ArgumentCount ); - Assert.AreEqual( other.PropertyValues.PropertyValues.Length, def.PropertyValues.PropertyValues.Length ); + Assert.AreEqual( other.PropertyValues.PropertyValues.Count, def.PropertyValues.PropertyValues.Count ); Assert.AreEqual( other.EventHandlerValues.Events.Count, def.EventHandlerValues.Events.Count ); } @@ -148,14 +148,14 @@ namespace Spring.Objects.Factory.Support Assert.AreEqual( "InitChild", rod.InitMethodName ); Assert.AreEqual( "DestroyChild", rod.DestroyMethodName ); Assert.AreEqual( DependencyCheckingMode.None, rod.DependencyCheck ); - Assert.AreEqual( 4, rod.DependsOn.Length); + Assert.AreEqual( 4, rod.DependsOn.Count); Assert.AreEqual( false, rod.IsAbstract ); Assert.AreEqual( false, rod.IsLazyInit ); Assert.AreEqual( "ChildFactoryMethodName", rod.FactoryMethodName ); Assert.AreEqual( "ChildFactoryObjectName", rod.FactoryObjectName ); Assert.AreEqual( "ChildResourceDescription", rod.ResourceDescription ); Assert.AreEqual( 2, rod.ConstructorArgumentValues.ArgumentCount ); - Assert.AreEqual( 2, rod.PropertyValues.PropertyValues.Length ); + Assert.AreEqual( 2, rod.PropertyValues.PropertyValues.Count ); Assert.AreEqual( "Val1", rod.PropertyValues.GetPropertyValue("Prop1").Value); Assert.AreEqual( 50, rod.PropertyValues.GetPropertyValue("Age").Value); Assert.AreEqual( 2, rod.EventHandlerValues.Events.Count ); @@ -183,7 +183,7 @@ namespace Spring.Objects.Factory.Support "Must be empty if null was passed to the ctor." ); Assert.IsNotNull( def.PropertyValues, "Must never be null, but rather just empty." ); - Assert.AreEqual( 0, def.PropertyValues.PropertyValues.Length, + Assert.AreEqual( 0, def.PropertyValues.PropertyValues.Count, "Must be empty if null was passed to the ctor." ); } } diff --git a/test/Spring/Spring.Core.Tests/Objects/Factory/UnsupportedObjectDefinitionImplementation.cs b/test/Spring/Spring.Core.Tests/Objects/Factory/UnsupportedObjectDefinitionImplementation.cs index 7a9272a8..6e45ad54 100644 --- a/test/Spring/Spring.Core.Tests/Objects/Factory/UnsupportedObjectDefinitionImplementation.cs +++ b/test/Spring/Spring.Core.Tests/Objects/Factory/UnsupportedObjectDefinitionImplementation.cs @@ -19,6 +19,8 @@ #endregion using System; +using System.Collections.Generic; + using Spring.Objects.Factory.Config; using Spring.Objects.Factory.Support; @@ -109,7 +111,7 @@ namespace Spring.Objects.Factory get { throw new NotImplementedException(); } } - public string[] DependsOn + public IList DependsOn { get { throw new NotImplementedException(); } } diff --git a/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlListableObjectFactoryTests.cs b/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlListableObjectFactoryTests.cs index 44abdc76..c2b1987d 100644 --- a/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlListableObjectFactoryTests.cs +++ b/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlListableObjectFactoryTests.cs @@ -22,6 +22,8 @@ using System; using System.Collections; +using System.Collections.Generic; + using NUnit.Framework; using Spring.Objects.Factory.Config; using Spring.Objects.Factory.Support; @@ -83,11 +85,11 @@ namespace Spring.Objects.Factory.Xml protected void SetUp() { parent = new DefaultListableObjectFactory(); - IDictionary m = new Hashtable(); + IDictionary m = new Dictionary(); m["name"] = "Albert"; parent.RegisterObjectDefinition("father", new RootObjectDefinition(typeof (TestObject), new MutablePropertyValues(m))); - m = new Hashtable(); - m["name"] = "Roderick"; + m = new Dictionary(); + m["name"] = "Roderick"; parent.RegisterObjectDefinition("rod", new RootObjectDefinition(typeof (TestObject), new MutablePropertyValues(m))); // for testing dynamic ctor arguments + parent.GetObject() call propagation diff --git a/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlObjectCollectionTests.cs b/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlObjectCollectionTests.cs index e2088741..fa683b02 100644 --- a/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlObjectCollectionTests.cs +++ b/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlObjectCollectionTests.cs @@ -22,6 +22,7 @@ using System; using System.Collections; +using System.Collections.Generic; using System.IO; using System.Text; using Common.Logging; @@ -198,12 +199,12 @@ namespace Spring.Objects.Factory.Xml { IResource resource = new ReadOnlyXmlTestResource("collections.xml", GetType()); XmlObjectFactory xof = new XmlObjectFactory(resource); - IList objectNames = xof.GetObjectDefinitionNames(); + IList objectNames = xof.GetObjectDefinitionNames(); TestObject tb1 = (TestObject) xof.GetObject("aliased"); TestObject alias1 = (TestObject) xof.GetObject("myalias"); Assert.IsTrue(tb1 == alias1); - IList tb1Aliases = xof.GetAliases("aliased"); + IList tb1Aliases = xof.GetAliases("aliased"); Assert.AreEqual(1, tb1Aliases.Count); Assert.IsTrue(tb1Aliases.Contains("myalias")); Assert.IsTrue(objectNames.Contains("aliased")); @@ -214,7 +215,7 @@ namespace Spring.Objects.Factory.Xml TestObject alias3 = (TestObject) xof.GetObject("alias2"); Assert.IsTrue(tb2 == alias2); Assert.IsTrue(tb2 == alias3); - IList tb2Aliases = xof.GetAliases("multiAliased"); + IList tb2Aliases = xof.GetAliases("multiAliased"); Assert.AreEqual(2, tb2Aliases.Count); Assert.IsTrue(tb2Aliases.Contains("alias1")); Assert.IsTrue(tb2Aliases.Contains("alias2")); @@ -228,7 +229,7 @@ namespace Spring.Objects.Factory.Xml Assert.IsTrue(tb3 == alias4); Assert.IsTrue(tb3 == alias5); - IList tb3Aliases = xof.GetAliases("aliasWithoutId1"); + IList tb3Aliases = xof.GetAliases("aliasWithoutId1"); Assert.AreEqual(2, tb2Aliases.Count); Assert.IsTrue(tb3Aliases.Contains("aliasWithoutId2")); Assert.IsTrue(tb3Aliases.Contains("aliasWithoutId3")); diff --git a/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlObjectDefinitionReaderTests.cs b/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlObjectDefinitionReaderTests.cs index d3f14717..45aabde2 100644 --- a/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlObjectDefinitionReaderTests.cs +++ b/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlObjectDefinitionReaderTests.cs @@ -350,7 +350,7 @@ namespace Spring.Objects.Factory.Xml Assert.AreEqual(AutoWiringMode.No, od2.AutowireMode); Assert.AreEqual("init", od2.InitMethodName); Assert.AreEqual("destroy", od2.DestroyMethodName); - Assert.AreEqual(1, od2.DependsOn.Length); + Assert.AreEqual(1, od2.DependsOn.Count); Assert.AreEqual("test1", od2.DependsOn[0]); Assert.AreEqual(DependencyCheckingMode.Simple, od2.DependencyCheck); } diff --git a/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlObjectFactoryTests.cs b/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlObjectFactoryTests.cs index 65674bee..a4b772bd 100644 --- a/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlObjectFactoryTests.cs +++ b/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlObjectFactoryTests.cs @@ -459,9 +459,9 @@ namespace Spring.Objects.Factory.Xml "; stream = new MemoryStream(Encoding.UTF8.GetBytes(xml)); XmlObjectFactory factory = new XmlObjectFactory(new InputStreamResource(stream, string.Empty)); - string[] names = factory.GetObjectDefinitionNames(); + IList names = factory.GetObjectDefinitionNames(); // mmm, how is one to test this? I have no idea what the generated name is... - Assert.AreEqual(2, names.Length, "Should have got two object names, one of which is autogenerated."); + Assert.AreEqual(2, names.Count, "Should have got two object names, one of which is autogenerated."); } /// diff --git a/test/Spring/Spring.Core.Tests/Objects/MutablePropertyValuesTests.cs b/test/Spring/Spring.Core.Tests/Objects/MutablePropertyValuesTests.cs index 37aeb084..4fa0b848 100644 --- a/test/Spring/Spring.Core.Tests/Objects/MutablePropertyValuesTests.cs +++ b/test/Spring/Spring.Core.Tests/Objects/MutablePropertyValuesTests.cs @@ -20,8 +20,7 @@ #region Imports -using System; -using System.Collections; +using System.Collections.Generic; using NUnit.Framework; @@ -70,16 +69,16 @@ namespace Spring.Objects root.Add (new PropertyValue ("Name", "Fiona Apple")); root.Add (new PropertyValue ("Age", 24)); MutablePropertyValues props = new MutablePropertyValues (root); - Assert.AreEqual (2, props.PropertyValues.Length); + Assert.AreEqual (2, props.PropertyValues.Count); } [Test] public void InstantiationWithNulls () { - MutablePropertyValues props = new MutablePropertyValues ((IDictionary) null); - Assert.AreEqual (0, props.PropertyValues.Length); + MutablePropertyValues props = new MutablePropertyValues ((IDictionary) null); + Assert.AreEqual (0, props.PropertyValues.Count); MutablePropertyValues props2 = new MutablePropertyValues ((IPropertyValues) null); - Assert.AreEqual (0, props2.PropertyValues.Length); + Assert.AreEqual (0, props2.PropertyValues.Count); } [Test] @@ -89,7 +88,7 @@ namespace Spring.Objects props.AddAll (new PropertyValue [] { new PropertyValue ("Name", "Fiona Apple"), new PropertyValue ("Age", 24)}); - Assert.AreEqual (2, props.PropertyValues.Length); + Assert.AreEqual (2, props.PropertyValues.Count); } [Test] @@ -98,8 +97,8 @@ namespace Spring.Objects MutablePropertyValues props = new MutablePropertyValues (); props.Add (new PropertyValue ("Name", "Fiona Apple")); props.Add (new PropertyValue ("Age", 24)); - props.AddAll ((IList) null); - Assert.AreEqual (2, props.PropertyValues.Length); + props.AddAll ((IList) null); + Assert.AreEqual (2, props.PropertyValues.Count); } [Test] @@ -108,9 +107,9 @@ namespace Spring.Objects MutablePropertyValues props = new MutablePropertyValues (); props.Add (new PropertyValue ("Name", "Fiona Apple")); props.Add (new PropertyValue ("Age", 24)); - Assert.AreEqual (2, props.PropertyValues.Length); + Assert.AreEqual (2, props.PropertyValues.Count); props.Remove ("name"); - Assert.AreEqual (1, props.PropertyValues.Length); + Assert.AreEqual (1, props.PropertyValues.Count); } [Test] @@ -120,9 +119,9 @@ namespace Spring.Objects PropertyValue propName = new PropertyValue ("Name", "Fiona Apple"); props.Add (propName); props.Add (new PropertyValue ("Age", 24)); - Assert.AreEqual (2, props.PropertyValues.Length); + Assert.AreEqual (2, props.PropertyValues.Count); props.Remove (propName); - Assert.AreEqual (1, props.PropertyValues.Length); + Assert.AreEqual (1, props.PropertyValues.Count); } [Test] @@ -139,11 +138,11 @@ namespace Spring.Objects public void AddAllInMap () { MutablePropertyValues props = new MutablePropertyValues (); - IDictionary map = new Hashtable (); - map.Add ("Name", "Fiona Apple"); + IDictionary map = new Dictionary(); + map.Add("Name", "Fiona Apple"); map.Add ("Age", 24); props.AddAll (map); - Assert.AreEqual (2, props.PropertyValues.Length); + Assert.AreEqual (2, props.PropertyValues.Count); } [Test] @@ -151,15 +150,15 @@ namespace Spring.Objects { MutablePropertyValues props = new MutablePropertyValues (); props.Add (new PropertyValue ("Name", "Fiona Apple")); - props.AddAll ((IDictionary) null); - Assert.AreEqual (1, props.PropertyValues.Length); + props.AddAll ((IDictionary) null); + Assert.AreEqual (1, props.PropertyValues.Count); } [Test] public void ChangesSince () { - IDictionary map = new Hashtable (); - PropertyValue propName = new PropertyValue ("Name", "Fiona Apple"); + IDictionary map = new Dictionary(); + PropertyValue propName = new PropertyValue("Name", "Fiona Apple"); map.Add (propName.Name, propName.Value); map.Add ("Age", 24); MutablePropertyValues props = new MutablePropertyValues (map); @@ -168,13 +167,13 @@ namespace Spring.Objects // change the name... this is the change we'll be looking for newProps.SetPropertyValueAt (new PropertyValue (propName.Name, "Naomi Woolf"), 0); IPropertyValues changes = newProps.ChangesSince (props); - Assert.AreEqual (1, changes.PropertyValues.Length); + Assert.AreEqual (1, changes.PropertyValues.Count); // the name was changed, so its the name property that should be in the changed list Assert.IsTrue (changes.Contains ("name")); newProps.Add (new PropertyValue ("Commentator", "Naomi Woolf")); changes = newProps.ChangesSince (props); - Assert.AreEqual (2, changes.PropertyValues.Length); + Assert.AreEqual (2, changes.PropertyValues.Count); // the Commentator was added, so its the Commentator property that should be in the changed list Assert.IsTrue (changes.Contains ("commentator")); // the name was changed, so its the name property that should be in the changed list @@ -184,14 +183,14 @@ namespace Spring.Objects [Test] public void ChangesSinceWithSelf () { - IDictionary map = new Hashtable (); - map.Add ("Name", "Fiona Apple"); + IDictionary map = new Dictionary(); + map.Add("Name", "Fiona Apple"); map.Add ("Age", 24); MutablePropertyValues props = new MutablePropertyValues (map); props.Remove ("name"); // get all of the changes between self and self again (there should be none); IPropertyValues changes = props.ChangesSince (props); - Assert.AreEqual (0, changes.PropertyValues.Length); + Assert.AreEqual (0, changes.PropertyValues.Count); } } } diff --git a/test/Spring/Spring.Core.Tests/Util/DefensiveEventRaiserTests.cs b/test/Spring/Spring.Core.Tests/Util/DefensiveEventRaiserTests.cs index 8d792fb6..642b2d2e 100644 --- a/test/Spring/Spring.Core.Tests/Util/DefensiveEventRaiserTests.cs +++ b/test/Spring/Spring.Core.Tests/Util/DefensiveEventRaiserTests.cs @@ -62,7 +62,7 @@ namespace Spring.Util IEventExceptionsCollector exceptions = bru.OnPop( "Iron Brew", eventRaiser ); - Assert.AreEqual(1, exceptions.Exceptions.Length); + Assert.AreEqual(1, exceptions.Exceptions.Count); Assert.IsTrue(firstCall); Assert.IsTrue(secondCall); Assert.IsTrue(thirdCall); diff --git a/test/Spring/Spring.Core.Tests/Util/ReflectionUtilsTests.cs b/test/Spring/Spring.Core.Tests/Util/ReflectionUtilsTests.cs index a9989224..350a5b45 100644 --- a/test/Spring/Spring.Core.Tests/Util/ReflectionUtilsTests.cs +++ b/test/Spring/Spring.Core.Tests/Util/ReflectionUtilsTests.cs @@ -22,6 +22,7 @@ using System; using System.Collections; +using System.Collections.Generic; using System.Reflection; using System.Reflection.Emit; using System.Runtime.InteropServices; @@ -457,8 +458,8 @@ namespace Spring.Util public void ToInterfaceArrayFromType() { Type[] expected = new Type[] { typeof(IFoo), typeof(IBar) }; - Type[] actual = ReflectionUtils.ToInterfaceArray(typeof(IBar)); - Assert.AreEqual(expected.Length, actual.Length); + IList actual = ReflectionUtils.ToInterfaceArray(typeof(IBar)); + Assert.AreEqual(expected.Length, actual.Count); Assert.AreEqual(expected[0], actual[0]); Assert.AreEqual(expected[1], actual[1]); } diff --git a/test/Spring/Spring.Core.Tests/Util/StringUtilsTests.cs b/test/Spring/Spring.Core.Tests/Util/StringUtilsTests.cs index ce159cd4..f0a36836 100644 --- a/test/Spring/Spring.Core.Tests/Util/StringUtilsTests.cs +++ b/test/Spring/Spring.Core.Tests/Util/StringUtilsTests.cs @@ -21,7 +21,6 @@ #region Imports using System; -using System.Collections; using System.Collections.Generic; using NUnit.Framework; @@ -121,7 +120,7 @@ namespace Spring.Util Assert.AreEqual( ":Foo,:Bar", StringUtils.CollectionToCommaDelimitedString(arr)); - Assert.AreEqual("null", StringUtils.CollectionToCommaDelimitedString(null)); + Assert.AreEqual("null", StringUtils.CollectionToCommaDelimitedString(null)); } [Test] @@ -129,8 +128,8 @@ namespace Spring.Util { Foo[] arr = new Foo[] {new Foo("Foo"), new Foo("Bar")}; Assert.AreEqual( - ":Foo,:Bar", StringUtils.ArrayToCommaDelimitedString(arr)); - Assert.AreEqual("null", StringUtils.ArrayToCommaDelimitedString(null)); + ":Foo,:Bar", StringUtils.CollectionToCommaDelimitedString(arr)); + Assert.AreEqual("null", StringUtils.CollectionToCommaDelimitedString(null)); } [Test] diff --git a/test/Spring/Spring.Core.Tests/Validation/HelperClasses.cs b/test/Spring/Spring.Core.Tests/Validation/HelperClasses.cs index 31c761f4..d77d56d2 100644 --- a/test/Spring/Spring.Core.Tests/Validation/HelperClasses.cs +++ b/test/Spring/Spring.Core.Tests/Validation/HelperClasses.cs @@ -92,14 +92,14 @@ namespace Spring.Validation get { return this.objects.Count; } } - public string[] GetObjectDefinitionNames() + public IList GetObjectDefinitionNames() { - return new List(this.objects.Keys).ToArray(); + return new List(this.objects.Keys); } - public IObjectDefinition[] GetObjectDefinitions() + public IList GetObjectDefinitions() { - return new List(this.objects.Values).ToArray(); + return new List(this.objects.Values); } public bool ContainsObjectDefinition(string name) @@ -119,7 +119,7 @@ namespace Spring.Validation this.objects[name] = definition; } - public string[] GetAliases(string name) + public IList GetAliases(string name) { throw new NotImplementedException(); } diff --git a/test/Spring/Spring.Core.Tests/Validation/ValidationNamespaceParserTests.cs b/test/Spring/Spring.Core.Tests/Validation/ValidationNamespaceParserTests.cs index dcdd82bd..44e6b242 100644 --- a/test/Spring/Spring.Core.Tests/Validation/ValidationNamespaceParserTests.cs +++ b/test/Spring/Spring.Core.Tests/Validation/ValidationNamespaceParserTests.cs @@ -20,6 +20,7 @@ #region Imports +using System.Collections.Generic; using System.IO; using System.Xml; using NUnit.Framework; @@ -64,8 +65,8 @@ namespace Spring.Validation parser.ParseElement(element, parserContext); } } - IObjectDefinition[] defs = registry.GetObjectDefinitions(); - Assert.AreEqual(9, defs.Length); + IList defs = registry.GetObjectDefinitions(); + Assert.AreEqual(9, defs.Count); IObjectDefinition def = registry.GetObjectDefinition("destinationAirportValidator"); Assert.IsTrue(def.IsSingleton); diff --git a/test/Spring/Spring.Data.Tests/Data/Common/DbProviderFactoryTests.cs b/test/Spring/Spring.Data.Tests/Data/Common/DbProviderFactoryTests.cs index 5263ac65..1a35bbb0 100644 --- a/test/Spring/Spring.Data.Tests/Data/Common/DbProviderFactoryTests.cs +++ b/test/Spring/Spring.Data.Tests/Data/Common/DbProviderFactoryTests.cs @@ -19,6 +19,7 @@ #endregion using System; +using System.Collections.Generic; using System.Globalization; using System.Reflection; using System.Threading; @@ -217,8 +218,8 @@ namespace Spring.Data.Common //Initialize internal application context. factory DbProviderFactory.GetDbProvider("SqlServer-2.0"); IApplicationContext ctx = DbProviderFactory.ApplicationContext; - string[] dbProviderNames = ctx.GetObjectNamesForType(typeof(IDbProvider)); - Assert.IsTrue(dbProviderNames.Length > 0); + IList dbProviderNames = ctx.GetObjectNamesForType(typeof(IDbProvider)); + Assert.IsTrue(dbProviderNames.Count > 0); } diff --git a/test/Spring/Spring.Messaging.Nms.Tests/Messaging/Nms/Config/NmsNamespaceHandlerTests.cs b/test/Spring/Spring.Messaging.Nms.Tests/Messaging/Nms/Config/NmsNamespaceHandlerTests.cs index dd737519..ce0f5043 100644 --- a/test/Spring/Spring.Messaging.Nms.Tests/Messaging/Nms/Config/NmsNamespaceHandlerTests.cs +++ b/test/Spring/Spring.Messaging.Nms.Tests/Messaging/Nms/Config/NmsNamespaceHandlerTests.cs @@ -73,14 +73,14 @@ namespace Spring.Messaging.Nms.Config [Test] public void ObjectsCreated() { - IDictionary containers = ctx.GetObjectsOfType(); + IDictionary containers = ctx.GetObjects(); Assert.AreEqual(3, containers.Count); } [Test] public void ContainerConfiguration() { - IDictionary containers = ctx.GetObjectsOfType(); + IDictionary containers = ctx.GetObjects(); IConnectionFactory defaultConnectionFactory = (IConnectionFactory) ctx.GetObject(DEFAULT_CONNECTION_FACTORY); IConnectionFactory explicitConnectionFactory = (IConnectionFactory) ctx.GetObject(EXPLICIT_CONNECTION_FACTORY); diff --git a/test/Spring/Spring.Messaging.Tests/Messaging/Listener/Adapter/StandardReflectionMessageListenerAdapter.cs b/test/Spring/Spring.Messaging.Tests/Messaging/Listener/Adapter/StandardReflectionMessageListenerAdapter.cs index 7fe63a4c..8dbe64de 100644 --- a/test/Spring/Spring.Messaging.Tests/Messaging/Listener/Adapter/StandardReflectionMessageListenerAdapter.cs +++ b/test/Spring/Spring.Messaging.Tests/Messaging/Listener/Adapter/StandardReflectionMessageListenerAdapter.cs @@ -49,7 +49,7 @@ namespace Spring.Messaging.Listener.Adapter { throw new ListenerExecutionFailedException("Failed to invoke the target method '" + methodName + "' with arguments " + - StringUtils.ArrayToCommaDelimitedString(arguments)); + StringUtils.CollectionToCommaDelimitedString(arguments)); } try { @@ -62,7 +62,7 @@ namespace Spring.Messaging.Listener.Adapter { throw new ListenerExecutionFailedException("Failed to invoke the target method '" + methodName + "' with arguments " + - StringUtils.ArrayToCommaDelimitedString(arguments), e); + StringUtils.CollectionToCommaDelimitedString(arguments), e); } } } diff --git a/test/Spring/Spring.Services.Tests/ServiceModel/Config/ChannelFactoryObjectDefinitionParserTests.cs b/test/Spring/Spring.Services.Tests/ServiceModel/Config/ChannelFactoryObjectDefinitionParserTests.cs index ac1a5224..a16c82bf 100644 --- a/test/Spring/Spring.Services.Tests/ServiceModel/Config/ChannelFactoryObjectDefinitionParserTests.cs +++ b/test/Spring/Spring.Services.Tests/ServiceModel/Config/ChannelFactoryObjectDefinitionParserTests.cs @@ -104,7 +104,7 @@ namespace Spring.ServiceModel.Config IApplicationContext ctx = new XmlApplicationContext( ReadOnlyXmlTestResource.GetFilePath("ChannelFactoryObjectDefinitionParserTests.WithoutId.xml", this.GetType())); - IDictionary channels = ctx.GetObjectsOfType(); + IDictionary channels = ctx.GetObjects(); Assert.AreEqual(1, channels.Count); } diff --git a/test/Spring/Spring.Web.Tests/Objects/Factory/Support/WebObjectDefinitionFactoryTests.cs b/test/Spring/Spring.Web.Tests/Objects/Factory/Support/WebObjectDefinitionFactoryTests.cs index a71b3735..bbbf4413 100644 --- a/test/Spring/Spring.Web.Tests/Objects/Factory/Support/WebObjectDefinitionFactoryTests.cs +++ b/test/Spring/Spring.Web.Tests/Objects/Factory/Support/WebObjectDefinitionFactoryTests.cs @@ -50,7 +50,7 @@ namespace Spring.Objects.Factory.Support typeof(TestObject).FullName, null, AppDomain.CurrentDomain); Assert.IsNotNull(definition, "CreateObjectDefinition with no parent is returning null (it must never do so)."); Assert.AreEqual(typeof(TestObject), definition.ObjectType); - Assert.AreEqual(0, definition.PropertyValues.PropertyValues.Length, + Assert.AreEqual(0, definition.PropertyValues.PropertyValues.Count, "Must not have any property values as none were passed in."); Assert.AreEqual(0, definition.ConstructorArgumentValues.ArgumentCount, "Must not have any ctor args as none were passed in."); @@ -65,7 +65,7 @@ namespace Spring.Objects.Factory.Support typeof(TestObject).FullName, "Aimee Mann", AppDomain.CurrentDomain); Assert.IsNotNull(definition, "CreateObjectDefinition with no parent is returning null (it must never do so)."); Assert.AreEqual(typeof(TestObject), definition.ObjectType); - Assert.AreEqual(0, definition.PropertyValues.PropertyValues.Length, + Assert.AreEqual(0, definition.PropertyValues.PropertyValues.Count, "Must not have any property values as none were passed in."); Assert.AreEqual(0, definition.ConstructorArgumentValues.ArgumentCount, "Must not have any ctor args as none were passed in."); @@ -80,7 +80,7 @@ namespace Spring.Objects.Factory.Support typeof(TestObject).FullName, null, null); Assert.IsNotNull(definition, "CreateObjectDefinition with no parent is returning null (it must never do so)."); Assert.AreEqual(typeof(TestObject).FullName, definition.ObjectTypeName); - Assert.AreEqual(0, definition.PropertyValues.PropertyValues.Length, + Assert.AreEqual(0, definition.PropertyValues.PropertyValues.Count, "Must not have any property values as none were passed in."); Assert.AreEqual(0, definition.ConstructorArgumentValues.ArgumentCount, "Must not have any ctor args as none were passed in.");