Skip to content

Commit 1591c17

Browse files
authored
Merge pull request #199 from Particular/backport-throw
Throw if endpoint configured for message-driven pub/sub
2 parents f8da320 + fb937f2 commit 1591c17

File tree

4 files changed

+22
-2
lines changed

4 files changed

+22
-2
lines changed

src/NServiceBus.Persistence.CosmosDB/NServiceBus.Persistence.CosmosDB.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<ItemGroup>
1010
<PackageReference Include="Particular.Packaging" Version="1.2.1" PrivateAssets="All" />
1111
<PackageReference Include="NServiceBus" Version="[7.1.10, 8.0.0)" />
12-
<PackageReference Include="Microsoft.Azure.Cosmos" Version="[3.15.0, 4)" />
12+
<PackageReference Include="Microsoft.Azure.Cosmos" Version="[3.20.1, 4)" />
1313
</ItemGroup>
1414

15-
</Project>
15+
</Project>

src/NServiceBus.Persistence.CosmosDB/Outbox/OutboxStorage.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ class OutboxStorage : Feature
1919

2020
protected override void Setup(FeatureConfigurationContext context)
2121
{
22+
NonNativePubSubCheck.ThrowIfMessageDrivenPubSubInUse(context);
23+
2224
var serializer = new JsonSerializer { ContractResolver = new UpperCaseIdIntoLowerCaseIdContractResolver() };
2325

2426
var ttlInSeconds = context.Settings.Get<int>(SettingsKeys.OutboxTimeToLiveInSeconds);

src/NServiceBus.Persistence.CosmosDB/Saga/SagaPersistence.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ internal CosmosDbSagaPersistence()
1919

2020
protected override void Setup(FeatureConfigurationContext context)
2121
{
22+
NonNativePubSubCheck.ThrowIfMessageDrivenPubSubInUse(context);
23+
2224
var serializer = new JsonSerializer { ContractResolver = new UpperCaseIdIntoLowerCaseIdContractResolver() };
2325

2426
var migrationModeEnabled = context.Settings.GetOrDefault<bool>(SettingsKeys.EnableMigrationMode);
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
namespace NServiceBus.Persistence.CosmosDB
2+
{
3+
using System;
4+
using NServiceBus.Features;
5+
6+
class NonNativePubSubCheck
7+
{
8+
public static void ThrowIfMessageDrivenPubSubInUse(FeatureConfigurationContext context)
9+
{
10+
if (context.Settings.IsFeatureEnabled(typeof(MessageDrivenSubscriptions)) || context.Settings.IsFeatureActive(typeof(MessageDrivenSubscriptions)))
11+
{
12+
throw new Exception("NServiceBus.Persistence.CosmosDB must be used with a transport that provides native publish/subscribe capabilities, and cannot be used with message-driven publish/subscribe.");
13+
}
14+
}
15+
}
16+
}

0 commit comments

Comments
 (0)