Skip to content

Commit

Permalink
Major refactor - using Microsoft.Extensions.DependencyInjection and L…
Browse files Browse the repository at this point in the history
…ogging
  • Loading branch information
Sinisa Cehajic committed Apr 9, 2023
1 parent d9dfe4b commit 637439a
Show file tree
Hide file tree
Showing 81 changed files with 315 additions and 2,052 deletions.
81 changes: 0 additions & 81 deletions MassiveJobs.Core.Hosting/LoggerWrapper.cs

This file was deleted.

2 changes: 1 addition & 1 deletion MassiveJobs.Core.Hosting/MassiveJobs.Core.Hosting.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<TargetFrameworks>netstandard2.0;net6;net7</TargetFrameworks>
<Version>0.45.1</Version>
<Authors>MassiveJobs.NET</Authors>
<Description>Abstractions for running MassiveJobs in a hosted environment such as ASP.NET Core</Description>
Expand Down
12 changes: 5 additions & 7 deletions MassiveJobs.Core.Hosting/MassiveJobsBackgroundService.cs
Original file line number Diff line number Diff line change
@@ -1,25 +1,23 @@
using System;
using System.Threading;
using System.Threading.Tasks;

using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

using MassiveJobs.Core.DependencyInjection;

namespace MassiveJobs.Core.Hosting
{
public class MassiveJobsBackgroundService : BackgroundService
{
private readonly ILogger<MassiveJobsBackgroundService> _logger;

private readonly IJobServiceFactory _jobServiceFactory;
private readonly MassiveJobsHostingOptions _options;
private readonly IServiceProvider _serviceProvider;

public MassiveJobsBackgroundService(IJobServiceFactory jobServiceFactory, MassiveJobsHostingOptions options,
ILogger<MassiveJobsBackgroundService> logger)
public MassiveJobsBackgroundService(MassiveJobsHostingOptions options, IServiceProvider serviceProvider, ILogger<MassiveJobsBackgroundService> logger)
{
_jobServiceFactory = jobServiceFactory;
_options = options;
_serviceProvider = serviceProvider;
_logger = logger;
}

Expand All @@ -33,7 +31,7 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
_logger.LogInformation("Initializing MassiveJobs");

MassiveJobsMediator.Initialize(_jobServiceFactory);
MassiveJobsMediator.Initialize(_serviceProvider);

_options.OnInitAction?.Invoke();

Expand Down
20 changes: 3 additions & 17 deletions MassiveJobs.Core.Hosting/ServiceCollectionExtensions.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
using System;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;

using MassiveJobs.Core.Serialization;
using MassiveJobs.Core.DependencyInjection;

namespace MassiveJobs.Core.Hosting
{
Expand All @@ -19,20 +15,10 @@ public static class ServiceCollectionExtensions

options.MassiveJobsSettings = options.MassiveJobsSettings ?? new MassiveJobsSettings();

serviceCollection.AddSingleton(options);
serviceCollection.AddSingleton(options.MassiveJobsSettings);

serviceCollection.AddSingleton<IJobLoggerFactory, LoggerFactoryWrapper>();
serviceCollection.AddSingleton(typeof(IJobLogger<>), typeof(LoggerWrapper<>));

serviceCollection.TryAddSingleton<IJobRunner, DefaultJobRunner>();
serviceCollection.TryAddSingleton<IJobSerializer, DefaultSerializer>();
serviceCollection.TryAddSingleton<IJobTypeProvider, DefaultTypeProvider>();
serviceCollection.TryAddSingleton<IJobServiceFactory, ServiceFactoryWrapper>();
serviceCollection.TryAddSingleton<IJobServiceScopeFactory, ServiceScopeFactoryWrapper>();

serviceCollection.TryAddScoped<IJobPublisher, DefaultJobPublisher>();
JobsBuilder.Configure(serviceCollection)
.WithDefaultImplementations(options.MassiveJobsSettings);

serviceCollection.AddSingleton(options);
serviceCollection.AddHostedService<MassiveJobsBackgroundService>();

return new MassiveJobsHostingBuilder(serviceCollection);
Expand Down
72 changes: 0 additions & 72 deletions MassiveJobs.Core.Hosting/ServiceScopeWrapper.cs

This file was deleted.

19 changes: 13 additions & 6 deletions MassiveJobs.Core.Tests/InMemoryPublisherTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,16 @@
using System.Threading.Tasks;

using MassiveJobs.Core.Memory;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;

namespace MassiveJobs.Core.Tests
{
[TestClass]
public class InMemoryPublisherTest
{
private readonly IServiceProviderFactory<IServiceCollection> _serviceProviderFactory = new DefaultServiceProviderFactory();

private readonly MassiveJobsSettings _settings = new MassiveJobsSettings
{
ImmediateWorkersCount = 2,
Expand All @@ -24,14 +28,17 @@ public class InMemoryPublisherTest
public void TestInit()
{
_counter = new Counter();

_messages = new InMemoryMessages();

JobsBuilder.Configure()
.RegisterInstance(_settings)
.RegisterInstance(_counter)
var serviceCollection = new ServiceCollection();

serviceCollection.AddSingleton(_counter);
serviceCollection.AddLogging();

JobsBuilder.Configure(serviceCollection)
.WithDefaultImplementations(_settings)
.WithInMemoryBroker(_messages)
.Build();
.Build(_serviceProviderFactory.CreateServiceProvider(serviceCollection));
}

[TestCleanup]
Expand All @@ -43,7 +50,7 @@ public void TestCleanup()

private void CancelWorkers()
{
MassiveJobsMediator.DefaultInstance.CancelJobWorkers();
MassiveJobsMediator.DefaultInstance.StopJobWorkers();
}

[TestMethod]
Expand Down
4 changes: 3 additions & 1 deletion MassiveJobs.Core.Tests/MassiveJobs.Core.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<TargetFramework>net6.0</TargetFramework>

<IsPackable>false</IsPackable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.10.0" />
<PackageReference Include="MSTest.TestAdapter" Version="2.2.5" />
<PackageReference Include="MSTest.TestFramework" Version="2.2.5" />
Expand Down

0 comments on commit 637439a

Please sign in to comment.