From 8eb9a86a203c866d8a1a089c7b8d403c5055a450 Mon Sep 17 00:00:00 2001 From: thorstenbaek Date: Wed, 22 Jul 2015 14:45:03 +0200 Subject: [PATCH 1/2] Added OrderComparer to embeddedValueResolvers SortedSet --- .../Factory/Support/AbstractObjectFactory.cs | 2 +- .../FirstPropertyPlaceholderConfigurer.xml | 34 +++++++++++++++++++ .../SecondPropertyPlaceholderConfigurer.xml | 29 ++++++++++++++++ .../PropertyPlaceholderConfigurerTests.cs | 16 +++++++++ .../Spring.Core.Tests.2010.csproj | 2 ++ 5 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 test/Spring/Spring.Core.Tests/Data/Spring/Objects/Factory/Config/FirstPropertyPlaceholderConfigurer.xml create mode 100644 test/Spring/Spring.Core.Tests/Data/Spring/Objects/Factory/Config/SecondPropertyPlaceholderConfigurer.xml diff --git a/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectFactory.cs b/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectFactory.cs index 1b990cc9b..7d7d05bbd 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 OrderComparator()); /// /// 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 @@ + + From 9fcf18fe5bf9f1a44090450497c20aa12373ff91 Mon Sep 17 00:00:00 2001 From: thorstenbaek Date: Thu, 23 Jul 2015 11:28:54 +0200 Subject: [PATCH 2/2] Changed OrderComparator to ObjectOrderComparator --- .../Objects/Factory/Support/AbstractObjectFactory.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectFactory.cs b/src/Spring/Spring.Core/Objects/Factory/Support/AbstractObjectFactory.cs index 7d7d05bbd..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(new OrderComparator()); + private ISet embeddedValueResolvers = new SortedSet(new ObjectOrderComparator()); /// /// Indicates whether any IInstantiationAwareBeanPostProcessors have been registered