diff --git a/eng/Dependencies.props b/eng/Dependencies.props index d921c3eb09..a17d547052 100644 --- a/eng/Dependencies.props +++ b/eng/Dependencies.props @@ -46,6 +46,7 @@ and are generated based on the last package release. + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a025412225..2d7ac67533 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -113,6 +113,10 @@ https://github.com/dotnet/runtime 533e9b7dbb5ab9f63e74f95d8cae78171dafc31f + + https://github.com/dotnet/runtime + 533e9b7dbb5ab9f63e74f95d8cae78171dafc31f + https://github.com/dotnet/runtime 533e9b7dbb5ab9f63e74f95d8cae78171dafc31f diff --git a/eng/Versions.props b/eng/Versions.props index aa986aaf2b..04cd3ec25f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -90,6 +90,7 @@ 5.0.0-preview.7.20314.1 5.0.0-preview.7.20314.1 5.0.0-preview.7.20314.1 + 5.0.0-preview.7.20314.1 5.0.0-preview.7.20314.1 5.0.0-preview.7.20314.1 5.0.0-preview.7.20314.1 diff --git a/src/Hosting/TestHost/src/Microsoft.AspNetCore.TestHost.csproj b/src/Hosting/TestHost/src/Microsoft.AspNetCore.TestHost.csproj index 4d4d45655f..4afca002df 100644 --- a/src/Hosting/TestHost/src/Microsoft.AspNetCore.TestHost.csproj +++ b/src/Hosting/TestHost/src/Microsoft.AspNetCore.TestHost.csproj @@ -12,8 +12,7 @@ - - + diff --git a/src/Mvc/Mvc.Testing/src/Microsoft.AspNetCore.Mvc.Testing.csproj b/src/Mvc/Mvc.Testing/src/Microsoft.AspNetCore.Mvc.Testing.csproj index 1df0843175..dbcf0c5595 100644 --- a/src/Mvc/Mvc.Testing/src/Microsoft.AspNetCore.Mvc.Testing.csproj +++ b/src/Mvc/Mvc.Testing/src/Microsoft.AspNetCore.Mvc.Testing.csproj @@ -17,8 +17,7 @@ - - + diff --git a/src/Shared/HostFactoryResolver/HostFactoryResolver.cs b/src/Shared/HostFactoryResolver/HostFactoryResolver.cs deleted file mode 100644 index cb9f811237..0000000000 --- a/src/Shared/HostFactoryResolver/HostFactoryResolver.cs +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Reflection; - -namespace Microsoft.Extensions.Hosting -{ - internal class HostFactoryResolver - { - public static readonly string BuildWebHost = nameof(BuildWebHost); - public static readonly string CreateWebHostBuilder = nameof(CreateWebHostBuilder); - public static readonly string CreateHostBuilder = nameof(CreateHostBuilder); - - public static Func ResolveWebHostFactory(Assembly assembly) - { - return ResolveFactory(assembly, BuildWebHost); - } - - public static Func ResolveWebHostBuilderFactory(Assembly assembly) - { - return ResolveFactory(assembly, CreateWebHostBuilder); - } - - public static Func ResolveHostBuilderFactory(Assembly assembly) - { - return ResolveFactory(assembly, CreateHostBuilder); - } - - private static Func ResolveFactory(Assembly assembly, string name) - { - var programType = assembly?.EntryPoint?.DeclaringType; - if (programType == null) - { - return null; - } - - var factory = programType.GetTypeInfo().GetDeclaredMethod(name); - if (!IsFactory(factory)) - { - return null; - } - - return args => (T)factory.Invoke(null, new object[] { args }); - } - - // TReturn Factory(string[] args); - private static bool IsFactory(MethodInfo factory) - { - return factory != null - && typeof(TReturn).IsAssignableFrom(factory.ReturnType) - && factory.GetParameters().Length == 1 - && typeof(string[]).Equals(factory.GetParameters()[0].ParameterType); - } - - // Used by EF tooling without any Hosting references. Looses some return type safety checks. - public static Func ResolveServiceProviderFactory(Assembly assembly) - { - // Prefer the older patterns by default for back compat. - var webHostFactory = ResolveWebHostFactory(assembly); - if (webHostFactory != null) - { - return args => - { - var webHost = webHostFactory(args); - return GetServiceProvider(webHost); - }; - } - - var webHostBuilderFactory = ResolveWebHostBuilderFactory(assembly); - if (webHostBuilderFactory != null) - { - return args => - { - var webHostBuilder = webHostBuilderFactory(args); - var webHost = Build(webHostBuilder); - return GetServiceProvider(webHost); - }; - } - - var hostBuilderFactory = ResolveHostBuilderFactory(assembly); - if (hostBuilderFactory != null) - { - return args => - { - var hostBuilder = hostBuilderFactory(args); - var host = Build(hostBuilder); - return GetServiceProvider(host); - }; - } - - return null; - } - - private static object Build(object builder) - { - var buildMethod = builder.GetType().GetMethod("Build"); - return buildMethod?.Invoke(builder, Array.Empty()); - } - - private static IServiceProvider GetServiceProvider(object host) - { - if (host == null) - { - return null; - } - var hostType = host.GetType(); - var servicesProperty = hostType.GetTypeInfo().GetDeclaredProperty("Services"); - return (IServiceProvider)servicesProperty.GetValue(host); - } - } -} diff --git a/src/Shared/test/Shared.Tests/HostFactoryResolverTests.cs b/src/Shared/test/Shared.Tests/HostFactoryResolverTests.cs deleted file mode 100644 index 3301687ee4..0000000000 --- a/src/Shared/test/Shared.Tests/HostFactoryResolverTests.cs +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using MockHostTypes; -using System; -using Xunit; - -namespace Microsoft.Extensions.Hosting.Tests -{ - public class HostFactoryResolverTests - { - [Fact] - public void BuildWebHostPattern_CanFindWebHost() - { - var factory = HostFactoryResolver.ResolveWebHostFactory(typeof(BuildWebHostPatternTestSite.Program).Assembly); - - Assert.NotNull(factory); - Assert.IsAssignableFrom(factory(Array.Empty())); - } - - [Fact] - public void BuildWebHostPattern_CanFindServiceProvider() - { - var factory = HostFactoryResolver.ResolveServiceProviderFactory(typeof(BuildWebHostPatternTestSite.Program).Assembly); - - Assert.NotNull(factory); - Assert.IsAssignableFrom(factory(Array.Empty())); - } - - [Fact] - public void BuildWebHostPattern__Invalid_CantFindWebHost() - { - var factory = HostFactoryResolver.ResolveWebHostFactory(typeof(BuildWebHostInvalidSignature.Program).Assembly); - - Assert.Null(factory); - } - - [Fact] - public void BuildWebHostPattern__Invalid_CantFindServiceProvider() - { - var factory = HostFactoryResolver.ResolveServiceProviderFactory(typeof(BuildWebHostInvalidSignature.Program).Assembly); - - Assert.Null(factory); - } - - [Fact] - public void CreateWebHostBuilderPattern_CanFindWebHostBuilder() - { - var factory = HostFactoryResolver.ResolveWebHostBuilderFactory(typeof(CreateWebHostBuilderPatternTestSite.Program).Assembly); - - Assert.NotNull(factory); - Assert.IsAssignableFrom(factory(Array.Empty())); - } - - [Fact] - public void CreateWebHostBuilderPattern_CanFindServiceProvider() - { - var factory = HostFactoryResolver.ResolveServiceProviderFactory(typeof(CreateWebHostBuilderPatternTestSite.Program).Assembly); - - Assert.NotNull(factory); - Assert.IsAssignableFrom(factory(Array.Empty())); - } - - [Fact] - public void CreateWebHostBuilderPattern__Invalid_CantFindWebHostBuilder() - { - var factory = HostFactoryResolver.ResolveWebHostBuilderFactory(typeof(CreateWebHostBuilderInvalidSignature.Program).Assembly); - - Assert.Null(factory); - } - - [Fact] - public void CreateWebHostBuilderPattern__InvalidReturnType_CanFindServiceProvider() - { - var factory = HostFactoryResolver.ResolveServiceProviderFactory(typeof(CreateWebHostBuilderInvalidSignature.Program).Assembly); - - Assert.NotNull(factory); - Assert.Null(factory(Array.Empty())); - - } - - [Fact] - public void CreateHostBuilderPattern_CanFindHostBuilder() - { - var factory = HostFactoryResolver.ResolveHostBuilderFactory(typeof(CreateHostBuilderPatternTestSite.Program).Assembly); - - Assert.NotNull(factory); - Assert.IsAssignableFrom(factory(Array.Empty())); - } - - [Fact] - public void CreateHostBuilderPattern_CanFindServiceProvider() - { - var factory = HostFactoryResolver.ResolveServiceProviderFactory(typeof(CreateHostBuilderPatternTestSite.Program).Assembly); - - Assert.NotNull(factory); - Assert.IsAssignableFrom(factory(Array.Empty())); - } - - [Fact] - public void CreateHostBuilderPattern__Invalid_CantFindHostBuilder() - { - var factory = HostFactoryResolver.ResolveHostBuilderFactory(typeof(CreateHostBuilderInvalidSignature.Program).Assembly); - - Assert.Null(factory); - } - - [Fact] - public void CreateHostBuilderPattern__Invalid_CantFindServiceProvider() - { - var factory = HostFactoryResolver.ResolveServiceProviderFactory(typeof(CreateHostBuilderInvalidSignature.Program).Assembly); - - Assert.Null(factory); - } - } -} diff --git a/src/Shared/test/Shared.Tests/Microsoft.AspNetCore.Shared.Tests.csproj b/src/Shared/test/Shared.Tests/Microsoft.AspNetCore.Shared.Tests.csproj index b80599128b..5ddf506315 100644 --- a/src/Shared/test/Shared.Tests/Microsoft.AspNetCore.Shared.Tests.csproj +++ b/src/Shared/test/Shared.Tests/Microsoft.AspNetCore.Shared.Tests.csproj @@ -14,7 +14,6 @@ - diff --git a/src/Tools/GetDocumentInsider/src/GetDocumentInsider.csproj b/src/Tools/GetDocumentInsider/src/GetDocumentInsider.csproj index 7f61a987b3..ee962cbe7e 100644 --- a/src/Tools/GetDocumentInsider/src/GetDocumentInsider.csproj +++ b/src/Tools/GetDocumentInsider/src/GetDocumentInsider.csproj @@ -15,9 +15,9 @@ + -