diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 64d5629..8ce0d61 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -35,4 +35,4 @@ jobs: run: dotnet build -c Release - name: Tests - run: dotnet test -c Release --no-restore --no-build --logger GitHubActions \ No newline at end of file + run: dotnet test -c Release --no-restore --no-build --logger GitHubActions diff --git a/Directory.Build.props b/Directory.Build.props index 905638a..92cb923 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -18,9 +18,9 @@ GPL-3.0-or-later - netstandard2.0;net8.0;net9.0 - net472;net8.0;net9.0 - net8.0;net9.0 + netstandard2.0;net8.0;net9.0;net10.0 + net472;net8.0;net9.0;net10.0 + net8.0;net9.0;net10.0 true ../../FluentBrighter.snk diff --git a/Directory.Packages.props b/Directory.Packages.props index 1a526bb..8823196 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,6 +1,6 @@ - 10.0.5 + [10.0.0, 11.0.0) @@ -54,7 +54,7 @@ - + all diff --git a/flake.nix b/flake.nix index 637b88c..6a79d74 100644 --- a/flake.nix +++ b/flake.nix @@ -1,6 +1,6 @@ { - description = ".NET 9 Development Environment"; + description = ".NET 10 Development Environment"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; @@ -18,7 +18,7 @@ }; # Define the .NET SDK version you want to use - dotnetSdk = pkgs.dotnetCorePackages.sdk_9_0-bin; + dotnetSdk = pkgs.dotnetCorePackages.sdk_10_0-bin; in { devShells.default = pkgs.mkShell { diff --git a/global.json b/global.json index 7452bae..f72210c 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "9.0.102", + "version": "10.0.100", "rollForward": "latestFeature" } } \ No newline at end of file diff --git a/samples/AwsTaskQueue/AwsTaskQueue.csproj b/samples/AwsTaskQueue/AwsTaskQueue.csproj index c75505c..9137747 100644 --- a/samples/AwsTaskQueue/AwsTaskQueue.csproj +++ b/samples/AwsTaskQueue/AwsTaskQueue.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable false diff --git a/samples/GcpSample/GcpSample.csproj b/samples/GcpSample/GcpSample.csproj index d957171..db73b1a 100644 --- a/samples/GcpSample/GcpSample.csproj +++ b/samples/GcpSample/GcpSample.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net10.0 enable enable false diff --git a/samples/KafkaSample/KafkaSample.csproj b/samples/KafkaSample/KafkaSample.csproj index 5ca1517..0c71fd4 100644 --- a/samples/KafkaSample/KafkaSample.csproj +++ b/samples/KafkaSample/KafkaSample.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net10.0 enable enable false diff --git a/samples/MongoDbSample/MongoDbSample.csproj b/samples/MongoDbSample/MongoDbSample.csproj index 99964e9..6a3249f 100644 --- a/samples/MongoDbSample/MongoDbSample.csproj +++ b/samples/MongoDbSample/MongoDbSample.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net10.0 enable enable false diff --git a/samples/PostgreFullSample/PostgreFullSample.csproj b/samples/PostgreFullSample/PostgreFullSample.csproj index 0fbaa84..e32d053 100644 --- a/samples/PostgreFullSample/PostgreFullSample.csproj +++ b/samples/PostgreFullSample/PostgreFullSample.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net10.0 enable enable false diff --git a/samples/RedisSample/RedisSample.csproj b/samples/RedisSample/RedisSample.csproj index 5c4cc60..0454e9f 100644 --- a/samples/RedisSample/RedisSample.csproj +++ b/samples/RedisSample/RedisSample.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable false diff --git a/samples/RmqTaskQueue/RmqTaskQueue.csproj b/samples/RmqTaskQueue/RmqTaskQueue.csproj index c174457..00084bf 100644 --- a/samples/RmqTaskQueue/RmqTaskQueue.csproj +++ b/samples/RmqTaskQueue/RmqTaskQueue.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable false diff --git a/samples/RocketMqSample/RocketMqSample.csproj b/samples/RocketMqSample/RocketMqSample.csproj index 96a1113..b345a29 100644 --- a/samples/RocketMqSample/RocketMqSample.csproj +++ b/samples/RocketMqSample/RocketMqSample.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable false diff --git a/samples/SqlServerSample/SqlServerSample.csproj b/samples/SqlServerSample/SqlServerSample.csproj index a638068..55953b2 100644 --- a/samples/SqlServerSample/SqlServerSample.csproj +++ b/samples/SqlServerSample/SqlServerSample.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable false diff --git a/src/Fluent.Brighter.GoogleCloud/Extensions/ConsumerBuilderExtensions.cs b/src/Fluent.Brighter.GoogleCloud/Extensions/ConsumerBuilderExtensions.cs index 470b2b3..83bb974 100644 --- a/src/Fluent.Brighter.GoogleCloud/Extensions/ConsumerBuilderExtensions.cs +++ b/src/Fluent.Brighter.GoogleCloud/Extensions/ConsumerBuilderExtensions.cs @@ -1,13 +1,10 @@ using System; - using Fluent.Brighter.GoogleCloud; - using Paramore.Brighter; using Paramore.Brighter.Firestore; using Paramore.Brighter.Inbox.Firestore; using Paramore.Brighter.Inbox.Spanner; using Paramore.Brighter.MessagingGateway.GcpPubSub; - using SpannerInboxBuilder = Fluent.Brighter.GoogleCloud.SpannerInboxBuilder; namespace Fluent.Brighter; @@ -23,25 +20,30 @@ public static class ConsumerBuilderExtensions /// The consumer builder instance. /// The configured to add. /// The consumer builder for method chaining. - public static ConsumerBuilder AddPubSubSubscription(this ConsumerBuilder builder, GcpPubSubSubscription subscription) + public static ConsumerBuilder AddPubSubSubscription( + this ConsumerBuilder builder, + GcpPubSubSubscription subscription + ) { return builder.AddSubscription(subscription); } - + /// /// Adds a Google Cloud Pub/Sub subscription to the consumer builder using a configuration action. /// /// The consumer builder instance. /// An action to configure the . /// The consumer builder for method chaining. - public static ConsumerBuilder AddPubSubSubscription(this ConsumerBuilder builder, - Action configure) + public static ConsumerBuilder AddPubSubSubscription( + this ConsumerBuilder builder, + Action configure + ) { var subscription = new GcpPubSubSubscriptionBuilder(); configure(subscription); return builder.AddSubscription(subscription.Build()); } - + /// /// Adds a Google Cloud Pub/Sub subscription to the consumer builder with a strongly-typed request using a configuration action. /// @@ -49,7 +51,10 @@ public static ConsumerBuilder AddPubSubSubscription(this ConsumerBuilder builder /// The consumer builder instance. /// An action to configure the . /// The consumer builder for method chaining. - public static ConsumerBuilder AddPubSubSubscription(this ConsumerBuilder builder, Action configure) + public static ConsumerBuilder AddPubSubSubscription( + this ConsumerBuilder builder, + Action configure + ) where TRequest : class, IRequest { var subscription = new GcpPubSubSubscriptionBuilder(); @@ -57,14 +62,17 @@ public static ConsumerBuilder AddPubSubSubscription(this ConsumerBuild configure(subscription); return builder.AddSubscription(subscription.Build()); } - + /// /// Adds a Google Cloud Pub/Sub channel factory to the consumer builder. /// /// The consumer builder instance. /// An action to configure the . /// The consumer builder for method chaining. - public static ConsumerBuilder AddPubSubChannelFactory(this ConsumerBuilder builder, Action configure) + public static ConsumerBuilder AddPubSubChannelFactory( + this ConsumerBuilder builder, + Action configure + ) { var subscription = new GcpMessagingGatewayConnectionBuilder(); configure(subscription); @@ -77,76 +85,92 @@ public static ConsumerBuilder AddPubSubChannelFactory(this ConsumerBuilder build /// The consumer builder instance. /// An action to configure the . /// The consumer builder for method chaining. - public static ConsumerBuilder UseFirestoreInbox(this ConsumerBuilder builder, - Action configure) + public static ConsumerBuilder UseFirestoreInbox( + this ConsumerBuilder builder, + Action configure + ) { var configuration = new FirestoreInboxBuilder(); configure(configuration); return builder.UseFirestoreInbox(configuration.Build()); } - + /// /// Configures the consumer to use Google Cloud Firestore as the inbox storage using an existing gateway connection. /// /// The consumer builder instance. /// The containing credentials and project information. /// The consumer builder for method chaining. - public static ConsumerBuilder UseFirestoreInbox(this ConsumerBuilder builder, GcpMessagingGatewayConnection connection) + public static ConsumerBuilder UseFirestoreInbox( + this ConsumerBuilder builder, + GcpMessagingGatewayConnection connection + ) { - return builder.UseFirestoreInbox(cfg => cfg - .SetConfiguration(c => c - .SetCredential(connection.Credential) - .SetProjectId(connection.ProjectId) - .SetInbox(new FirestoreCollection{ Name = "inbox"}))); + return builder.UseFirestoreInbox(cfg => + cfg.SetConfiguration(c => + c.SetCredential(connection.Credential) + .SetProjectId(connection.ProjectId) + .SetInbox(new FirestoreCollection { Name = "inbox" }) + ) + ); } - + /// /// Configures the consumer to use Google Cloud Firestore as the inbox storage with a pre-configured inbox instance. /// /// The consumer builder instance. /// The configured instance. /// The consumer builder for method chaining. - public static ConsumerBuilder UseFirestoreInbox(this ConsumerBuilder builder, FirestoreInbox inbox) + public static ConsumerBuilder UseFirestoreInbox( + this ConsumerBuilder builder, + FirestoreInbox inbox + ) { return builder.SetInbox(cfg => cfg.SetInbox(inbox)); } - + /// /// Configures the consumer to use Google Cloud Spanner as the inbox storage. /// /// The consumer builder instance. /// An action to configure the . /// The consumer builder for method chaining. - public static ConsumerBuilder UseSpannerInbox(this ConsumerBuilder builder, - Action configure) + public static ConsumerBuilder UseSpannerInbox( + this ConsumerBuilder builder, + Action configure + ) { var configuration = new SpannerInboxBuilder(); configure(configuration); return builder.UseSpannerInbox(configuration.Build()); } - + /// /// Configures the consumer to use Google Cloud Spanner as the inbox storage with a connection string. /// /// The consumer builder instance. /// The Spanner connection string. /// The consumer builder for method chaining. - public static ConsumerBuilder UseSpannerInbox(this ConsumerBuilder builder, string connectionString) + public static ConsumerBuilder UseSpannerInbox( + this ConsumerBuilder builder, + string connectionString + ) { - return builder.UseSpannerInbox(cfg => cfg - .SetConfiguration(c => c - .SetConnectionString(connectionString) - .SetInboxTableName("inbox"))); + return builder.UseSpannerInbox(cfg => + cfg.SetConfiguration(c => + c.SetConnectionString(connectionString).SetInboxTableName("inbox") + ) + ); } - + /// /// Configures the consumer to use Google Cloud Spanner as the inbox storage with a pre-configured inbox instance. /// /// The consumer builder instance. - /// The configured instance. + /// The configured instance. /// The consumer builder for method chaining. - public static ConsumerBuilder UseSpannerInbox(this ConsumerBuilder builder, SpannerInboxAsync inbox) + public static ConsumerBuilder UseSpannerInbox(this ConsumerBuilder builder, SpannerInbox inbox) { return builder.SetInbox(cfg => cfg.SetInbox(inbox)); } -} \ No newline at end of file +} diff --git a/src/Fluent.Brighter.GoogleCloud/SpannerInboxBuilder.cs b/src/Fluent.Brighter.GoogleCloud/SpannerInboxBuilder.cs index d470908..84d090b 100644 --- a/src/Fluent.Brighter.GoogleCloud/SpannerInboxBuilder.cs +++ b/src/Fluent.Brighter.GoogleCloud/SpannerInboxBuilder.cs @@ -4,7 +4,7 @@ namespace Fluent.Brighter.GoogleCloud; /// -/// Builder class for creating instances of . +/// Builder class for creating instances of . /// Provides a fluent API for configuring Google Cloud Spanner inbox storage. /// public sealed class SpannerInboxBuilder @@ -29,25 +29,28 @@ public SpannerInboxBuilder SetConfiguration(IAmARelationalDatabaseConfiguration /// /// The connection provider to use for managing database connections. /// The builder instance for method chaining. - public SpannerInboxBuilder SetConnectionProvider(IAmARelationalDbConnectionProvider connectionProvider) + public SpannerInboxBuilder SetConnectionProvider( + IAmARelationalDbConnectionProvider connectionProvider + ) { _connectionProvider = connectionProvider; return this; } - + /// - /// Builds a new instance of using the configured settings. + /// Builds a new instance of using the configured settings. /// - /// A configured instance. + /// A configured instance. /// Thrown when configuration is not set. - internal SpannerInboxAsync Build() + internal SpannerInbox Build() { if (_configuration == null) { throw new ConfigurationException("Configuration is null"); } - - return _connectionProvider == null ? new SpannerInboxAsync(_configuration) - : new SpannerInboxAsync(_configuration, _connectionProvider); + + return _connectionProvider == null + ? new SpannerInbox(_configuration) + : new SpannerInbox(_configuration, _connectionProvider); } } \ No newline at end of file