diff --git a/src/Orchard.Specs/Bindings/WebAppHosting.cs b/src/Orchard.Specs/Bindings/WebAppHosting.cs index 66e848aea..3d98e163e 100644 --- a/src/Orchard.Specs/Bindings/WebAppHosting.cs +++ b/src/Orchard.Specs/Bindings/WebAppHosting.cs @@ -14,10 +14,10 @@ using HtmlAgilityPack; using log4net.Appender; using log4net.Core; using log4net.Repository; +using NUnit.Framework; using Orchard.Specs.Hosting; using Orchard.Specs.Util; using TechTalk.SpecFlow; -using NUnit.Framework; namespace Orchard.Specs.Bindings { [Binding] @@ -27,6 +27,9 @@ namespace Orchard.Specs.Bindings { private HtmlDocument _doc; private MessageSink _messages; + public WebAppHosting() { + } + public WebHost Host { get { return _webHost; } } @@ -36,6 +39,14 @@ namespace Orchard.Specs.Bindings { set { _details = value; } } + [AfterScenario] + public void AfterScenario() { + if (_webHost != null) { + _webHost.Dispose(); + _webHost = null; + } + } + [Given(@"I have a clean site")] public void GivenIHaveACleanSite() { GivenIHaveACleanSiteBasedOn("Orchard.Web"); diff --git a/src/Orchard.Specs/Hosting/WebHost.cs b/src/Orchard.Specs/Hosting/WebHost.cs index d19119483..0ddb11405 100644 --- a/src/Orchard.Specs/Hosting/WebHost.cs +++ b/src/Orchard.Specs/Hosting/WebHost.cs @@ -44,6 +44,13 @@ namespace Orchard.Specs.Hosting { } + public void Dispose() { + if (_webHostAgent != null) { + _webHostAgent.Shutdown(); + _webHostAgent = null; + } + } + public void CopyExtension(string extensionFolder, string extensionName) { var sourceModule = _orchardWebPath.Combine(extensionFolder).Combine(extensionName); var targetModule = _tempSite.Combine(extensionFolder).Combine(extensionName); @@ -73,6 +80,5 @@ namespace Orchard.Specs.Hosting { fieldInfo.SetValue(to, value); } } - } } \ No newline at end of file diff --git a/src/Orchard.Specs/Hosting/WebHostAgent.cs b/src/Orchard.Specs/Hosting/WebHostAgent.cs index e7cb96889..fbff0ebb7 100644 --- a/src/Orchard.Specs/Hosting/WebHostAgent.cs +++ b/src/Orchard.Specs/Hosting/WebHostAgent.cs @@ -1,4 +1,5 @@ using System; +using System.Web.Hosting; namespace Orchard.Specs.Hosting { public class WebHostAgent : MarshalByRefObject @@ -8,5 +9,9 @@ namespace Orchard.Specs.Hosting { shuttle.Delegate(); return shuttle; } + + public void Shutdown() { + HostingEnvironment.InitiateShutdown(); + } } -} \ No newline at end of file +} diff --git a/src/Orchard.Specs/Orchard.Specs.csproj b/src/Orchard.Specs/Orchard.Specs.csproj index 82880b9a0..4ca4f89c1 100644 --- a/src/Orchard.Specs/Orchard.Specs.csproj +++ b/src/Orchard.Specs/Orchard.Specs.csproj @@ -284,9 +284,6 @@ Orchard - - - Always diff --git a/src/Tools/Orchard/ApplicationObject.cs b/src/Tools/Orchard/ApplicationObject.cs new file mode 100644 index 000000000..d1755945c --- /dev/null +++ b/src/Tools/Orchard/ApplicationObject.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Orchard { + public class ApplicationObject { + public string ApplicationId { get; set; } + public object ObjectInstance { get; set; } + } +} diff --git a/src/Tools/Orchard/Host/CommandHost.cs b/src/Tools/Orchard/Host/CommandHost.cs index 5d3268db4..1620ffe7a 100644 --- a/src/Tools/Orchard/Host/CommandHost.cs +++ b/src/Tools/Orchard/Host/CommandHost.cs @@ -18,7 +18,7 @@ namespace Orchard.Host { } public void Stop(bool immediate) { - //TODO + HostingEnvironment.UnregisterObject(this); } public int RunCommand(TextReader input, TextWriter output, Logger logger, OrchardParameters args) { diff --git a/src/Tools/Orchard/Orchard.csproj b/src/Tools/Orchard/Orchard.csproj index bac38fb5e..996d70600 100644 --- a/src/Tools/Orchard/Orchard.csproj +++ b/src/Tools/Orchard/Orchard.csproj @@ -71,6 +71,7 @@ + @@ -104,7 +105,9 @@ - + + Designer +