Skip to content

Commit 0132493

Browse files
committed
#281 Access to underlying service collection in builder
1 parent aa9ef1f commit 0132493

File tree

4 files changed

+29
-6
lines changed

4 files changed

+29
-6
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"Projects": [
3+
{
4+
"Name": "AWS.Messaging",
5+
"Type": "Patch",
6+
"ChangelogMessages": [
7+
"Add builder overload to modify underlying service collection on build"
8+
]
9+
}
10+
]
11+
}

src/AWS.Messaging/Configuration/MessageBusBuilder.cs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class MessageBusBuilder : IMessageBusBuilder
2929
{
3030
private static readonly ConcurrentDictionary<IServiceCollection, MessageConfiguration> _messageConfigurations = new();
3131
private readonly MessageConfiguration _messageConfiguration;
32-
private readonly IList<ServiceDescriptor> _additionalServices = new List<ServiceDescriptor>();
32+
private readonly IList<Action<IMessageConfiguration, IServiceCollection>> _additionalServices = new List<Action<IMessageConfiguration, IServiceCollection>>();
3333
private readonly IServiceCollection _serviceCollection;
3434

3535
/// <summary>
@@ -301,7 +301,14 @@ MessageEnvelope envelopeFactory()
301301
/// <inheritdoc/>
302302
public IMessageBusBuilder AddAdditionalService(ServiceDescriptor serviceDescriptor)
303303
{
304-
_additionalServices.Add(serviceDescriptor);
304+
_additionalServices.Add((_, services) => services.TryAdd(serviceDescriptor));
305+
return this;
306+
}
307+
308+
/// <inheritdoc/>
309+
public IMessageBusBuilder AddAdditionalService(Action<IMessageConfiguration, IServiceCollection> action)
310+
{
311+
_additionalServices.Add(action);
305312
return this;
306313
}
307314

@@ -410,9 +417,9 @@ internal void Build()
410417
}
411418
}
412419

413-
foreach (var service in _additionalServices)
420+
foreach (var action in _additionalServices)
414421
{
415-
_serviceCollection.TryAdd(service);
422+
action.Invoke(_messageConfiguration, _serviceCollection);
416423
}
417424
}
418425

test/AWS.Messaging.IntegrationTests/LambdaTests.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,13 @@ public class LambdaIntegrationTestFixture : IAsyncLifetime, IDisposable
6666

6767
public LambdaIntegrationTestFixture()
6868
{
69+
var config = new AmazonS3Config
70+
{
71+
ForcePathStyle = bool.TryParse(Environment.GetEnvironmentVariable("AWS_S3_FORCE_PATH_STYLE"), out var force) && force
72+
};
73+
6974
_iamClient = new AmazonIdentityManagementServiceClient();
70-
_s3Client = new AmazonS3Client();
75+
_s3Client = new AmazonS3Client(config);
7176
}
7277

7378
public async Task InitializeAsync()

test/AWS.Messaging.Tests.Common/AWSUtilities.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public async static Task CreateBucketWithDeploymentZipAsync(IAmazonS3 s3Client,
118118
{
119119
// Create bucket if it doesn't exist
120120
var listBucketsResponse = await s3Client.ListBucketsAsync();
121-
if (listBucketsResponse.Buckets.Find((bucket) => bucket.BucketName == bucketName) == null)
121+
if (listBucketsResponse.Buckets?.Find((bucket) => bucket.BucketName == bucketName) == null)
122122
{
123123
var putBucketRequest = new PutBucketRequest
124124
{

0 commit comments

Comments
 (0)