diff --git a/Aspire.sln b/Aspire.sln index 52a3a75f81..a3109bb4e0 100644 --- a/Aspire.sln +++ b/Aspire.sln @@ -631,6 +631,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DaprServiceC", "playground\ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dashboard", "Dashboard", "{830F7CA9-8E51-4D62-832F-91F53F85B7AE}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aspire.Client", "src\Components\Aspire.Client\Aspire.Client.csproj", "{9551D5BD-F7A8-4537-98CC-56483F8A0A6B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -1653,6 +1655,10 @@ Global {B26653B9-439E-4850-A7F8-43C6E5121952}.Debug|Any CPU.Build.0 = Debug|Any CPU {B26653B9-439E-4850-A7F8-43C6E5121952}.Release|Any CPU.ActiveCfg = Release|Any CPU {B26653B9-439E-4850-A7F8-43C6E5121952}.Release|Any CPU.Build.0 = Release|Any CPU + {9551D5BD-F7A8-4537-98CC-56483F8A0A6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9551D5BD-F7A8-4537-98CC-56483F8A0A6B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9551D5BD-F7A8-4537-98CC-56483F8A0A6B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9551D5BD-F7A8-4537-98CC-56483F8A0A6B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1956,6 +1962,7 @@ Global {042DD8C6-A26C-4B06-80A1-FE7F8659C5BC} = {B7345F72-712F-436C-AE18-CAF7CDD4A990} {B26653B9-439E-4850-A7F8-43C6E5121952} = {57A42144-739E-49A7-BADB-BB8F5F20FA17} {830F7CA9-8E51-4D62-832F-91F53F85B7AE} = {4981B3A5-4AFD-4191-BF7D-8692D9783D60} + {9551D5BD-F7A8-4537-98CC-56483F8A0A6B} = {27381127-6C45-4B4C-8F18-41FF48DFE4B2} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {6DCEDFEC-988E-4CB3-B45B-191EB5086E0C} diff --git a/src/Components/Aspire.Azure.AI.OpenAI/Aspire.Azure.AI.OpenAI.csproj b/src/Components/Aspire.Azure.AI.OpenAI/Aspire.Azure.AI.OpenAI.csproj index 6a22fde1c9..53ba82e1ea 100644 --- a/src/Components/Aspire.Azure.AI.OpenAI/Aspire.Azure.AI.OpenAI.csproj +++ b/src/Components/Aspire.Azure.AI.OpenAI/Aspire.Azure.AI.OpenAI.csproj @@ -17,8 +17,6 @@ - - @@ -31,6 +29,7 @@ + diff --git a/src/Components/Aspire.Azure.Data.Tables/Aspire.Azure.Data.Tables.csproj b/src/Components/Aspire.Azure.Data.Tables/Aspire.Azure.Data.Tables.csproj index aa710f182b..01e02978b5 100644 --- a/src/Components/Aspire.Azure.Data.Tables/Aspire.Azure.Data.Tables.csproj +++ b/src/Components/Aspire.Azure.Data.Tables/Aspire.Azure.Data.Tables.csproj @@ -15,8 +15,6 @@ - - @@ -29,4 +27,8 @@ + + + + diff --git a/src/Components/Aspire.Azure.Messaging.EventHubs/Aspire.Azure.Messaging.EventHubs.csproj b/src/Components/Aspire.Azure.Messaging.EventHubs/Aspire.Azure.Messaging.EventHubs.csproj index 7d8f6a4ebc..dfc0bf83f4 100644 --- a/src/Components/Aspire.Azure.Messaging.EventHubs/Aspire.Azure.Messaging.EventHubs.csproj +++ b/src/Components/Aspire.Azure.Messaging.EventHubs/Aspire.Azure.Messaging.EventHubs.csproj @@ -17,8 +17,6 @@ - - @@ -29,5 +27,9 @@ + + + + diff --git a/src/Components/Aspire.Azure.Messaging.ServiceBus/Aspire.Azure.Messaging.ServiceBus.csproj b/src/Components/Aspire.Azure.Messaging.ServiceBus/Aspire.Azure.Messaging.ServiceBus.csproj index dfadc7fbff..549c2d4dc9 100644 --- a/src/Components/Aspire.Azure.Messaging.ServiceBus/Aspire.Azure.Messaging.ServiceBus.csproj +++ b/src/Components/Aspire.Azure.Messaging.ServiceBus/Aspire.Azure.Messaging.ServiceBus.csproj @@ -15,8 +15,6 @@ - - @@ -28,5 +26,9 @@ + + + + diff --git a/src/Components/Aspire.Azure.Messaging.WebPubSub/Aspire.Azure.Messaging.WebPubSub.csproj b/src/Components/Aspire.Azure.Messaging.WebPubSub/Aspire.Azure.Messaging.WebPubSub.csproj index 526f00d132..101077801f 100644 --- a/src/Components/Aspire.Azure.Messaging.WebPubSub/Aspire.Azure.Messaging.WebPubSub.csproj +++ b/src/Components/Aspire.Azure.Messaging.WebPubSub/Aspire.Azure.Messaging.WebPubSub.csproj @@ -15,8 +15,6 @@ - - @@ -27,5 +25,9 @@ + + + + diff --git a/src/Components/Aspire.Azure.Search.Documents/Aspire.Azure.Search.Documents.csproj b/src/Components/Aspire.Azure.Search.Documents/Aspire.Azure.Search.Documents.csproj index 8da9dd3826..b458261bcf 100644 --- a/src/Components/Aspire.Azure.Search.Documents/Aspire.Azure.Search.Documents.csproj +++ b/src/Components/Aspire.Azure.Search.Documents/Aspire.Azure.Search.Documents.csproj @@ -15,8 +15,6 @@ - - @@ -28,4 +26,8 @@ + + + + diff --git a/src/Components/Aspire.Azure.Security.KeyVault/Aspire.Azure.Security.KeyVault.csproj b/src/Components/Aspire.Azure.Security.KeyVault/Aspire.Azure.Security.KeyVault.csproj index 2458aea0eb..260dd96520 100644 --- a/src/Components/Aspire.Azure.Security.KeyVault/Aspire.Azure.Security.KeyVault.csproj +++ b/src/Components/Aspire.Azure.Security.KeyVault/Aspire.Azure.Security.KeyVault.csproj @@ -15,8 +15,6 @@ - - @@ -30,4 +28,8 @@ + + + + diff --git a/src/Components/Aspire.Azure.Storage.Blobs/Aspire.Azure.Storage.Blobs.csproj b/src/Components/Aspire.Azure.Storage.Blobs/Aspire.Azure.Storage.Blobs.csproj index e104594e2e..6daa307aba 100644 --- a/src/Components/Aspire.Azure.Storage.Blobs/Aspire.Azure.Storage.Blobs.csproj +++ b/src/Components/Aspire.Azure.Storage.Blobs/Aspire.Azure.Storage.Blobs.csproj @@ -15,8 +15,6 @@ - - @@ -29,4 +27,8 @@ + + + + diff --git a/src/Components/Aspire.Azure.Storage.Queues/Aspire.Azure.Storage.Queues.csproj b/src/Components/Aspire.Azure.Storage.Queues/Aspire.Azure.Storage.Queues.csproj index 0d49fad1a4..afacef0856 100644 --- a/src/Components/Aspire.Azure.Storage.Queues/Aspire.Azure.Storage.Queues.csproj +++ b/src/Components/Aspire.Azure.Storage.Queues/Aspire.Azure.Storage.Queues.csproj @@ -15,8 +15,6 @@ - - @@ -29,4 +27,8 @@ + + + + diff --git a/src/Components/Aspire.Client/Aspire.Client.csproj b/src/Components/Aspire.Client/Aspire.Client.csproj new file mode 100644 index 0000000000..0e34e630f8 --- /dev/null +++ b/src/Components/Aspire.Client/Aspire.Client.csproj @@ -0,0 +1,14 @@ + + + $(DefaultTargetFramework) + true + aspire + A package containing utilities for building Aspire Client integrations. + $(SharedDir)As-ire_icon_256.png + + + + + + + diff --git a/src/Components/Aspire.Client/ConfigurationSchemaAttributes.cs b/src/Components/Aspire.Client/ConfigurationSchemaAttributes.cs new file mode 100644 index 0000000000..b4424cbe37 --- /dev/null +++ b/src/Components/Aspire.Client/ConfigurationSchemaAttributes.cs @@ -0,0 +1,33 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Aspire; + +/// +/// Attribute used to automatically generate a JSON schema for a component's configuration. +/// +/// +/// Initializes a new instance of the class. +/// +/// The path corresponding to which config section binds to. +/// The type that is bound to the configuration. This type will be walked and generate a JSON schema for all the properties. +/// (optional) The config sections to exclude from the ConfigurationSchema. This is useful if there are properties you don't want to publicize in the config schema. +[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] +public sealed class ConfigurationSchemaAttribute(string path, Type type, string[]? exclusionPaths = null) : Attribute +{ + + /// + /// The path corresponding to which config section binds to. + /// + public string Path { get; } = path; + + /// + /// The type that is bound to the configuration. This type will be walked and generate a JSON schema for all the properties. + /// + public Type Type { get; } = type; + + /// + /// (optional) The config sections to exclude from the ConfigurationSchema. This is useful if there are properties you don't want to publicize in the config schema. + /// + public string[]? ExclusionPaths { get; } = exclusionPaths; +} diff --git a/src/Components/Common/ConnectionStringValidation.cs b/src/Components/Aspire.Client/ConnectionStringValidation.cs similarity index 56% rename from src/Components/Common/ConnectionStringValidation.cs rename to src/Components/Aspire.Client/ConnectionStringValidation.cs index 23585611dd..737bf1a205 100644 --- a/src/Components/Common/ConnectionStringValidation.cs +++ b/src/Components/Aspire.Client/ConnectionStringValidation.cs @@ -3,8 +3,20 @@ namespace Aspire; -internal static class ConnectionStringValidation +/// +/// Provides a method to validate a connection string. +/// +public static class ConnectionStringValidation { + /// + /// Validates the provided connection string. + /// + /// The connection string to validate. + /// The name of the connection. + /// The default configuration section name. + /// The type-specific configuration section name (optional). + /// Indicates if it is EF design time (optional). + /// Thrown when the connection string is missing and it is not EF design time. public static void ValidateConnectionString(string? connectionString, string connectionName, string defaultConfigSectionName, string? typeSpecificSectionName = null, bool isEfDesignTime = false) { if (string.IsNullOrWhiteSpace(connectionString) && !isEfDesignTime) diff --git a/src/Components/Common/HealthChecksExtensions.cs b/src/Components/Aspire.Client/HealthChecksExtensions.cs similarity index 68% rename from src/Components/Common/HealthChecksExtensions.cs rename to src/Components/Aspire.Client/HealthChecksExtensions.cs index 29e4762df2..5cc96a11f4 100644 --- a/src/Components/Common/HealthChecksExtensions.cs +++ b/src/Components/Aspire.Client/HealthChecksExtensions.cs @@ -7,11 +7,16 @@ namespace Aspire; -internal static class HealthChecksExtensions +/// +/// Provides extension methods for adding health checks to the IHostApplicationBuilder. +/// +public static class HealthChecksExtensions { /// /// Adds a HealthCheckRegistration if one hasn't already been added to the builder. /// + /// The IHostApplicationBuilder to add the health check to. + /// The HealthCheckRegistration to add. public static void TryAddHealthCheck(this IHostApplicationBuilder builder, HealthCheckRegistration healthCheckRegistration) { builder.TryAddHealthCheck(healthCheckRegistration.Name, hcBuilder => hcBuilder.Add(healthCheckRegistration)); @@ -20,6 +25,9 @@ public static void TryAddHealthCheck(this IHostApplicationBuilder builder, Healt /// /// Invokes the action if the given hasn't already been added to the builder. /// + /// The IHostApplicationBuilder to add the health check to. + /// The name of the health check. + /// The action to add the health check. public static void TryAddHealthCheck(this IHostApplicationBuilder builder, string name, Action addHealthCheck) { var healthCheckKey = $"Aspire.HealthChecks.{name}"; diff --git a/src/Components/Aspire.Client/LoggingCategoriesAttribute.cs b/src/Components/Aspire.Client/LoggingCategoriesAttribute.cs new file mode 100644 index 0000000000..95728ccc65 --- /dev/null +++ b/src/Components/Aspire.Client/LoggingCategoriesAttribute.cs @@ -0,0 +1,21 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Aspire; + +/// +/// Provides information to describe the logging categories produced by a component. +/// +/// +/// Initializes a new instance of the class. +/// +/// The list of log categories produced by the component. These categories will show up under the Logging:LogLevel section in appsettings.json. +[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = false)] +public sealed class LoggingCategoriesAttribute(params string[] categories) : Attribute +{ + + /// + /// The list of log categories produced by the component. These categories will show up under the Logging:LogLevel section in appsettings.json. + /// + public string[] Categories { get; set; } = categories; +} diff --git a/src/Components/Aspire.Client/PublicAPI.Shipped.txt b/src/Components/Aspire.Client/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/Components/Aspire.Client/PublicAPI.Unshipped.txt b/src/Components/Aspire.Client/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..bd5b339e53 --- /dev/null +++ b/src/Components/Aspire.Client/PublicAPI.Unshipped.txt @@ -0,0 +1,15 @@ +#nullable enable +Aspire.ConfigurationSchemaAttribute +Aspire.ConfigurationSchemaAttribute.ConfigurationSchemaAttribute(string! path, System.Type! type, string![]? exclusionPaths = null) -> void +Aspire.ConfigurationSchemaAttribute.ExclusionPaths.get -> string![]? +Aspire.ConfigurationSchemaAttribute.Path.get -> string! +Aspire.ConfigurationSchemaAttribute.Type.get -> System.Type! +Aspire.ConnectionStringValidation +Aspire.HealthChecksExtensions +Aspire.LoggingCategoriesAttribute +Aspire.LoggingCategoriesAttribute.Categories.get -> string![]! +Aspire.LoggingCategoriesAttribute.Categories.set -> void +Aspire.LoggingCategoriesAttribute.LoggingCategoriesAttribute(params string![]! categories) -> void +static Aspire.ConnectionStringValidation.ValidateConnectionString(string? connectionString, string! connectionName, string! defaultConfigSectionName, string? typeSpecificSectionName = null, bool isEfDesignTime = false) -> void +static Aspire.HealthChecksExtensions.TryAddHealthCheck(this Microsoft.Extensions.Hosting.IHostApplicationBuilder! builder, Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckRegistration! healthCheckRegistration) -> void +static Aspire.HealthChecksExtensions.TryAddHealthCheck(this Microsoft.Extensions.Hosting.IHostApplicationBuilder! builder, string! name, System.Action! addHealthCheck) -> void diff --git a/src/Components/Aspire.Client/README.md b/src/Components/Aspire.Client/README.md new file mode 100644 index 0000000000..4e832fc199 --- /dev/null +++ b/src/Components/Aspire.Client/README.md @@ -0,0 +1,9 @@ +# Aspire.Client + +Provides a set of common services and utilities for .NET Aspire Client integration packages. + +This package provides no integration package-specific functionality. + +## Feedback & contributing + +https://github.com/dotnet/aspire diff --git a/src/Components/Aspire.Confluent.Kafka/Aspire.Confluent.Kafka.csproj b/src/Components/Aspire.Confluent.Kafka/Aspire.Confluent.Kafka.csproj index 0d150dc21a..b69934c202 100644 --- a/src/Components/Aspire.Confluent.Kafka/Aspire.Confluent.Kafka.csproj +++ b/src/Components/Aspire.Confluent.Kafka/Aspire.Confluent.Kafka.csproj @@ -12,10 +12,6 @@ 90 - - - - @@ -24,4 +20,8 @@ + + + + diff --git a/src/Components/Aspire.Elastic.Clients.Elasticsearch/Aspire.Elastic.Clients.Elasticsearch.csproj b/src/Components/Aspire.Elastic.Clients.Elasticsearch/Aspire.Elastic.Clients.Elasticsearch.csproj index 124ce1c8af..35c5f3e619 100644 --- a/src/Components/Aspire.Elastic.Clients.Elasticsearch/Aspire.Elastic.Clients.Elasticsearch.csproj +++ b/src/Components/Aspire.Elastic.Clients.Elasticsearch/Aspire.Elastic.Clients.Elasticsearch.csproj @@ -12,11 +12,6 @@ 80 - - - - - @@ -26,4 +21,8 @@ + + + + \ No newline at end of file diff --git a/src/Components/Aspire.Microsoft.Azure.Cosmos/Aspire.Microsoft.Azure.Cosmos.csproj b/src/Components/Aspire.Microsoft.Azure.Cosmos/Aspire.Microsoft.Azure.Cosmos.csproj index 74fcb5bf55..6146b4cbf4 100644 --- a/src/Components/Aspire.Microsoft.Azure.Cosmos/Aspire.Microsoft.Azure.Cosmos.csproj +++ b/src/Components/Aspire.Microsoft.Azure.Cosmos/Aspire.Microsoft.Azure.Cosmos.csproj @@ -14,7 +14,6 @@ - diff --git a/src/Components/Aspire.Microsoft.Data.SqlClient/Aspire.Microsoft.Data.SqlClient.csproj b/src/Components/Aspire.Microsoft.Data.SqlClient/Aspire.Microsoft.Data.SqlClient.csproj index 519c915b5e..4312ba7321 100644 --- a/src/Components/Aspire.Microsoft.Data.SqlClient/Aspire.Microsoft.Data.SqlClient.csproj +++ b/src/Components/Aspire.Microsoft.Data.SqlClient/Aspire.Microsoft.Data.SqlClient.csproj @@ -13,12 +13,6 @@ 41 - - - - - - @@ -32,4 +26,8 @@ + + + + diff --git a/src/Components/Aspire.Microsoft.EntityFrameworkCore.Cosmos/Aspire.Microsoft.EntityFrameworkCore.Cosmos.csproj b/src/Components/Aspire.Microsoft.EntityFrameworkCore.Cosmos/Aspire.Microsoft.EntityFrameworkCore.Cosmos.csproj index bc103e16bc..03b926cec2 100644 --- a/src/Components/Aspire.Microsoft.EntityFrameworkCore.Cosmos/Aspire.Microsoft.EntityFrameworkCore.Cosmos.csproj +++ b/src/Components/Aspire.Microsoft.EntityFrameworkCore.Cosmos/Aspire.Microsoft.EntityFrameworkCore.Cosmos.csproj @@ -14,7 +14,6 @@ - diff --git a/src/Components/Aspire.Microsoft.EntityFrameworkCore.SqlServer/Aspire.Microsoft.EntityFrameworkCore.SqlServer.csproj b/src/Components/Aspire.Microsoft.EntityFrameworkCore.SqlServer/Aspire.Microsoft.EntityFrameworkCore.SqlServer.csproj index f1d2c0ded9..9def2fea5f 100644 --- a/src/Components/Aspire.Microsoft.EntityFrameworkCore.SqlServer/Aspire.Microsoft.EntityFrameworkCore.SqlServer.csproj +++ b/src/Components/Aspire.Microsoft.EntityFrameworkCore.SqlServer/Aspire.Microsoft.EntityFrameworkCore.SqlServer.csproj @@ -14,9 +14,6 @@ - - - @@ -31,5 +28,9 @@ + + + + diff --git a/src/Components/Aspire.Milvus.Client/Aspire.Milvus.Client.csproj b/src/Components/Aspire.Milvus.Client/Aspire.Milvus.Client.csproj index fdc34a0090..c4e5783e43 100644 --- a/src/Components/Aspire.Milvus.Client/Aspire.Milvus.Client.csproj +++ b/src/Components/Aspire.Milvus.Client/Aspire.Milvus.Client.csproj @@ -14,11 +14,6 @@ 80 - - - - - @@ -26,4 +21,8 @@ + + + + diff --git a/src/Components/Aspire.MongoDB.Driver/Aspire.MongoDB.Driver.csproj b/src/Components/Aspire.MongoDB.Driver/Aspire.MongoDB.Driver.csproj index 351b1508c3..222f37686c 100644 --- a/src/Components/Aspire.MongoDB.Driver/Aspire.MongoDB.Driver.csproj +++ b/src/Components/Aspire.MongoDB.Driver/Aspire.MongoDB.Driver.csproj @@ -13,12 +13,6 @@ 86 - - - - - - @@ -29,5 +23,9 @@ + + + + diff --git a/src/Components/Aspire.MySqlConnector/Aspire.MySqlConnector.csproj b/src/Components/Aspire.MySqlConnector/Aspire.MySqlConnector.csproj index ed436ee025..fb92ee77e2 100644 --- a/src/Components/Aspire.MySqlConnector/Aspire.MySqlConnector.csproj +++ b/src/Components/Aspire.MySqlConnector/Aspire.MySqlConnector.csproj @@ -12,12 +12,6 @@ 83 - - - - - - @@ -27,4 +21,8 @@ + + + + diff --git a/src/Components/Aspire.NATS.Net/Aspire.NATS.Net.csproj b/src/Components/Aspire.NATS.Net/Aspire.NATS.Net.csproj index a4eef5442f..01e191bf4a 100644 --- a/src/Components/Aspire.NATS.Net/Aspire.NATS.Net.csproj +++ b/src/Components/Aspire.NATS.Net/Aspire.NATS.Net.csproj @@ -12,11 +12,6 @@ 75 - - - - - @@ -25,4 +20,8 @@ + + + + diff --git a/src/Components/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL.csproj b/src/Components/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL.csproj index 56cb268b65..b04c8d6ca7 100644 --- a/src/Components/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL.csproj +++ b/src/Components/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL.csproj @@ -16,9 +16,6 @@ - - - @@ -31,5 +28,9 @@ + + + + diff --git a/src/Components/Aspire.Npgsql/Aspire.Npgsql.csproj b/src/Components/Aspire.Npgsql/Aspire.Npgsql.csproj index 65f48ae5f5..257cf6d6f6 100644 --- a/src/Components/Aspire.Npgsql/Aspire.Npgsql.csproj +++ b/src/Components/Aspire.Npgsql/Aspire.Npgsql.csproj @@ -12,12 +12,6 @@ 87 - - - - - - @@ -28,4 +22,8 @@ + + + + diff --git a/src/Components/Aspire.OpenAI/Aspire.OpenAI.csproj b/src/Components/Aspire.OpenAI/Aspire.OpenAI.csproj index 288b16552a..83732c1317 100644 --- a/src/Components/Aspire.OpenAI/Aspire.OpenAI.csproj +++ b/src/Components/Aspire.OpenAI/Aspire.OpenAI.csproj @@ -14,10 +14,6 @@ 70 - - - - diff --git a/src/Components/Aspire.Oracle.EntityFrameworkCore/Aspire.Oracle.EntityFrameworkCore.csproj b/src/Components/Aspire.Oracle.EntityFrameworkCore/Aspire.Oracle.EntityFrameworkCore.csproj index 18a646edc1..7548622283 100644 --- a/src/Components/Aspire.Oracle.EntityFrameworkCore/Aspire.Oracle.EntityFrameworkCore.csproj +++ b/src/Components/Aspire.Oracle.EntityFrameworkCore/Aspire.Oracle.EntityFrameworkCore.csproj @@ -12,9 +12,6 @@ - - - @@ -27,4 +24,8 @@ + + + + diff --git a/src/Components/Aspire.Pomelo.EntityFrameworkCore.MySql/Aspire.Pomelo.EntityFrameworkCore.MySql.csproj b/src/Components/Aspire.Pomelo.EntityFrameworkCore.MySql/Aspire.Pomelo.EntityFrameworkCore.MySql.csproj index 44daebd83e..6a2b1c896a 100644 --- a/src/Components/Aspire.Pomelo.EntityFrameworkCore.MySql/Aspire.Pomelo.EntityFrameworkCore.MySql.csproj +++ b/src/Components/Aspire.Pomelo.EntityFrameworkCore.MySql/Aspire.Pomelo.EntityFrameworkCore.MySql.csproj @@ -13,9 +13,6 @@ - - - @@ -28,4 +25,8 @@ + + + + diff --git a/src/Components/Aspire.Qdrant.Client/Aspire.Qdrant.Client.csproj b/src/Components/Aspire.Qdrant.Client/Aspire.Qdrant.Client.csproj index 5690fc0e77..8d5044e7da 100644 --- a/src/Components/Aspire.Qdrant.Client/Aspire.Qdrant.Client.csproj +++ b/src/Components/Aspire.Qdrant.Client/Aspire.Qdrant.Client.csproj @@ -12,16 +12,15 @@ 71 - - - - - + + + + diff --git a/src/Components/Aspire.RabbitMQ.Client/Aspire.RabbitMQ.Client.csproj b/src/Components/Aspire.RabbitMQ.Client/Aspire.RabbitMQ.Client.csproj index 6a0377be8d..7df3b11c39 100644 --- a/src/Components/Aspire.RabbitMQ.Client/Aspire.RabbitMQ.Client.csproj +++ b/src/Components/Aspire.RabbitMQ.Client/Aspire.RabbitMQ.Client.csproj @@ -12,11 +12,6 @@ 80 - - - - - @@ -30,4 +25,8 @@ + + + + diff --git a/src/Components/Aspire.Seq/Aspire.Seq.csproj b/src/Components/Aspire.Seq/Aspire.Seq.csproj index d726b300e1..2279433397 100644 --- a/src/Components/Aspire.Seq/Aspire.Seq.csproj +++ b/src/Components/Aspire.Seq/Aspire.Seq.csproj @@ -12,11 +12,6 @@ 55 - - - - - @@ -24,4 +19,8 @@ + + + + diff --git a/src/Components/Aspire.StackExchange.Redis.DistributedCaching/Aspire.StackExchange.Redis.DistributedCaching.csproj b/src/Components/Aspire.StackExchange.Redis.DistributedCaching/Aspire.StackExchange.Redis.DistributedCaching.csproj index 57e1abb4e0..f03e86d682 100644 --- a/src/Components/Aspire.StackExchange.Redis.DistributedCaching/Aspire.StackExchange.Redis.DistributedCaching.csproj +++ b/src/Components/Aspire.StackExchange.Redis.DistributedCaching/Aspire.StackExchange.Redis.DistributedCaching.csproj @@ -12,10 +12,6 @@ 59 - - - - diff --git a/src/Components/Aspire.StackExchange.Redis.OutputCaching/Aspire.StackExchange.Redis.OutputCaching.csproj b/src/Components/Aspire.StackExchange.Redis.OutputCaching/Aspire.StackExchange.Redis.OutputCaching.csproj index 79c6bb1d46..3581037d10 100644 --- a/src/Components/Aspire.StackExchange.Redis.OutputCaching/Aspire.StackExchange.Redis.OutputCaching.csproj +++ b/src/Components/Aspire.StackExchange.Redis.OutputCaching/Aspire.StackExchange.Redis.OutputCaching.csproj @@ -12,10 +12,6 @@ 59 - - - - diff --git a/src/Components/Aspire.StackExchange.Redis/Aspire.StackExchange.Redis.csproj b/src/Components/Aspire.StackExchange.Redis/Aspire.StackExchange.Redis.csproj index 7df684408d..e48d7c4d40 100644 --- a/src/Components/Aspire.StackExchange.Redis/Aspire.StackExchange.Redis.csproj +++ b/src/Components/Aspire.StackExchange.Redis/Aspire.StackExchange.Redis.csproj @@ -13,11 +13,6 @@ 42 - - - - - @@ -34,5 +29,9 @@ + + + + diff --git a/src/Components/Common/ConfigurationSchemaAttributes.cs b/src/Components/Common/ConfigurationSchemaAttributes.cs deleted file mode 100644 index 5b15afdd46..0000000000 --- a/src/Components/Common/ConfigurationSchemaAttributes.cs +++ /dev/null @@ -1,50 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -namespace Aspire; - -/// -/// Attribute used to automatically generate a JSON schema for a component's configuration. -/// -[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] -internal sealed class ConfigurationSchemaAttribute : Attribute -{ - public ConfigurationSchemaAttribute(string path, Type type, string[]? exclusionPaths = null) - { - Path = path; - Type = type; - ExclusionPaths = exclusionPaths; - } - - /// - /// The path corresponding to which config section binds to. - /// - public string Path { get; } - - /// - /// The type that is bound to the configuration. This type will be walked and generate a JSON schema for all the properties. - /// - public Type Type { get; } - - /// - /// (optional) The config sections to exclude from the ConfigurationSchema. This is useful if there are properties you don't want to publicize in the config schema. - /// - public string[]? ExclusionPaths { get; } -} - -/// -/// Provides information to describe the logging categories produced by a component. -/// -[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = false)] -internal sealed class LoggingCategoriesAttribute : Attribute -{ - public LoggingCategoriesAttribute(params string[] categories) - { - Categories = categories; - } - - /// - /// The list of log categories produced by the component. These categories will show up under the Logging:LogLevel section in appsettings.json. - /// - public string[] Categories { get; set; } -}