Skip to content

Commit

Permalink
Update with latest API
Browse files Browse the repository at this point in the history
  • Loading branch information
martintmk committed Jul 10, 2023
1 parent 44c297e commit 3eb45d4
Show file tree
Hide file tree
Showing 20 changed files with 64 additions and 18 deletions.
1 change: 0 additions & 1 deletion ApiReview/API.Polly.Core/AssemblyDependencies.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,3 @@ System.Runtime
System.Runtime.CompilerServices.Unsafe
System.Runtime.InteropServices
System.Threading
System.Threading.Thread
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Assembly 'Polly.Core'

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Threading;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Assembly 'Polly.Core'

using System;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Threading;

Expand All @@ -10,6 +11,7 @@ public class ConfigureBuilderContext<TKey> where TKey : notnull
{
public TKey StrategyKey { get; }
public string BuilderName { get; }
public string StrategyKeyString { get; }
public void EnableReloads(Func<CancellationToken> reloadTokenProducer);
public string? BuilderInstanceName { get; }
[EditorBrowsable(EditorBrowsableState.Never)]
public void EnableReloads(Func<Func<CancellationToken>> tokenProducerFactory);
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ public sealed class ResilienceStrategyRegistry<TKey> : ResilienceStrategyProvide
public bool RemoveStrategy<TResult>(TKey key);
public override bool TryGetStrategy<TResult>(TKey key, [NotNullWhen(true)] out ResilienceStrategy<TResult>? strategy);
public override bool TryGetStrategy(TKey key, [NotNullWhen(true)] out ResilienceStrategy? strategy);
public ResilienceStrategy GetOrAddStrategy(TKey key, Action<ResilienceStrategyBuilder> configure);
public ResilienceStrategy GetOrAddStrategy(TKey key, Action<ResilienceStrategyBuilder, ConfigureBuilderContext<TKey>> configure);
public ResilienceStrategy<TResult> GetOrAddStrategy<TResult>(TKey key, Action<ResilienceStrategyBuilder<TResult>> configure);
public ResilienceStrategy<TResult> GetOrAddStrategy<TResult>(TKey key, Action<ResilienceStrategyBuilder<TResult>, ConfigureBuilderContext<TKey>> configure);
public bool TryAddBuilder(TKey key, Action<ResilienceStrategyBuilder, ConfigureBuilderContext<TKey>> configure);
public bool TryAddBuilder<TResult>(TKey key, Action<ResilienceStrategyBuilder<TResult>, ConfigureBuilderContext<TKey>> configure);
public bool RemoveBuilder(TKey key);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ public class ResilienceStrategyRegistryOptions<TKey>
public IEqualityComparer<TKey> StrategyComparer { get; set; }
[Required]
public IEqualityComparer<TKey> BuilderComparer { get; set; }
[Required]
public Func<TKey, string> StrategyKeyFormatter { get; set; }
public Func<TKey, string>? InstanceNameFormatter { get; set; }
[Required]
public Func<TKey, string> BuilderNameFormatter { get; set; }
public ResilienceStrategyRegistryOptions();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Polly.Telemetry;

public readonly record struct ResilienceEvent(string EventName)
public readonly record struct ResilienceEvent(ResilienceEventSeverity Severity, string EventName)
{
public override string ToString();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Assembly 'Polly.Core'

namespace Polly.Telemetry;

public enum ResilienceEventSeverity
{
None = 0,
Debug = 1,
Information = 2,
Warning = 3,
Error = 4,
Critical = 5
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ namespace Polly.Telemetry;
public sealed class ResilienceStrategyTelemetry
{
public bool IsEnabled { get; }
public void Report<TArgs>(string eventName, ResilienceContext context, TArgs args);
public void Report<TArgs, TResult>(string eventName, OutcomeArguments<TResult, TArgs> args);
public void Report<TArgs>(ResilienceEvent resilienceEvent, ResilienceContext context, TArgs args);
public void Report<TArgs, TResult>(ResilienceEvent resilienceEvent, OutcomeArguments<TResult, TArgs> args);
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
// Assembly 'Polly.Core'

using System;
using System.ComponentModel;
using System.Runtime.CompilerServices;

namespace Polly.Telemetry;

[EditorBrowsable(EditorBrowsableState.Never)]
public sealed record ResilienceTelemetrySource(string? BuilderName, ResilienceProperties BuilderProperties, string? StrategyName, string StrategyType);
public sealed record ResilienceTelemetrySource(string? BuilderName, string? BuilderInstanceName, ResilienceProperties BuilderProperties, string? StrategyName, string StrategyType);
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
// Assembly 'Polly.Core'

using System;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using Polly.Utils;

namespace Polly.Telemetry;

[EditorBrowsable(EditorBrowsableState.Never)]
public sealed record TelemetryEventArguments
{
public ResilienceTelemetrySource Source { get; }
public string EventName { get; }
public ResilienceEvent Event { get; }
public ResilienceContext Context { get; }
public Outcome<object>? Outcome { get; }
public object Arguments { get; }
Expand Down
6 changes: 4 additions & 2 deletions ApiReview/API.Polly.Core/NoDocs/Polly/ResilienceContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,15 @@ namespace Polly;

public sealed class ResilienceContext
{
public string? OperationKey { get; }
public CancellationToken CancellationToken { get; set; }
public bool IsSynchronous { get; }
public Type ResultType { get; }
public bool IsVoid { get; }
public bool ContinueOnCapturedContext { get; set; }
public ResilienceProperties Properties { get; }
public IReadOnlyCollection<ResilienceEvent> ResilienceEvents { get; }
public static ResilienceContext Get();
public IReadOnlyList<ResilienceEvent> ResilienceEvents { get; }
public static ResilienceContext Get(CancellationToken cancellationToken = default(CancellationToken));
public static ResilienceContext Get(string operationKey, CancellationToken cancellationToken = default(CancellationToken));
public static void Return(ResilienceContext context);
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ namespace Polly;
public abstract class ResilienceStrategyBuilderBase
{
public string? BuilderName { get; set; }
public string? InstanceName { get; set; }
public ResilienceProperties Properties { get; }
[EditorBrowsable(EditorBrowsableState.Never)]
public Action<IList<ResilienceStrategy>>? OnCreatingStrategy { get; set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ namespace Polly;
public sealed class ResilienceStrategyBuilderContext
{
public string? BuilderName { get; }
public string? BuilderInstanceName { get; }
public ResilienceProperties BuilderProperties { get; }
public string? StrategyName { get; }
public string StrategyType { get; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ namespace Polly;
public static class ResilienceStrategyBuilderExtensions
{
public static TBuilder AddStrategy<TBuilder>(this TBuilder builder, ResilienceStrategy strategy) where TBuilder : ResilienceStrategyBuilderBase;
public static ResilienceStrategyBuilder<TResult> AddStrategy<TResult>(this ResilienceStrategyBuilder<TResult> builder, ResilienceStrategy<TResult> strategy);
public static TBuilder AddStrategy<TBuilder>(this TBuilder builder, Func<ResilienceStrategyBuilderContext, ResilienceStrategy> factory, ResilienceStrategyOptions options) where TBuilder : ResilienceStrategyBuilderBase;
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ namespace Polly.Extensions.DependencyInjection;

public sealed class AddResilienceStrategyContext<TKey> where TKey : notnull
{
public string BuilderName { get; }
public TKey StrategyKey { get; }
public IServiceProvider ServiceProvider { get; }
public ConfigureBuilderContext<TKey> RegistryContext { get; }
public void EnableReloads<TOptions>(string? name = null);
public TOptions GetOptions<TOptions>(string? name = null);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// Assembly 'Polly.Extensions'

using Microsoft.Extensions.Options;
using Polly.Registry;

namespace Polly.Extensions.Registry;

public static class ConfigureBuilderContextExtensions
{
public static void EnableReloads<TKey, TOptions>(this ConfigureBuilderContext<TKey> context, IOptionsMonitor<TOptions> optionsMonitor, string? name = null) where TKey : notnull;
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@
using System.ComponentModel.DataAnnotations;
using System.Runtime.CompilerServices;
using Microsoft.Extensions.Logging;
using Polly.Telemetry;

namespace Polly.Extensions.Telemetry;

public class TelemetryOptions
{
public Action<TelemetryEventArguments>? OnTelemetryEvent { get; set; }
[Required]
public ILoggerFactory LoggerFactory { get; set; }
public ICollection<Action<EnrichmentContext>> Enrichers { get; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,5 @@ public static class PollyServiceCollectionExtensions
public static IServiceCollection AddResilienceStrategy<TKey, TResult>(this IServiceCollection services, TKey key, Action<ResilienceStrategyBuilder<TResult>, AddResilienceStrategyContext<TKey>> configure) where TKey : notnull;
public static IServiceCollection AddResilienceStrategy<TKey>(this IServiceCollection services, TKey key, Action<ResilienceStrategyBuilder> configure) where TKey : notnull;
public static IServiceCollection AddResilienceStrategy<TKey>(this IServiceCollection services, TKey key, Action<ResilienceStrategyBuilder, AddResilienceStrategyContext<TKey>> configure) where TKey : notnull;
public static IServiceCollection AddResilienceStrategy<TKey>(this IServiceCollection services) where TKey : notnull;
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ public class RateLimiterStrategyOptions : ResilienceStrategyOptions
[Required]
public ConcurrencyLimiterOptions DefaultRateLimiterOptions { get; set; }
public Func<OnRateLimiterRejectedArguments, ValueTask>? OnRejected { get; set; }
public RateLimiter? RateLimiter { get; set; }
public ResilienceRateLimiter? RateLimiter { get; set; }
public RateLimiterStrategyOptions();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Assembly 'Polly.RateLimiting'

using System.Runtime.CompilerServices;
using System.Threading.RateLimiting;
using System.Threading.Tasks;

namespace Polly.RateLimiting;

public sealed class ResilienceRateLimiter
{
public static ResilienceRateLimiter Create(RateLimiter rateLimiter);
public static ResilienceRateLimiter Create(PartitionedRateLimiter<ResilienceContext> rateLimiter);
}

0 comments on commit 3eb45d4

Please sign in to comment.