Skip to content

Commit 92e66e8

Browse files
committed
Update to Mediatr 14
1 parent df2a56e commit 92e66e8

6 files changed

Lines changed: 28 additions & 11 deletions

File tree

Directory.Packages.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
<PackageVersion Include="System.Collections.Immutable" Version="10.0.3" />
5656
<PackageVersion Include="System.Threading.Channels" Version="10.0.3" />
5757
<PackageVersion Include="Microsoft.Reactive.Testing" Version="6.1.0" />
58-
<PackageVersion Include="MediatR" Version="12.4.1" />
58+
<PackageVersion Include="MediatR" Version="14.1.0" />
5959
<PackageVersion Include="Bogus" Version="35.6.5" />
6060
<PackageVersion Include="Snapper" Version="2.4.1" />
6161
<PackageVersion Include="Xunit.SkippableFact" Version="1.5.61" />

src/JsonRpc.Testing/SettlePipeline.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ async Task<TR> IPipelineBehavior<T, TR>.Handle(T request, RequestHandlerDelegate
1616
_settler.OnStartRequest();
1717
try
1818
{
19-
return await next().ConfigureAwait(false);
19+
return await next(cancellationToken).ConfigureAwait(false);
2020
}
2121
finally
2222
{

src/JsonRpc/JsonRpcServerServiceCollectionExtensions.cs

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using MediatR;
99
using Microsoft.Extensions.DependencyInjection;
1010
using Microsoft.Extensions.DependencyInjection.Extensions;
11+
using Microsoft.Extensions.Logging;
1112
using Microsoft.Extensions.Options;
1213

1314
namespace OmniSharp.Extensions.JsonRpc
@@ -98,7 +99,23 @@ internal static IContainer AddJsonRpcServerCore<T>(this IContainer container, Js
9899

99100
internal static IContainer AddJsonRpcMediatR(this IContainer container)
100101
{
101-
container.RegisterMany(new[] { typeof(IMediator).GetAssembly() }, Registrator.Interfaces, Reuse.ScopedOrSingleton);
102+
var mediatRAssembly = typeof(IMediator).Assembly;
103+
var licenseAccessorType = mediatRAssembly.GetType("MediatR.Licensing.LicenseAccessor", throwOnError: true)!;
104+
var licenseValidatorType = mediatRAssembly.GetType("MediatR.Licensing.LicenseValidator", throwOnError: true)!;
105+
106+
container.RegisterMany(new[] { mediatRAssembly }, Registrator.Interfaces, Reuse.ScopedOrSingleton);
107+
container.RegisterDelegate(
108+
licenseAccessorType,
109+
typeof(ILoggerFactory),
110+
loggerFactory => Activator.CreateInstance(licenseAccessorType, loggerFactory)!,
111+
Reuse.Singleton
112+
);
113+
container.RegisterDelegate(
114+
licenseValidatorType,
115+
typeof(ILoggerFactory),
116+
loggerFactory => Activator.CreateInstance(licenseValidatorType, loggerFactory)!,
117+
Reuse.Singleton
118+
);
102119
container.RegisterMany<RequestContext>(Reuse.Scoped);
103120
// Select the desired constructor
104121
container.Register<IMediator, Mediator>(made: Made.Of(() => new Mediator(Arg.Of<IServiceProvider>())));

src/Server/Pipelines/ResolveCommandPipeline.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public ResolveCommandPipeline(IRequestContext context, ILogger<ResolveCommandPip
2626

2727
public async Task<TResponse> Handle(TRequest request, RequestHandlerDelegate<TResponse> next, CancellationToken cancellationToken)
2828
{
29-
var response = await next().ConfigureAwait(false);
29+
var response = await next(cancellationToken).ConfigureAwait(false);
3030
cancellationToken.ThrowIfCancellationRequested();
3131

3232
// Only pin the handler type, if we know the source handler (codelens) is also the resolver.

src/Server/Pipelines/SemanticTokensDeltaPipeline.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ internal class SemanticTokensDeltaPipeline<TRequest, TResponse> : IPipelineBehav
1414
{
1515
if (request is SemanticTokensParams semanticTokensParams)
1616
{
17-
var response = await next().ConfigureAwait(false);
17+
var response = await next(cancellationToken).ConfigureAwait(false);
1818
if (GetResponse(semanticTokensParams, response, out var result) && string.IsNullOrEmpty(result.ResultId))
1919
{
2020
result = result with { ResultId = Guid.NewGuid().ToString() };
@@ -25,7 +25,7 @@ internal class SemanticTokensDeltaPipeline<TRequest, TResponse> : IPipelineBehav
2525

2626
if (request is SemanticTokensDeltaParams semanticTokensDeltaParams)
2727
{
28-
var response = await next().ConfigureAwait(false);
28+
var response = await next(cancellationToken).ConfigureAwait(false);
2929
if (GetResponse(semanticTokensDeltaParams, response, out var result))
3030
{
3131
if (result is { IsFull: true, Full: { ResultId: null or { Length: 0 } } })
@@ -41,7 +41,7 @@ internal class SemanticTokensDeltaPipeline<TRequest, TResponse> : IPipelineBehav
4141
return result is TResponse r ? r : response;
4242
}
4343

44-
return await next().ConfigureAwait(false);
44+
return await next(cancellationToken).ConfigureAwait(false);
4545
}
4646

4747
// ReSharper disable once UnusedParameter.Local

test/Lsp.Tests/Matchers/ResolveCommandMatcherTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public async Task Should_Not_Throw_Given_Another_Descriptor()
8383
);
8484

8585
// When
86-
Func<Task> a = async () => await handlerMatcher.Handle(new CodeLensParams(), () => Task.FromResult(new CodeLensContainer()), CancellationToken.None);
86+
Func<Task> a = async () => await handlerMatcher.Handle(new CodeLensParams(), _ => Task.FromResult(new CodeLensContainer()), CancellationToken.None);
8787
await a.Should().NotThrowAsync();
8888
}
8989

@@ -272,7 +272,7 @@ public async Task Should_Update_CompletionItems_With_HandlerType()
272272
( list is IEnumerable<ICanBeResolved> ).Should().BeTrue();
273273

274274
// When
275-
var response = await handlerMatcher.Handle(new CompletionParams(), () => Task.FromResult(list), CancellationToken.None);
275+
var response = await handlerMatcher.Handle(new CompletionParams(), _ => Task.FromResult(list), CancellationToken.None);
276276

277277
// Then
278278
response.Should().BeEquivalentTo(list, x => x.UsingStructuralRecordEquality());
@@ -323,7 +323,7 @@ public async Task Should_Update_CodeLensContainer_With_HandlerType()
323323
( list is IEnumerable<ICanBeResolved> ).Should().BeTrue();
324324

325325
// When
326-
var response = await handlerMatcher.Handle(new CodeLensParams(), () => Task.FromResult(list), CancellationToken.None);
326+
var response = await handlerMatcher.Handle(new CodeLensParams(), _ => Task.FromResult(list), CancellationToken.None);
327327

328328
// Then
329329
response.Should().BeEquivalentTo(list, x => x.UsingStructuralRecordEquality());
@@ -370,7 +370,7 @@ public async Task Should_Update_CodeLens_Removing_HandlerType()
370370
};
371371

372372
// When
373-
var response = await handlerMatcher.Handle(item, () => Task.FromResult(item), CancellationToken.None);
373+
var response = await handlerMatcher.Handle(item, _ => Task.FromResult(item), CancellationToken.None);
374374

375375
// Then
376376
response.Should().BeEquivalentTo(item, x => x.UsingStructuralRecordEquality());

0 commit comments

Comments
 (0)