From 23d4f718c7dee408d559f606523925684d75d998 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sun, 4 Dec 2016 03:37:43 +0300 Subject: [PATCH] Added empty module runner. --- src/Volo.Abp/AbpBootstrapper.cs | 47 +++++++++++++++++++ src/Volo.Abp/Modularity/IModuleRunner.cs | 9 ++++ src/Volo.Abp/Modularity/ModuleRunner.cs | 15 ++++++ test/AbpTestBase/project.json | 1 - test/Volo.Abp.Tests/AbpApplication_Tests.cs | 20 ++++++++ .../Modularity/IndependentEmptyModule.cs | 13 +++++ test/Volo.Abp.Tests/Modularity/TestModule.cs | 15 ------ test/Volo.Abp.Tests/Volo.Abp.Tests.xproj | 7 +-- test/Volo.Abp.Tests/project.json | 13 +++-- .../project.json | 1 - 10 files changed, 118 insertions(+), 23 deletions(-) create mode 100644 src/Volo.Abp/AbpBootstrapper.cs create mode 100644 src/Volo.Abp/Modularity/IModuleRunner.cs create mode 100644 src/Volo.Abp/Modularity/ModuleRunner.cs create mode 100644 test/Volo.Abp.Tests/AbpApplication_Tests.cs create mode 100644 test/Volo.Abp.Tests/Modularity/IndependentEmptyModule.cs delete mode 100644 test/Volo.Abp.Tests/Modularity/TestModule.cs diff --git a/src/Volo.Abp/AbpBootstrapper.cs b/src/Volo.Abp/AbpBootstrapper.cs new file mode 100644 index 0000000000..1951daed9a --- /dev/null +++ b/src/Volo.Abp/AbpBootstrapper.cs @@ -0,0 +1,47 @@ +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection.Extensions; +using Volo.Abp.Modularity; + +namespace Volo.Abp +{ + public class AbpApplication : IDisposable + { + public Type StartupModuleType { get; } + + private readonly IServiceCollection _services; + private IServiceProvider _serviceProvider; + + private AbpApplication(Type startupModuleType, IServiceCollection services) + { + StartupModuleType = startupModuleType; + _services = services; + _services.AddCoreAbp(); + } + + public static AbpApplication Create(IServiceCollection services) + where TStartupModule : IAbpModule + { + return new AbpApplication(typeof(TStartupModule), services); + } + + public void Start(IServiceProvider serviceProvider) + { + _serviceProvider = serviceProvider; + _serviceProvider.GetRequiredService().Start(); + } + + public void Dispose() + { + _serviceProvider.GetRequiredService().Stop(); + } + } + + internal static class AbpServiceCollectionExtensions + { + public static void AddCoreAbp(this IServiceCollection services) + { + services.TryAddSingleton(); + } + } +} diff --git a/src/Volo.Abp/Modularity/IModuleRunner.cs b/src/Volo.Abp/Modularity/IModuleRunner.cs new file mode 100644 index 0000000000..0bbaef6583 --- /dev/null +++ b/src/Volo.Abp/Modularity/IModuleRunner.cs @@ -0,0 +1,9 @@ +namespace Volo.Abp.Modularity +{ + public interface IModuleRunner + { + void Start(); + + void Stop(); + } +} diff --git a/src/Volo.Abp/Modularity/ModuleRunner.cs b/src/Volo.Abp/Modularity/ModuleRunner.cs new file mode 100644 index 0000000000..20305b7dc5 --- /dev/null +++ b/src/Volo.Abp/Modularity/ModuleRunner.cs @@ -0,0 +1,15 @@ +namespace Volo.Abp.Modularity +{ + public class ModuleRunner : IModuleRunner + { + public void Start() + { + + } + + public void Stop() + { + + } + } +} \ No newline at end of file diff --git a/test/AbpTestBase/project.json b/test/AbpTestBase/project.json index 3f0d4a8175..1a4403d462 100644 --- a/test/AbpTestBase/project.json +++ b/test/AbpTestBase/project.json @@ -2,7 +2,6 @@ "version": "1.0.0-*", "dependencies": { - "NETStandard.Library": "1.6.1", "dotnet-test-xunit": "2.2.0-preview2-build1029", "NSubstitute": "2.0.0-rc", "Shouldly": "2.8.2", diff --git a/test/Volo.Abp.Tests/AbpApplication_Tests.cs b/test/Volo.Abp.Tests/AbpApplication_Tests.cs new file mode 100644 index 0000000000..e0a1dc416f --- /dev/null +++ b/test/Volo.Abp.Tests/AbpApplication_Tests.cs @@ -0,0 +1,20 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Tests.Modularity; +using Xunit; + +namespace Volo.Abp.Tests +{ + public class AbpApplication_Tests + { + [Fact] + public void Should_Start_And_Stop_Empty_AbpApplication() + { + var services = new ServiceCollection(); + + using (var application = AbpApplication.Create(services)) + { + application.Start(services.BuildServiceProvider()); + } + } + } +} diff --git a/test/Volo.Abp.Tests/Modularity/IndependentEmptyModule.cs b/test/Volo.Abp.Tests/Modularity/IndependentEmptyModule.cs new file mode 100644 index 0000000000..fa79ee56aa --- /dev/null +++ b/test/Volo.Abp.Tests/Modularity/IndependentEmptyModule.cs @@ -0,0 +1,13 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Modularity; + +namespace Volo.Abp.Tests.Modularity +{ + public class IndependentEmptyModule : IAbpModule + { + public void ConfigureServices(IServiceCollection services) + { + + } + } +} diff --git a/test/Volo.Abp.Tests/Modularity/TestModule.cs b/test/Volo.Abp.Tests/Modularity/TestModule.cs deleted file mode 100644 index 7e67909c44..0000000000 --- a/test/Volo.Abp.Tests/Modularity/TestModule.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.Reflection; -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.Modularity; -using Volo.DependencyInjection; - -namespace Volo.Abp.Tests.Modularity -{ - public class TestModule : IAbpModule - { - public void ConfigureServices(IServiceCollection services) - { - services.AddAssembly(typeof(TestModule).GetTypeInfo().Assembly); - } - } -} diff --git a/test/Volo.Abp.Tests/Volo.Abp.Tests.xproj b/test/Volo.Abp.Tests/Volo.Abp.Tests.xproj index 7faf9ac85d..c18f10d2ed 100644 --- a/test/Volo.Abp.Tests/Volo.Abp.Tests.xproj +++ b/test/Volo.Abp.Tests/Volo.Abp.Tests.xproj @@ -4,7 +4,6 @@ 14.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - e9a85f1b-a5cb-4e19-b2bb-a7f97bb25ee1 @@ -13,9 +12,11 @@ .\bin\ v4.6.1 - 2.0 + + + - + \ No newline at end of file diff --git a/test/Volo.Abp.Tests/project.json b/test/Volo.Abp.Tests/project.json index 863659ace7..fc6b333f7b 100644 --- a/test/Volo.Abp.Tests/project.json +++ b/test/Volo.Abp.Tests/project.json @@ -1,14 +1,21 @@ { "version": "1.0.0-*", + "testRunner": "xunit", + "dependencies": { - "NETStandard.Library": "1.6.1", + "AbpTestBase": "1.0.0-*", "Volo.Abp": "1.0.0-*" }, "frameworks": { - "netstandard1.6": { - "imports": "dnxcore50" + "netcoreapp1.0": { + "dependencies": { + "Microsoft.NETCore.App": { + "type": "platform", + "version": "1.0.0" + } + } } } } diff --git a/test/Volo.DependencyInjection.Tests/project.json b/test/Volo.DependencyInjection.Tests/project.json index 9d7ee2932e..72a1566b22 100644 --- a/test/Volo.DependencyInjection.Tests/project.json +++ b/test/Volo.DependencyInjection.Tests/project.json @@ -5,7 +5,6 @@ "dependencies": { "AbpTestBase": "1.0.0-*", - "NETStandard.Library": "1.6.1", "Volo.DependencyInjection": "1.0.0-*" },