From bd5c07d66a48770efe0499d4356c8217af94858d Mon Sep 17 00:00:00 2001 From: Glenn Condron Date: Fri, 21 Nov 2014 17:04:04 -0800 Subject: [PATCH] Move default hosting environment code --- .../ConfigureHostingEnvironment.cs | 13 +++++---- .../HostingEnvironment.cs | 3 ++ .../HostingServices.cs | 1 + src/Microsoft.AspNet.Hosting/Program.cs | 10 ++----- src/Microsoft.AspNet.TestHost/TestServer.cs | 10 +------ .../Microsoft.AspNet.Hosting.Tests.kproj | 29 ++++++++++--------- .../Microsoft.AspNet.TestHost.Tests.kproj | 29 ++++++++++--------- 7 files changed, 44 insertions(+), 51 deletions(-) diff --git a/src/Microsoft.AspNet.Hosting/ConfigureHostingEnvironment.cs b/src/Microsoft.AspNet.Hosting/ConfigureHostingEnvironment.cs index 399054f2cd..420b731122 100644 --- a/src/Microsoft.AspNet.Hosting/ConfigureHostingEnvironment.cs +++ b/src/Microsoft.AspNet.Hosting/ConfigureHostingEnvironment.cs @@ -1,22 +1,23 @@ // Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - using System; +using Microsoft.Framework.ConfigurationModel; namespace Microsoft.AspNet.Hosting { - public class ConfigureHostingEnvironment : IConfigureHostingEnvironment + internal class ConfigureHostingEnvironment : IConfigureHostingEnvironment { - private readonly Action _action; + private IConfiguration _config; + private const string EnvironmentKey = "KRE_ENV"; - public ConfigureHostingEnvironment(Action configure) + public ConfigureHostingEnvironment(IConfiguration config) { - _action = configure; + _config = config; } public void Configure(IHostingEnvironment hostingEnv) { - _action.Invoke(hostingEnv); + hostingEnv.EnvironmentName = _config.Get(EnvironmentKey) ?? hostingEnv.EnvironmentName; } } } \ No newline at end of file diff --git a/src/Microsoft.AspNet.Hosting/HostingEnvironment.cs b/src/Microsoft.AspNet.Hosting/HostingEnvironment.cs index 0b0550d888..f137f2ae5b 100644 --- a/src/Microsoft.AspNet.Hosting/HostingEnvironment.cs +++ b/src/Microsoft.AspNet.Hosting/HostingEnvironment.cs @@ -8,9 +8,12 @@ namespace Microsoft.AspNet.Hosting { public class HostingEnvironment : IHostingEnvironment { + private const string DefaultEnvironmentName = "Development"; + public HostingEnvironment(IApplicationEnvironment appEnv, IEnumerable configures) { WebRoot = HostingUtilities.GetWebRoot(appEnv.ApplicationBasePath); + EnvironmentName = DefaultEnvironmentName; foreach (var configure in configures) { configure.Configure(this); diff --git a/src/Microsoft.AspNet.Hosting/HostingServices.cs b/src/Microsoft.AspNet.Hosting/HostingServices.cs index 8d2d015ea5..605453f2e9 100644 --- a/src/Microsoft.AspNet.Hosting/HostingServices.cs +++ b/src/Microsoft.AspNet.Hosting/HostingServices.cs @@ -40,6 +40,7 @@ namespace Microsoft.AspNet.Hosting var services = Import(fallbackServices); services.Add(GetDefaultServices(configuration)); services.AddSingleton(sp => new HostingManifest(fallbackServices)); + services.AddInstance(new ConfigureHostingEnvironment(configuration)); return services; } diff --git a/src/Microsoft.AspNet.Hosting/Program.cs b/src/Microsoft.AspNet.Hosting/Program.cs index ba69bab638..4776c41223 100644 --- a/src/Microsoft.AspNet.Hosting/Program.cs +++ b/src/Microsoft.AspNet.Hosting/Program.cs @@ -15,8 +15,6 @@ namespace Microsoft.AspNet.Hosting public class Program { private const string HostingIniFile = "Microsoft.AspNet.Hosting.ini"; - private const string DefaultEnvironmentName = "Development"; - private const string EnvironmentKey = "KRE_ENV"; private readonly IServiceProvider _serviceProvider; @@ -37,12 +35,8 @@ namespace Microsoft.AspNet.Hosting config.AddEnvironmentVariables(); config.AddCommandLine(args); - var serviceCollection = HostingServices.Create(_serviceProvider, config); - serviceCollection.AddInstance(new ConfigureHostingEnvironment(env => - { - env.EnvironmentName = config.Get(EnvironmentKey) ?? DefaultEnvironmentName; - })); - var services = serviceCollection.BuildServiceProvider(); + var services = HostingServices.Create(_serviceProvider, config) + .BuildServiceProvider(); var appEnv = services.GetRequiredService(); var hostingEnv = services.GetRequiredService(); diff --git a/src/Microsoft.AspNet.TestHost/TestServer.cs b/src/Microsoft.AspNet.TestHost/TestServer.cs index 9e88b16b58..97e848033a 100644 --- a/src/Microsoft.AspNet.TestHost/TestServer.cs +++ b/src/Microsoft.AspNet.TestHost/TestServer.cs @@ -54,10 +54,7 @@ namespace Microsoft.AspNet.TestHost public static TestServer Create(IServiceProvider serviceProvider, Action app) { - var services = HostingServices.Create(serviceProvider); - services.AddSingleton(); - - var appServices = services.BuildServiceProvider(); + var appServices = HostingServices.Create(serviceProvider).BuildServiceProvider(); var config = new Configuration(); return new TestServer(config, appServices, app); } @@ -127,10 +124,5 @@ namespace Microsoft.AspNet.TestHost get { return TestServer.ServerName; } } } - - private class ConfigureTestHostingEnvironment : ConfigureHostingEnvironment - { - public ConfigureTestHostingEnvironment() : base(env => env.EnvironmentName = DefaultEnvironmentName) { } - } } } diff --git a/test/Microsoft.AspNet.Hosting.Tests/Microsoft.AspNet.Hosting.Tests.kproj b/test/Microsoft.AspNet.Hosting.Tests/Microsoft.AspNet.Hosting.Tests.kproj index 95b1cc35f3..247779b53f 100644 --- a/test/Microsoft.AspNet.Hosting.Tests/Microsoft.AspNet.Hosting.Tests.kproj +++ b/test/Microsoft.AspNet.Hosting.Tests/Microsoft.AspNet.Hosting.Tests.kproj @@ -1,14 +1,15 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - d4f18d58-52b1-435d-a012-10f2cdf158c4 - ..\..\artifacts\obj\$(MSBuildProjectName) - ..\..\artifacts\bin\$(MSBuildProjectName)\ - - - + + + + 14.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + 50390 + + + + d4f18d58-52b1-435d-a012-10f2cdf158c4 + ..\..\artifacts\obj\$(MSBuildProjectName) + ..\..\artifacts\bin\$(MSBuildProjectName)\ + + + \ No newline at end of file diff --git a/test/Microsoft.AspNet.TestHost.Tests/Microsoft.AspNet.TestHost.Tests.kproj b/test/Microsoft.AspNet.TestHost.Tests/Microsoft.AspNet.TestHost.Tests.kproj index 259cc5243d..be290d126c 100644 --- a/test/Microsoft.AspNet.TestHost.Tests/Microsoft.AspNet.TestHost.Tests.kproj +++ b/test/Microsoft.AspNet.TestHost.Tests/Microsoft.AspNet.TestHost.Tests.kproj @@ -1,14 +1,15 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - 0acb2719-9484-49b5-b8e3-117091192511 - ..\..\artifacts\obj\$(MSBuildProjectName) - ..\..\artifacts\bin\$(MSBuildProjectName)\ - - - + + + + 14.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + 50389 + + + + 0acb2719-9484-49b5-b8e3-117091192511 + ..\..\artifacts\obj\$(MSBuildProjectName) + ..\..\artifacts\bin\$(MSBuildProjectName)\ + + + \ No newline at end of file