-
Notifications
You must be signed in to change notification settings - Fork 839
Move Microsoft.Extensions.ServiceDiscovery to dotnet/extensions #6868
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
90 commits
Select commit
Hold shift + click to select a range
f65b56f
Initial commit
dotnet-bot 727e5ea
False positive. **BYPASS_SECRET_SCANNING**
joperezr ec97849
Service Discovery: fail when no resolvers have been registered (#340)
ReubenBond 2bb9a6e
Service Discovery: Refactor DNS & DNS SRV providers into subclasses (…
ReubenBond ea510d7
Add IHostNameFeature to propagate original host name to HttpClient (#…
ReubenBond 81b2daa
Fix race in ServiceEndPointResolver (#511)
ReubenBond aad81ea
Fix one place where service discovery isn't AOT compatible (#540)
davidfowl d2b0781
Service Discovery: make host name propagation opt-in (#548)
ReubenBond a7b6f7b
Last round of triple slash, I believe. (#661)
IEvangelist 92a239c
Last round of triple slash, I believe. (#661) (#663)
davidfowl 2febced
Merged PR 35034: Merge branch 'release/8.0-preview1' into 'internal/r…
joperezr 7fbb032
Add additional debug logs to Service Discovery (#672)
ReubenBond 2371e8b
Add additional debug logs to Service Discovery (#672) (#678)
ReubenBond 63ba7e9
Merge branch 'release/8.0-preview1' into 'internal/release/8.0-preview1'
joperezr 01862e7
Merged PR 35041: Merge branch 'release/8.0-preview1' into 'internal/r…
joperezr 655a8a2
Add package descriptions and icons. (#701)
mitchdenny db14b27
[release/8.0-preview1] Add package descriptions and icons. (#701) (#702)
mitchdenny 3c56542
Merge branch 'release/8.0-preview1' into 'internal/release/8.0-preview1'
joperezr 84b747b
Merged PR 35083: Merge branch 'release/8.0-preview1' into 'internal/r…
joperezr fd54a80
Forward port package changes from release branch. (#722)
mitchdenny 381a5ed
Fix Trim warning in ServiceDiscovery (#768)
eerhardt 873440f
READMEs for Service Discovery (#792)
ReubenBond eab38c8
Merge branch 'internal/release/8.0-preview1' into joperezr/MergeChang…
joperezr aaf3fbf
Fix NuGet Package Icons (#817)
eerhardt ced627d
Merge pull request #818 from dotnet/joperezr/MergeChangesFromInternal
joperezr a0c7573
Merge branch 'release/8.0-preview1'
joperezr cea4479
Merge pull request #828 from dotnet-maestro-bot/merge/release/8.0-pre…
joperezr 1525b00
Service Discovery: fix shutdown blocking indefinitely in some cases (…
ReubenBond b51c429
Use ValueStopWatch (#1148)
Kahbazi 7050e5a
Make behavior of IHttpClientBuilder.UseServiceDiscovery overloads con…
ReubenBond 50f8ab2
Rename WithServiceBinding to WithEndpoint (#1484)
davidfowl e9ee540
Add comment to explain DisableGrpcLoadBalancingFilter (#1163)
Meir017 e697620
RoundRobinServiceEndPointSelectorProvider (#1661)
alexander-kucherov 6ad2ba6
Remove IServiceEndPointResolver.DisplayName property and use ToString…
ReubenBond 43a49c3
Enable XML doc error (#2191)
eerhardt 8740979
Service Discovery: set port to 0 when scheme is not present, not -1 (…
ReubenBond c85b3ef
Rename key Service Discovery types (#1877)
ReubenBond 07dd40b
Fix PassThroughServiceEndPointResolverTests (#2451)
ReubenBond 2b01e48
Service Discovery: allow multiple schemes to be specified in request …
ReubenBond b982636
Filling in empty doc comments. (#2968)
mitchdenny 4e104b0
Remove ValueStopwatch (#2935)
eerhardt a846b38
Point to Kubernetes C# client logic from IsInKubernetesCluster() (#3049)
ReubenBond 38756b1
Service Discovery API refactoring (#3114)
ReubenBond 7e294b9
Service Discovery API refactoring (#3114) (#3196)
ReubenBond afd2c74
Merge branch 'release/8.0-preview5' into release/8.0
joperezr 4faad58
Merge pull request #3261 from dotnet-maestro-bot/merge/release/8.0-pr…
joperezr 76c92cb
Remove obsolete APIs. (#3329)
mitchdenny 2837a06
Remove obsolete APIs. (#3336)
github-actions[bot] 30697f6
Service Discovery: Implement approved API (#3413)
ReubenBond 95ea2e8
Update README.md to reflect Service Discovery API changes (#3228)
ReubenBond 616f098
[release/8.0] Service Discovery: Implement approved API (#3460)
github-actions[bot] 27dd319
Enable public API analyzer. (#3547)
mitchdenny 6b67ac7
Service Discovery add additional configuration tests, make scheme sel…
ReubenBond 8ccf338
Service Discovery add additional configuration tests, make scheme sel…
github-actions[bot] 696c6ce
ServiceEndpoint.ToString(): omit zero port (#4015)
ReubenBond 131f376
ServiceEndpoint.ToString(): omit zero port (#4033)
github-actions[bot] 7de9f20
Promptly remove invalid resolvers (#3800)
ReubenBond b62eb8e
Improve test coverage for YARP Service Discovery (#4036)
ReubenBond 40992da
Move Cancel call outside of lock and add additional error handling (#…
ReubenBond dcd995d
Improve test coverage for YARP Service Discovery (#4051)
github-actions[bot] 3f610e1
Promptly remove invalid resolvers (#4039)
github-actions[bot] 5e62522
Move Cancel call outside of lock and add additional error handling (#…
github-actions[bot] 1441356
YARP: add special-case for localhost when setting Host value (#4069)
ReubenBond 2855a7d
YARP: add special-case for localhost when setting Host value (#4076)
github-actions[bot] dabd7e5
Merge branch release/8.0 into main
joperezr 74cfe11
Mark shipped public api as such and add infrastructure for PublicApiA…
joperezr d29308c
Baseline code coverage (#4313)
RussKie cb6df3d
Filter additional records from DNS SRV response (#4463)
vha-schleupen 037ae58
Adding public API test coverage (#5225)
Zombach 204a929
Adding public API test coverage for Microsoft.Extensions.ServiceDisco…
Zombach a53b7ba
use static for classes with all static members (#5485)
SimonCropp 3294486
Upgrade tooling for 9.0x (#5483)
radical a8c389b
Do not set host if it's not explicitely set in config (#6862)
benjaminpetit cb4a39b
Adding workflow to automatically compare public API surface against p…
joperezr 763344c
Remove PublicApiAnalyzer (#7389)
eerhardt 9a34a45
[ci] Remove code coverage reporting from the pipeline (#7857)
radical ec982ce
Adding test coverage - validate arguments of public methods (#7575)
Zombach 45867ce
Migrate to xunit.v3 (#8403)
Youssef1313 f3feb15
template updates for 9.3 (#8975)
danmoseley 397705a
Remove culture code from Microsoft documentation urls (#9253)
sebastienros 83a203c
Fix error in json in README.md (#9415)
ikkentim 8bf082f
Managed implementation of DNS resolver (#6104)
rzikm f314173
Localized file check-in by OneLocBuild Task: Build definition ID 1309…
dotnet-bot 4b296e4
Fallback to previous DNS service discovery (#10140)
rzikm 81b2458
Build ServiceDiscovery library and tests against netstandard2.0 (#10470)
twsouthwick d1008fb
Add net462 target to ServiceDiscovery (#11114)
twsouthwick 0177e8d
Migrate Microsoft.Extensions.ServiceDiscovery to dotnet/extensions
eerhardt 0df2dc1
Get ServiceDiscovery libraries and tests building clean in dotnet/ext…
eerhardt 0034bee
Remove FxPolyfills from the Shared.csproj
eerhardt 675c83e
PR Feedback
eerhardt File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
16 changes: 16 additions & 0 deletions
16
src/Libraries/Microsoft.Extensions.ServiceDiscovery.Abstractions/IHostNameFeature.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
// Licensed to the .NET Foundation under one or more agreements. | ||
// The .NET Foundation licenses this file to you under the MIT license. | ||
|
||
namespace Microsoft.Extensions.ServiceDiscovery; | ||
|
||
/// <summary> | ||
/// Exposes the host name of the end point. | ||
/// </summary> | ||
public interface IHostNameFeature | ||
{ | ||
/// <summary> | ||
/// Gets the host name of the end point. | ||
/// </summary> | ||
public string HostName { get; } | ||
} | ||
|
29 changes: 29 additions & 0 deletions
29
src/Libraries/Microsoft.Extensions.ServiceDiscovery.Abstractions/IServiceEndpointBuilder.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
// Licensed to the .NET Foundation under one or more agreements. | ||
// The .NET Foundation licenses this file to you under the MIT license. | ||
|
||
using Microsoft.AspNetCore.Http.Features; | ||
using Microsoft.Extensions.Primitives; | ||
|
||
namespace Microsoft.Extensions.ServiceDiscovery; | ||
|
||
/// <summary> | ||
/// Builder to create a <see cref="ServiceEndpointSource"/> instances. | ||
/// </summary> | ||
public interface IServiceEndpointBuilder | ||
{ | ||
/// <summary> | ||
/// Gets the endpoints. | ||
/// </summary> | ||
IList<ServiceEndpoint> Endpoints { get; } | ||
|
||
/// <summary> | ||
/// Gets the feature collection. | ||
/// </summary> | ||
IFeatureCollection Features { get; } | ||
|
||
/// <summary> | ||
/// Adds a change token to the resulting <see cref="ServiceEndpointSource"/>. | ||
/// </summary> | ||
/// <param name="changeToken">The change token.</param> | ||
void AddChangeToken(IChangeToken changeToken); | ||
} |
18 changes: 18 additions & 0 deletions
18
src/Libraries/Microsoft.Extensions.ServiceDiscovery.Abstractions/IServiceEndpointProvider.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
// Licensed to the .NET Foundation under one or more agreements. | ||
// The .NET Foundation licenses this file to you under the MIT license. | ||
|
||
namespace Microsoft.Extensions.ServiceDiscovery; | ||
|
||
/// <summary> | ||
/// Provides details about a service's endpoints. | ||
/// </summary> | ||
public interface IServiceEndpointProvider : IAsyncDisposable | ||
{ | ||
/// <summary> | ||
/// Resolves the endpoints for the service. | ||
/// </summary> | ||
/// <param name="endpoints">The endpoint collection, which resolved endpoints will be added to.</param> | ||
/// <param name="cancellationToken">The token to monitor for cancellation requests.</param> | ||
/// <returns>The resolution status.</returns> | ||
ValueTask PopulateAsync(IServiceEndpointBuilder endpoints, CancellationToken cancellationToken); | ||
} |
20 changes: 20 additions & 0 deletions
20
...ies/Microsoft.Extensions.ServiceDiscovery.Abstractions/IServiceEndpointProviderFactory.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
// Licensed to the .NET Foundation under one or more agreements. | ||
// The .NET Foundation licenses this file to you under the MIT license. | ||
|
||
using System.Diagnostics.CodeAnalysis; | ||
|
||
namespace Microsoft.Extensions.ServiceDiscovery; | ||
|
||
/// <summary> | ||
/// Creates <see cref="IServiceEndpointProvider"/> instances. | ||
/// </summary> | ||
public interface IServiceEndpointProviderFactory | ||
{ | ||
/// <summary> | ||
/// Tries to create an <see cref="IServiceEndpointProvider"/> instance for the specified <paramref name="query"/>. | ||
/// </summary> | ||
/// <param name="query">The service to create the provider for.</param> | ||
/// <param name="provider">The provider.</param> | ||
/// <returns><see langword="true"/> if the provider was created, <see langword="false"/> otherwise.</returns> | ||
bool TryCreateProvider(ServiceEndpointQuery query, [NotNullWhen(true)] out IServiceEndpointProvider? provider); | ||
} |
23 changes: 23 additions & 0 deletions
23
...raries/Microsoft.Extensions.ServiceDiscovery.Abstractions/Internal/ServiceEndpointImpl.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
// Licensed to the .NET Foundation under one or more agreements. | ||
// The .NET Foundation licenses this file to you under the MIT license. | ||
|
||
using System.Net; | ||
using Microsoft.AspNetCore.Http.Features; | ||
|
||
namespace Microsoft.Extensions.ServiceDiscovery.Internal; | ||
|
||
internal sealed class ServiceEndpointImpl(EndPoint endPoint, IFeatureCollection? features = null) : ServiceEndpoint | ||
{ | ||
public override EndPoint EndPoint { get; } = endPoint; | ||
|
||
public override IFeatureCollection Features { get; } = features ?? new FeatureCollection(); | ||
|
||
public override string? ToString() => EndPoint switch | ||
{ | ||
IPEndPoint ip when ip.Port == 0 && ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6 => $"[{ip.Address}]", | ||
IPEndPoint ip when ip.Port == 0 => $"{ip.Address}", | ||
DnsEndPoint dns when dns.Port == 0 => $"{dns.Host}", | ||
DnsEndPoint dns => $"{dns.Host}:{dns.Port}", | ||
_ => EndPoint.ToString()! | ||
}; | ||
} |
30 changes: 30 additions & 0 deletions
30
...s.ServiceDiscovery.Abstractions/Microsoft.Extensions.ServiceDiscovery.Abstractions.csproj
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
<Project Sdk="Microsoft.NET.Sdk"> | ||
|
||
<PropertyGroup> | ||
<TargetFrameworks>$(TargetFrameworks);netstandard2.0</TargetFrameworks> | ||
<IsPackable>true</IsPackable> | ||
<Description>Provides abstractions for service discovery. Interfaces defined in this package are implemented in Microsoft.Extensions.ServiceDiscovery and other service discovery packages.</Description> | ||
<PackageIconFullPath>$(DefaultDotnetIconFullPath)</PackageIconFullPath> | ||
<RootNamespace>Microsoft.Extensions.ServiceDiscovery</RootNamespace> | ||
<!-- https://github.com/dotnet/extensions/issues/6871 tracks enabling these --> | ||
<NoWarn>$(NoWarn);S1144;CA1002;S2365;SA1642;IDE0040;CA1307;EA0009;LA0003</NoWarn> | ||
<ImplicitUsings>enable</ImplicitUsings> | ||
</PropertyGroup> | ||
|
||
<ItemGroup> | ||
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" /> | ||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" /> | ||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" /> | ||
<PackageReference Include="Microsoft.Extensions.Options" /> | ||
<PackageReference Include="Microsoft.Extensions.Primitives" /> | ||
<PackageReference Include="Microsoft.Extensions.Features" /> | ||
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" /> | ||
</ItemGroup> | ||
|
||
<ItemGroup Condition=" '$(TargetFramework)' == 'net462' OR '$(TargetFramework)' == 'netstandard2.0' "> | ||
<PackageReference Include="Microsoft.Bcl.Memory" /> | ||
</ItemGroup> | ||
|
||
<Import Condition=" '$(TargetFramework)' == 'net462' OR '$(TargetFramework)' == 'netstandard2.0' " Project="..\..\Shared\FxPolyfills\FxPolyfills.targets" /> | ||
|
||
</Project> |
7 changes: 7 additions & 0 deletions
7
src/Libraries/Microsoft.Extensions.ServiceDiscovery.Abstractions/README.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# Microsoft.Extensions.ServiceDiscovery.Abstractions | ||
|
||
The `Microsoft.Extensions.ServiceDiscovery.Abstractions` library provides abstractions used by the `Microsoft.Extensions.ServiceDiscovery` library and other libraries which implement service discovery extensions, such as service endpoint providers. For more information, see [Service discovery in .NET](https://learn.microsoft.com/dotnet/core/extensions/service-discovery). | ||
|
||
## Feedback & contributing | ||
|
||
https://github.com/dotnet/aspire |
37 changes: 37 additions & 0 deletions
37
src/Libraries/Microsoft.Extensions.ServiceDiscovery.Abstractions/ServiceEndpoint.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
// Licensed to the .NET Foundation under one or more agreements. | ||
// The .NET Foundation licenses this file to you under the MIT license. | ||
|
||
using System.Net; | ||
using Microsoft.AspNetCore.Http.Features; | ||
using Microsoft.Extensions.ServiceDiscovery.Internal; | ||
|
||
namespace Microsoft.Extensions.ServiceDiscovery; | ||
|
||
/// <summary> | ||
/// Represents an endpoint for a service. | ||
/// </summary> | ||
public abstract class ServiceEndpoint | ||
{ | ||
/// <summary> | ||
/// Gets the endpoint. | ||
/// </summary> | ||
public abstract EndPoint EndPoint { get; } | ||
|
||
/// <summary> | ||
/// Gets the collection of endpoint features. | ||
/// </summary> | ||
public abstract IFeatureCollection Features { get; } | ||
|
||
/// <summary> | ||
/// Creates a new <see cref="ServiceEndpoint"/>. | ||
/// </summary> | ||
/// <param name="endPoint">The endpoint being represented.</param> | ||
/// <param name="features">Features of the endpoint.</param> | ||
/// <returns>A newly initialized <see cref="ServiceEndpoint"/>.</returns> | ||
public static ServiceEndpoint Create(EndPoint endPoint, IFeatureCollection? features = null) | ||
{ | ||
ArgumentNullException.ThrowIfNull(endPoint); | ||
|
||
return new ServiceEndpointImpl(endPoint, features); | ||
} | ||
} |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.