diff --git a/BreakingChanges.txt b/BreakingChanges.txt
index 5f9eced68..35ab4666d 100644
--- a/BreakingChanges.txt
+++ b/BreakingChanges.txt
@@ -31,6 +31,37 @@ Changes (3.1 to 4.0)
4.0." The matching examples (Calculator, EmsQuickStart, WcfQuickStart and
Web.Extensions.Example) were removed too.
+5. Dependency floors were raised: Microsoft.Extensions.Logging.Abstractions 8.0.3,
+ Microsoft.Bcl.HashCode 6.0.0, Microsoft.Win32.Registry 5.0.0, System.CodeDom 8.0.0,
+ NHibernate 5.7.1, Quartz 3.22.9, and Microsoft.AspNet.Mvc and Microsoft.AspNet.WebApi.WebHost
+ 5.3.0 (Mvc/WebApi 5.3.0 brings Newtonsoft.Json 13 in place of the vulnerable 6.0.4).
+ Several assembly versions moved with these floors:
+
+ | Assembly | 3.1 | 4.0 |
+ |-------------------------------------------|----------|----------|
+ | Microsoft.Bcl.HashCode | 1.0.0.0 | 6.0.0.0 |
+ | Microsoft.Extensions.Logging.Abstractions | 8.0.0.0 | 8.0.0.3 |
+ | Quartz | 3.12.0.0 | 3.22.9.0 |
+ | NHibernate | 5.6.0.0 | 5.7.0.0 |
+ | System.Web.Mvc, System.Web.Http(.WebHost) | 5.2.7.0 | 5.3.0.0 |
+ | System.Net.Http.Formatting | 5.2.7.0 | 6.0.0.0 |
+ | Newtonsoft.Json (via WebApi) | 6.0.0.0 | 13.0.0.0 |
+
+ On .NET Framework, an application or library compiled against an older version needs
+ binding redirects to these. SDK-style projects with AutoGenerateBindingRedirects get them
+ generated. Classic web.config applications must add them, and the Mvc/WebApi NuGet packages
+ add their own. Microsoft.AspNet.WebApi.OData 5.x (OData v3) caps WebApi.Core below 5.3.0, so
+ restoring it next to Spring.Web.Mvc5 reports NU1608. It still runs on 5.3 through the
+ System.Web.Http redirect.
+
+6. On .NET Framework, Spring.Core no longer depends on the System.Configuration.ConfigurationManager,
+ System.CodeDom and Microsoft.Win32.Registry packages, because the framework provides those
+ APIs. Spring.Messaging's .NET Framework build drops the unused Experimental.System.Messaging.Signed
+ package; it always compiled against the framework's System.Messaging. The packages are still
+ referenced for the netstandard2.0 target.
+
+7. Spring.Aop no longer depends on Antlr3.Runtime.
+
Changes (3.0.x to 3.1)
========================
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 722c9497c..17ef47e9e 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -3,39 +3,42 @@
true
-
-
-
+
+
-
+
-
-
-
+
+
+
-
-
+
+
+
-
-
+
+
-
-
+
+
-
+
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/build-support/build/_build.csproj b/build-support/build/_build.csproj
index 5ce96c526..2a5f6c9d9 100644
--- a/build-support/build/_build.csproj
+++ b/build-support/build/_build.csproj
@@ -11,6 +11,8 @@
+
+
diff --git a/examples/Directory.Build.props b/examples/Directory.Build.props
index d64db1d4d..cb79ecb3c 100644
--- a/examples/Directory.Build.props
+++ b/examples/Directory.Build.props
@@ -2,6 +2,12 @@
+
+ true
+
$(MSBuildProjectName.Replace('.2010', ''))
$(CleanedProjectName)
diff --git a/examples/Spring/Spring.Mvc5QuickStart/Spring.Mvc5QuickStart/Spring.Mvc5QuickStart.csproj b/examples/Spring/Spring.Mvc5QuickStart/Spring.Mvc5QuickStart/Spring.Mvc5QuickStart.csproj
index b928615c5..fa5afa371 100644
--- a/examples/Spring/Spring.Mvc5QuickStart/Spring.Mvc5QuickStart/Spring.Mvc5QuickStart.csproj
+++ b/examples/Spring/Spring.Mvc5QuickStart/Spring.Mvc5QuickStart/Spring.Mvc5QuickStart.csproj
@@ -2,6 +2,10 @@
+
+ $(NoWarn);NU1608
Debug
AnyCPU
@@ -48,8 +52,10 @@
-
-
+
+
+
+
diff --git a/examples/Spring/Spring.Mvc5QuickStart/Spring.Mvc5QuickStart/Web.config b/examples/Spring/Spring.Mvc5QuickStart/Spring.Mvc5QuickStart/Web.config
index 4b9ee969b..7a66d92df 100644
--- a/examples/Spring/Spring.Mvc5QuickStart/Spring.Mvc5QuickStart/Web.config
+++ b/examples/Spring/Spring.Mvc5QuickStart/Spring.Mvc5QuickStart/Web.config
@@ -86,19 +86,19 @@
-
+
-
+
-
+
-
+
@@ -106,7 +106,7 @@
-
+
diff --git a/src/Spring/Spring.Aop/Spring.Aop.csproj b/src/Spring/Spring.Aop/Spring.Aop.csproj
index 4518c9452..9e4e96b16 100644
--- a/src/Spring/Spring.Aop/Spring.Aop.csproj
+++ b/src/Spring/Spring.Aop/Spring.Aop.csproj
@@ -5,10 +5,6 @@
Interfaces and classes that provide AOP support in Spring.Net
-
-
-
-
diff --git a/src/Spring/Spring.Core/Spring.Core.csproj b/src/Spring/Spring.Core/Spring.Core.csproj
index b5da943c1..bdb8e950b 100644
--- a/src/Spring/Spring.Core/Spring.Core.csproj
+++ b/src/Spring/Spring.Core/Spring.Core.csproj
@@ -6,7 +6,7 @@
219, 162, 618, 1591
-
+
@@ -22,17 +22,20 @@
+
-
-
-
+
+
+
+
+
diff --git a/src/Spring/Spring.Messaging/Spring.Messaging.csproj b/src/Spring/Spring.Messaging/Spring.Messaging.csproj
index 13a92b734..fa7ef3aa6 100644
--- a/src/Spring/Spring.Messaging/Spring.Messaging.csproj
+++ b/src/Spring/Spring.Messaging/Spring.Messaging.csproj
@@ -3,14 +3,14 @@
netstandard2.0;$(TargetFullFrameworkVersion)
Interfaces and classes that provide MSMQ 3.0 support in Spring.Net
-
+
-
+
diff --git a/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/CronTriggerObject.cs b/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/CronTriggerObject.cs
index 53b78079b..d78201c31 100644
--- a/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/CronTriggerObject.cs
+++ b/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/CronTriggerObject.cs
@@ -73,7 +73,7 @@ public virtual IDictionary JobDataAsMap
{
foreach (DictionaryEntry entry in value)
{
- JobDataMap.Put((string) entry.Key, entry.Value);
+ JobDataMap[(string) entry.Key] = entry.Value;
}
}
}
diff --git a/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/JobDetailObject.cs b/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/JobDetailObject.cs
index 98dcd0851..1d97a7398 100644
--- a/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/JobDetailObject.cs
+++ b/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/JobDetailObject.cs
@@ -88,7 +88,7 @@ public virtual IDictionary JobDataAsMap
foreach (DictionaryEntry entry in value)
{
- JobDataMap.Put((string) entry.Key, entry.Value);
+ JobDataMap[(string) entry.Key] = entry.Value;
}
}
}
@@ -216,7 +216,7 @@ public virtual void AfterPropertiesSet()
"to be able to handle an 'applicationContextJobDataKey'");
}
- JobDataMap.Put(applicationContextJobDataKey, applicationContext);
+ JobDataMap[applicationContextJobDataKey] = applicationContext;
}
}
}
diff --git a/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/MethodInvokingJobDetailFactoryObject.cs b/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/MethodInvokingJobDetailFactoryObject.cs
index 04be82914..21bd57804 100644
--- a/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/MethodInvokingJobDetailFactoryObject.cs
+++ b/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/MethodInvokingJobDetailFactoryObject.cs
@@ -256,7 +256,7 @@ public virtual void AfterPropertiesSet()
// Build JobDetail instance.
jobDetail = new JobDetailImpl(jobDetailName, group, jobType);
- jobDetail.JobDataMap.Put("methodInvoker", this);
+ jobDetail.JobDataMap["methodInvoker"] = this;
jobDetail.Durable = true;
// job listeners through configuration are no longer supported
diff --git a/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/SchedulerFactoryObject.cs b/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/SchedulerFactoryObject.cs
index 5439e877b..13d8c2a3e 100644
--- a/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/SchedulerFactoryObject.cs
+++ b/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/SchedulerFactoryObject.cs
@@ -730,9 +730,10 @@ private void PopulateSchedulerContext()
// Put specified objects into Scheduler context.
if (schedulerContextMap != null)
{
- var dictionary = schedulerContextMap.Cast()
- .ToDictionary(entry => entry.Key.ToString(), entry => entry.Value);
- scheduler.Context.PutAll(dictionary);
+ foreach (DictionaryEntry entry in schedulerContextMap)
+ {
+ scheduler.Context[entry.Key.ToString()] = entry.Value;
+ }
}
// Register IApplicationContext in Scheduler context.
@@ -744,7 +745,7 @@ private void PopulateSchedulerContext()
"to be able to handle an 'applicationContextSchedulerContextKey'");
}
- scheduler.Context.Put(applicationContextSchedulerContextKey, applicationContext);
+ scheduler.Context[applicationContextSchedulerContextKey] = applicationContext;
}
}
diff --git a/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/SimpleTriggerObject.cs b/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/SimpleTriggerObject.cs
index 9e8795dab..017631927 100644
--- a/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/SimpleTriggerObject.cs
+++ b/src/Spring/Spring.Scheduling.Quartz3/Scheduling/Quartz/SimpleTriggerObject.cs
@@ -80,7 +80,7 @@ public virtual IDictionary JobDataAsMap
{
foreach (DictionaryEntry entry in value)
{
- JobDataMap.Put((string) entry.Key, entry.Value);
+ JobDataMap[(string) entry.Key] = entry.Value;
}
}
}
diff --git a/test/Spring/Spring.Web.Tests/Data/Spring/Context/Support/WebApplicationContextTests/Web.Config b/test/Spring/Spring.Web.Tests/Data/Spring/Context/Support/WebApplicationContextTests/Web.Config
index 6539ba3df..2e95c4faa 100644
--- a/test/Spring/Spring.Web.Tests/Data/Spring/Context/Support/WebApplicationContextTests/Web.Config
+++ b/test/Spring/Spring.Web.Tests/Data/Spring/Context/Support/WebApplicationContextTests/Web.Config
@@ -48,11 +48,15 @@
-
+
+
+
+
+
-
+
diff --git a/test/Spring/Spring.Web.Tests/Data/Spring/Objects/Factory/Support/web.config b/test/Spring/Spring.Web.Tests/Data/Spring/Objects/Factory/Support/web.config
index 5f2a3e44f..becc0293e 100644
--- a/test/Spring/Spring.Web.Tests/Data/Spring/Objects/Factory/Support/web.config
+++ b/test/Spring/Spring.Web.Tests/Data/Spring/Objects/Factory/Support/web.config
@@ -10,11 +10,15 @@
-
+
+
+
+
+
-
+
diff --git a/test/Spring/Spring.Web.Tests/Data/Spring/Web/Support/LocalResourceManagerTests/Web.Config b/test/Spring/Spring.Web.Tests/Data/Spring/Web/Support/LocalResourceManagerTests/Web.Config
index 6a984cf74..87ef6826f 100644
--- a/test/Spring/Spring.Web.Tests/Data/Spring/Web/Support/LocalResourceManagerTests/Web.Config
+++ b/test/Spring/Spring.Web.Tests/Data/Spring/Web/Support/LocalResourceManagerTests/Web.Config
@@ -50,11 +50,15 @@
-
+
+
+
+
+
-
+
diff --git a/test/Spring/Spring.Web.Tests/Data/Spring/Web/Support/PageHandlerFactoryTests/web.config b/test/Spring/Spring.Web.Tests/Data/Spring/Web/Support/PageHandlerFactoryTests/web.config
index 5f2a3e44f..becc0293e 100644
--- a/test/Spring/Spring.Web.Tests/Data/Spring/Web/Support/PageHandlerFactoryTests/web.config
+++ b/test/Spring/Spring.Web.Tests/Data/Spring/Web/Support/PageHandlerFactoryTests/web.config
@@ -10,11 +10,15 @@
-
+
+
+
+
+
-
+