diff --git a/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectFactory.cs b/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectFactory.cs index 1b990cc9b..3671f31a9 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectFactory.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectFactory.cs @@ -1685,7 +1685,7 @@ protected object TemporarySingletonPlaceHolder /// /// String Resolver applied to Autowired value injections /// - private ISet embeddedValueResolvers = new SortedSet(); + private ISet embeddedValueResolvers = new SortedSet(new ObjectOrderComparator()); /// /// Indicates whether any IInstantiationAwareBeanPostProcessors have been registered diff --git a/test/Spring/Spring.Core.Tests/Data/Spring/Objects/Factory/Config/FirstPropertyPlaceholderConfigurer.xml b/test/Spring/Spring.Core.Tests/Data/Spring/Objects/Factory/Config/FirstPropertyPlaceholderConfigurer.xml new file mode 100644 index 000000000..a486550ec --- /dev/null +++ b/test/Spring/Spring.Core.Tests/Data/Spring/Objects/Factory/Config/FirstPropertyPlaceholderConfigurer.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/Spring/Spring.Core.Tests/Data/Spring/Objects/Factory/Config/SecondPropertyPlaceholderConfigurer.xml b/test/Spring/Spring.Core.Tests/Data/Spring/Objects/Factory/Config/SecondPropertyPlaceholderConfigurer.xml new file mode 100644 index 000000000..0d5c4ed15 --- /dev/null +++ b/test/Spring/Spring.Core.Tests/Data/Spring/Objects/Factory/Config/SecondPropertyPlaceholderConfigurer.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/Spring/Spring.Core.Tests/Objects/Factory/Config/PropertyPlaceholderConfigurerTests.cs b/test/Spring/Spring.Core.Tests/Objects/Factory/Config/PropertyPlaceholderConfigurerTests.cs index dd02a3c24..205c23bf8 100644 --- a/test/Spring/Spring.Core.Tests/Objects/Factory/Config/PropertyPlaceholderConfigurerTests.cs +++ b/test/Spring/Spring.Core.Tests/Objects/Factory/Config/PropertyPlaceholderConfigurerTests.cs @@ -635,5 +635,21 @@ public void WithTypes() Assert.AreEqual(2, to.Computers.Count); Assert.IsTrue(to.PeriodicTable.Contains("C")); } + + [Test] + public void WithMultipleXml_MultiplePropertyPlaceholderConfigurersAndOrder_CanReplaceValueFromOtherXml() + { + var context = + new XmlApplicationContext( + new[] + { + "file://Spring/Objects/Factory/Config/FirstPropertyPlaceholderConfigurer.xml", + "file://Spring/Objects/Factory/Config/SecondPropertyPlaceholderConfigurer.xml" + }); + + var testObject = context.GetObject("testObject"); + + Assert.AreEqual("correct_name", testObject.Name); + } } } diff --git a/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2010.csproj b/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2010.csproj index c9f8b9c70..3316ffa63 100644 --- a/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2010.csproj +++ b/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2010.csproj @@ -872,6 +872,8 @@ + +