Skip to content

Commit

Permalink
removed IModule interface (#32)
Browse files Browse the repository at this point in the history
* removed IModule interface
  • Loading branch information
fw2568 authored May 11, 2021
1 parent 2a3e817 commit 88e9df7
Show file tree
Hide file tree
Showing 58 changed files with 111 additions and 131 deletions.
5 changes: 2 additions & 3 deletions samples/dotnet50/SampleWebModule/SampleModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

namespace Dbosoft.Hosuto.Sample
{
public class SampleWebModule : WebModule
public class SampleWebModule : IWebModule
{
public SampleWebModule(IConfiguration configuration)
{
Expand Down Expand Up @@ -64,8 +64,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IHostEnv
});
}

public override string Name => "SampleWebModule";
public override string Path => "/sample";
public string Path => "/sample";

private static T GetServiceFromCollection<T>(IServiceCollection services)

Expand Down
4 changes: 2 additions & 2 deletions samples/dotnetcore21/SampleWebModule/SampleModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

namespace Dbosoft.Hosuto.Samples
{
public class SampleWebModule : WebModule
public class SampleWebModule : WebModule, INamedModule
{
public SampleWebModule(IConfiguration configuration)
{
Expand Down Expand Up @@ -59,7 +59,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env)
});
}

public override string Name => "SampleWebModule";
public override string Path => "/sample";
public string Name => "SampleWebModule";
}
}
1 change: 0 additions & 1 deletion samples/dotnetcore31/SampleWebModule/SampleModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IHostEnv
});
}

public override string Name => "SampleWebModule";
public override string Path => "/sample";

private static T GetServiceFromCollection<T>(IServiceCollection services)
Expand Down
2 changes: 1 addition & 1 deletion samples/shared/Hosuto.Samples.SimpleModule/SimpleModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

namespace Dbosoft.Hosuto.Samples
{
public class SimpleModule : IModule, IMessageRecipient
public class SimpleModule : IMessageRecipient
{
public void ConfigureServices(IServiceProvider serviceProvider, IServiceCollection services)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Dbosoft.Hosuto.Modules.Hosting
{
public interface IModuleBootstrapContext<TModule> where TModule : IModule
public interface IModuleBootstrapContext<TModule> where TModule : class
{
TModule Module { get; }
IServiceProvider ModulesHostServices { get; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ public interface IModuleConfigurationFilter : IFilter<IModulesHostBuilderContext
{
}

public interface IModuleConfigurationFilter<TModule> : IFilter<IModulesHostBuilderContext<TModule>, IConfigurationBuilder> where TModule : IModule
public interface IModuleConfigurationFilter<TModule> : IFilter<IModulesHostBuilderContext<TModule>, IConfigurationBuilder> where TModule : class
{
}

Expand Down
2 changes: 1 addition & 1 deletion src/Hosuto.Abstractions/Modules/Hosting/IModuleContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
namespace Dbosoft.Hosuto.Modules.Hosting
{
// ReSharper disable once TypeParameterCanBeVariant
public interface IModuleContext<TModule> : IModuleContext where TModule : IModule
public interface IModuleContext<TModule> : IModuleContext where TModule : class
{
new TModule Module { get; }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Dbosoft.Hosuto.Modules.Hosting
{
public interface IModuleContextFactory<TModule> where TModule : IModule
public interface IModuleContextFactory<TModule> where TModule : class
{
IModuleContext<TModule> CreateModuleContext(IModuleBootstrapContext<TModule> bootstrapContext, IServiceProvider moduleServices);
IModuleBootstrapContext<TModule> CreateModuleBootstrapContext(TModule module, IServiceProvider moduleHostServices, IServiceProvider frameworkServices);
Expand Down
2 changes: 1 addition & 1 deletion src/Hosuto.Abstractions/Modules/Hosting/IModuleHost.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
namespace Dbosoft.Hosuto.Modules.Hosting
{

public interface IModuleHost<TModule> : IHost where TModule : IModule
public interface IModuleHost<TModule> : IHost where TModule : class
{
IModuleContext<TModule> ModuleContext { get; }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ namespace Dbosoft.Hosuto.Modules.Hosting
public interface IModulesHostBuilder: IHostBuilder
{

IModulesHostBuilder HostModule<TModule>(Action<IModuleHostingOptions> options = null) where TModule : class, IModule;
IModulesHostBuilder HostModule<TModule>(Action<IModuleHostingOptions> options = null) where TModule : class;
IModulesHostBuilder HostModule(Type moduleType, Action<IModuleHostingOptions> options = null);

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public interface IModuleHostingOptions
IModuleHostingOptions Configure<TContext>(Action<TContext> configureAction)
where TContext : class, IModuleContext;

IModuleHostingOptions ModuleFactoryCallback(Func<IServiceProvider, IModule> moduleFactory);
IModuleHostingOptions ModuleFactoryCallback(Func<IServiceProvider, object> moduleFactory);


}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ public interface IModuleServicesFilter : IFilter<IModulesHostBuilderContext, ISe
{
}

public interface IModuleServicesFilter<TModule> : IFilter<IModulesHostBuilderContext<TModule>, IServiceCollection> where TModule : IModule
public interface IModuleServicesFilter<TModule> : IFilter<IModulesHostBuilderContext<TModule>, IServiceCollection> where TModule : class
{
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ namespace Dbosoft.Hosuto.Modules.Hosting
{
public interface IModulesHostBuilderContext
{
IModule Module { get; }
object Module { get; }
IServiceProvider ModulesHostServices { get; }

HostBuilderContext HostBuilderContext { get; }
Expand All @@ -14,7 +14,7 @@ public interface IModulesHostBuilderContext

}

public interface IModulesHostBuilderContext<TModule> : IModulesHostBuilderContext where TModule : IModule
public interface IModulesHostBuilderContext<TModule> : IModulesHostBuilderContext where TModule : class
{
new TModule Module { get; }
}
Expand Down
29 changes: 0 additions & 29 deletions src/Hosuto.Abstractions/Modules/IModule.cs

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public DelegateWebHostBuilderFactory(Func<IWebHostBuilder> creatorFunc)
_creatorFunc = creatorFunc;
}

public IWebHostBuilder CreateWebHost(WebModule module) => _creatorFunc();
public IWebHostBuilder CreateWebHost(IWebModule module) => _creatorFunc();

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ namespace Dbosoft.Hosuto.Modules.Hosting
{
internal class DelegateWebModuleWebHostBuilderFilter : IWebModuleWebHostBuilderFilter
{
private readonly Action<WebModule, IWebHostBuilder> _configureDelegate;
private readonly Action<IWebModule, IWebHostBuilder> _configureDelegate;

public DelegateWebModuleWebHostBuilderFilter(Action<WebModule, IWebHostBuilder> configureDelegate)
public DelegateWebModuleWebHostBuilderFilter(Action<IWebModule, IWebHostBuilder> configureDelegate)
{
_configureDelegate = configureDelegate;
}

public Action<WebModule, IWebHostBuilder> Invoke(Action<WebModule, IWebHostBuilder> next)
public Action<IWebModule, IWebHostBuilder> Invoke(Action<IWebModule, IWebHostBuilder> next)
{
return (webModule, builder) =>
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
{
public interface IWebModuleWebHostBuilderFactory
{
Microsoft.AspNetCore.Hosting.IWebHostBuilder CreateWebHost(WebModule module);
Microsoft.AspNetCore.Hosting.IWebHostBuilder CreateWebHost(IWebModule module);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Dbosoft.Hosuto.Modules.Hosting
{
public interface IWebModuleWebHostBuilderFilter : IFilter<WebModule, IWebHostBuilder>
public interface IWebModuleWebHostBuilderFilter : IFilter<IWebModule, IWebHostBuilder>
{
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ namespace Dbosoft.Hosuto.Modules.Hosting
{
public interface IWebModuleWebHostBuilderInitializer
{
void ConfigureWebHost(WebModule module, Microsoft.Extensions.Hosting.IHostBuilder builder, IEnumerable<IWebModuleWebHostBuilderFilter> filters);
void ConfigureWebHost(IWebModule module, Microsoft.Extensions.Hosting.IHostBuilder builder, IEnumerable<IWebModuleWebHostBuilderFilter> filters);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public static IModulesHostBuilder ConfigureWebHost(this IModulesHostBuilder buil
}


public static IModulesHostBuilder UseAspNetCoreWithDefaults(this IModulesHostBuilder builder, Action<WebModule, Microsoft.AspNetCore.Hosting.IWebHostBuilder> configure = null)
public static IModulesHostBuilder UseAspNetCoreWithDefaults(this IModulesHostBuilder builder, Action<IWebModule, Microsoft.AspNetCore.Hosting.IWebHostBuilder> configure = null)
{
builder.ConfigureFrameworkServices((ctx, services) =>
{
Expand All @@ -38,7 +38,7 @@ public static IModulesHostBuilder UseAspNetCoreWithDefaults(this IModulesHostBui
}

public static IModulesHostBuilder UseAspNetCore(this IModulesHostBuilder builder,
Action<WebModule, Microsoft.AspNetCore.Hosting.IWebHostBuilder> configure = null)
Action<IWebModule, Microsoft.AspNetCore.Hosting.IWebHostBuilder> configure = null)
{
builder.ConfigureFrameworkServices((ctx, services) =>
{
Expand All @@ -54,7 +54,7 @@ public static IModulesHostBuilder UseAspNetCore(this IModulesHostBuilder builder
}

#else
public static IModulesHostBuilder UseAspNetCore(this IModulesHostBuilder builder, Func<Microsoft.AspNetCore.Hosting.IWebHostBuilder> webHostBuilder, Action<WebModule, Microsoft.AspNetCore.Hosting.IWebHostBuilder> configure = null)
public static IModulesHostBuilder UseAspNetCore(this IModulesHostBuilder builder, Func<Microsoft.AspNetCore.Hosting.IWebHostBuilder> webHostBuilder, Action<IWebModule, Microsoft.AspNetCore.Hosting.IWebHostBuilder> configure = null)
{
if (webHostBuilder == null) throw new ArgumentNullException(nameof(webHostBuilder));

Expand All @@ -68,7 +68,7 @@ public static IModulesHostBuilder UseAspNetCore(this IModulesHostBuilder builder
return ConfigureAspNetCore(builder,configure);
}

public static IModulesHostBuilder ConfigureAspNetCore(this IModulesHostBuilder builder, Action<WebModule, Microsoft.AspNetCore.Hosting.IWebHostBuilder> configure)
public static IModulesHostBuilder ConfigureAspNetCore(this IModulesHostBuilder builder, Action<IWebModule, Microsoft.AspNetCore.Hosting.IWebHostBuilder> configure)
{
if (configure == null) throw new ArgumentNullException(nameof(configure));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Dbosoft.Hosuto.Modules.Hosting
{
public class WebModuleBootstrapHostFilter<TModule> : IBootstrapHostFilter<TModule> where TModule : IModule
public class WebModuleBootstrapHostFilter<TModule> : IBootstrapHostFilter<TModule> where TModule : class
{
public Action<BootstrapModuleHostCommand<TModule>> Invoke(Action<BootstrapModuleHostCommand<TModule>> next)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

namespace Dbosoft.Hosuto.Modules.Hosting
{
public class WebModuleBootstrapHostHandler<TModule> : DefaultBootstrapHostHandler<TModule> where TModule : IModule
public class WebModuleBootstrapHostHandler<TModule> : DefaultBootstrapHostHandler<TModule> where TModule : class
{
protected virtual void Configure(IModuleContext<TModule> moduleContext, IApplicationBuilder app)
{
Expand All @@ -31,7 +31,7 @@ protected virtual void Configure(IModuleContext<TModule> moduleContext, IApplica

public override void BootstrapHost(BootstrapModuleHostCommand<TModule> command)
{
if (command.Host != null || !(command.BootstrapContext.Module is WebModule))
if (command.Host != null || !(command.BootstrapContext.Module is IWebModule))
return;

BootstrapContext = command.BootstrapContext;
Expand All @@ -53,7 +53,7 @@ public override void BootstrapHost(BootstrapModuleHostCommand<TModule> command)

var builder = CreateHostBuilder();

webHostBuilderInitializer.ConfigureWebHost(BootstrapContext.Module as WebModule, builder,
webHostBuilderInitializer.ConfigureWebHost(BootstrapContext.Module as IWebModule, builder,
new[]
{
new DelegateWebModuleWebHostBuilderFilter((_, webHostBuilder) =>
Expand Down Expand Up @@ -108,7 +108,7 @@ public override void BootstrapHost(BootstrapModuleHostCommand<TModule> command)
throw new InvalidOperationException("AspNetCore runtime not configured.");


var webHostBuilder = webHostBuilderFactory.CreateWebHost(BootstrapContext.Module as WebModule);
var webHostBuilder = webHostBuilderFactory.CreateWebHost(BootstrapContext.Module as IWebModule);
var hostBuilderContext = BootstrapContext.Advanced.FrameworkServices.GetRequiredService<HostBuilderContext>();
webHostBuilder.UseConfiguration(hostBuilderContext.Configuration);

Expand All @@ -125,7 +125,7 @@ public override void BootstrapHost(BootstrapModuleHostCommand<TModule> command)

});

Filters.BuildFilterPipeline(webHostBuilderFilters, (_, __) => { })(BootstrapContext.Module as WebModule, webHostBuilder);
Filters.BuildFilterPipeline(webHostBuilderFilters, (_, __) => { })(BootstrapContext.Module as IWebModule, webHostBuilder);


webHostBuilder.ConfigureServices((webContext, services) =>
Expand Down Expand Up @@ -183,11 +183,14 @@ protected virtual string GetRelativeModulePath()
{
var hostBuilderContext = BootstrapContext.Advanced.FrameworkServices.GetRequiredService<HostBuilderContext>();

if (BootstrapContext.Module.Name == null)
return hostBuilderContext.HostingEnvironment.ContentRootPath;
var name = "";
if (BootstrapContext.Module is INamedModule namedModule)
name = namedModule.Name;

name = name ?? BootstrapContext.Module.GetType().Assembly.GetName().Name;

var pathCandidate = Path.Combine(hostBuilderContext.HostingEnvironment
.ContentRootPath, "..", BootstrapContext.Module.Name);
.ContentRootPath, "..", name);

if (!Directory.Exists(pathCandidate))
return hostBuilderContext.HostingEnvironment.ContentRootPath;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ namespace Dbosoft.Hosuto.Modules.Hosting
{
internal class WebModuleWebHostBuilderInitializer : IWebModuleWebHostBuilderInitializer
{
public void ConfigureWebHost(WebModule module, IHostBuilder builder, IEnumerable<IWebModuleWebHostBuilderFilter> filters)
public void ConfigureWebHost(IWebModule module, IHostBuilder builder, IEnumerable<IWebModuleWebHostBuilderFilter> filters)
{
builder.ConfigureWebHost(webHostBuilder =>
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ namespace Dbosoft.Hosuto.Modules.Hosting
{
internal class WebModuleWebHostBuilderInitializerWithDefaults : IWebModuleWebHostBuilderInitializer
{
public void ConfigureWebHost(WebModule module, IHostBuilder builder, IEnumerable<IWebModuleWebHostBuilderFilter> filters)
public void ConfigureWebHost(IWebModule module, IHostBuilder builder, IEnumerable<IWebModuleWebHostBuilderFilter> filters)
{
builder.ConfigureWebHostDefaults(webHostBuilder =>
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Dbosoft.Hosuto.Modules.Hosting
{

public class BootstrapModuleHostCommand<TModule> where TModule : IModule
public class BootstrapModuleHostCommand<TModule> where TModule : class
{
public IModuleBootstrapContext<TModule> BootstrapContext { get; set; }
public ModuleHostingOptions Options { get; set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

namespace Dbosoft.Hosuto.Modules.Hosting
{
public class DefaultBootstrapHostHandler<TModule> where TModule : IModule
public class DefaultBootstrapHostHandler<TModule> where TModule : class
{

public IModuleBootstrapContext<TModule> BootstrapContext { get; set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Dbosoft.Hosuto.Modules.Hosting
{
public class DefaultModuleContextFactory<TModule> : IModuleContextFactory<TModule> where TModule : IModule
public class DefaultModuleContextFactory<TModule> : IModuleContextFactory<TModule> where TModule : class
{


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ namespace Dbosoft.Hosuto.Modules.Hosting


public class GenericModuleContextFilterAdapter<TFilter, TModule, T1> : IFilter<IModuleContext, T1>
where TModule : IModule
where TModule : class
where TFilter : IFilter<IModuleContext<TModule>, T1>
{
public Action<IModuleContext, T1> Invoke(Action<IModuleContext, T1> next) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ namespace Dbosoft.Hosuto.Modules.Hosting


public class GenericModuleHostBuilderContextAdapter<TFilter, TModule, T1> : IFilter<IModulesHostBuilderContext, T1>
where TModule : IModule
where TModule : class
where TFilter : IFilter<IModulesHostBuilderContext<TModule>, T1>
{
public Action<IModulesHostBuilderContext, T1> Invoke(Action<IModulesHostBuilderContext, T1> next) =>
Expand Down
Loading

0 comments on commit 88e9df7

Please sign in to comment.