Skip to content

Commit ef87922

Browse files
committed
Upgrade to latest DotPulsar version
* This requires switching the ProtoBufSchema to use Google.Protobuf library * Adds Ulid.Protobuf library to provide similar interop with Google.Protobuf
1 parent 273059e commit ef87922

22 files changed

+606
-37
lines changed

Directory.Packages.props

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,25 @@
33
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
44
</PropertyGroup>
55
<ItemGroup>
6-
<PackageVersion Include="DotPulsar" Version="4.2.0" />
7-
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
8-
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
9-
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="8.0.0" />
10-
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
6+
<PackageVersion Include="DotPulsar" Version="5.0.0" />
7+
<PackageVersion Include="Google.Protobuf" Version="3.33.0" />
8+
<PackageVersion Include="Grpc.Tools" Version="2.76.0" />
9+
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="9.0.10" />
10+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.10" />
11+
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="9.0.10" />
12+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.0" />
1113
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="all" />
1214
<PackageVersion Include="MinVer" Version="6.0.0" PrivateAssets="all" />
13-
<PackageVersion Include="OpenTelemetry.Api" Version="1.9.0" />
14-
<PackageVersion Include="Polly" Version="8.5.2" />
15-
<PackageVersion Include="protobuf-net" Version="3.2.46" />
16-
<PackageVersion Include="System.Text.Json" Version="8.0.5" />
17-
<PackageVersion Include="Testcontainers.Pulsar" Version="4.3.0" />
18-
<PackageVersion Include="Ulid" Version="1.3.4" />
15+
<PackageVersion Include="OpenTelemetry.Api" Version="1.13.1" />
16+
<PackageVersion Include="Polly" Version="8.6.4" />
17+
<PackageVersion Include="protobuf-net" Version="3.2.56" />
18+
<PackageVersion Include="System.Text.Json" Version="9.0.10" />
19+
<PackageVersion Include="Testcontainers.Pulsar" Version="4.8.1" />
20+
<PackageVersion Include="Ulid" Version="1.4.1" />
1921
<PackageVersion Include="xunit" Version="2.9.3" />
20-
<PackageVersion Include="xunit.runner.visualstudio" Version="3.0.2">
22+
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5">
2123
<PrivateAssets>all</PrivateAssets>
2224
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2325
</PackageVersion>
2426
</ItemGroup>
25-
</Project>
27+
</Project>

DotPulsar.Extensions.slnx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@
99
<Project Path="src/DotPulsar.Extensions.OpenTelemetry/DotPulsar.Extensions.OpenTelemetry.csproj" />
1010
<Project Path="src/DotPulsar.Extensions.Resiliency/DotPulsar.Extensions.Resiliency.csproj" />
1111
<Project Path="src/DotPulsar.Extensions.Schemas/DotPulsar.Extensions.Schemas.csproj" />
12+
<Project Path="src/Ulid.Protobuf/Ulid.Protobuf.csproj" />
1213
<Project Path="src/Ulid.protobuf-net/Ulid.protobuf-net.csproj" />
1314
</Folder>
1415
<Folder Name="/test/">
1516
<Project Path="test/DotPulsar.Extensions.DependencyInjection.Tests/DotPulsar.Extensions.DependencyInjection.Tests.csproj" />
1617
<Project Path="test/DotPulsar.Extensions.Resiliency.Tests/DotPulsar.Extensions.Resiliency.Tests.csproj" />
18+
<Project Path="test/Ulid.Protobuf.Tests/Ulid.Protobuf.Tests.csproj" />
1719
<Project Path="test/Ulid.protobuf-net.Tests/Ulid.protobuf-net.Tests.csproj" />
1820
</Folder>
1921
</Solution>

src/DotPulsar.Extensions.DependencyInjection/DotPulsar.Extensions.DependencyInjection.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<RootNamespace>DotPulsar</RootNamespace>
55
<PackageTags>$(PackageTags);Pulsar</PackageTags>
66
<Description>DotPulsar.Extensions.DependencyInjection adds support for using DotPulsar with the Microsoft.Extensions.DependencyInjection APIs.</Description>
7-
<TargetFrameworks>net6.0;net7.0;net8.0;net9.0</TargetFrameworks>
7+
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
88
<ImplicitUsings>enable</ImplicitUsings>
99
<Nullable>enable</Nullable>
1010
<LangVersion>latest</LangVersion>

src/DotPulsar.Extensions.OpenTelemetry/DotPulsar.Extensions.OpenTelemetry.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<RootNamespace>DotPulsar</RootNamespace>
55
<PackageTags>$(PackageTags);Pulsar</PackageTags>
66
<Description>DotPulsar.OpenTelemetry integrates DotPulsar with OpenTelemetry APIs.</Description>
7-
<TargetFrameworks>net6.0;net7.0;net8.0;net9.0</TargetFrameworks>
7+
<TargetFrameworks>netstandard2.0;netstandard2.1;net8.0;net9.0</TargetFrameworks>
88
<ImplicitUsings>enable</ImplicitUsings>
99
<Nullable>enable</Nullable>
1010
<LangVersion>latest</LangVersion>

src/DotPulsar.Extensions.OpenTelemetry/PulsarMeterProviderBuilderExtensions.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,13 @@ namespace OpenTelemetry.Metrics;
66
public static class PulsarMeterProviderBuilderExtensions
77
{
88
public static MeterProviderBuilder AddPulsarInstrumentation(this MeterProviderBuilder builder) {
9+
#if NET7_0_OR_GREATER
910
ArgumentNullException.ThrowIfNull(builder);
11+
#else
12+
if (builder is null) {
13+
throw new ArgumentNullException(nameof(builder));
14+
}
15+
#endif
1016
builder.AddMeter(Constants.ClientName);
1117
return builder;
1218
}

src/DotPulsar.Extensions.OpenTelemetry/PulsarTracerProviderBuilderExtensions.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,13 @@ namespace OpenTelemetry.Trace;
66
public static class PulsarTracerProviderBuilderExtensions
77
{
88
public static TracerProviderBuilder AddPulsarInstrumentation(this TracerProviderBuilder builder) {
9+
#if NET7_0_OR_GREATER
910
ArgumentNullException.ThrowIfNull(builder);
11+
#else
12+
if (builder is null) {
13+
throw new ArgumentNullException(nameof(builder));
14+
}
15+
#endif
1016
builder.AddSource(Constants.ClientName);
1117
return builder;
1218
}

src/DotPulsar.Extensions.Resiliency/DotPulsar.Extensions.Resiliency.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<RootNamespace>DotPulsar</RootNamespace>
55
<PackageTags>$(PackageTags);Pulsar</PackageTags>
66
<Description>DotPulsar.Extensions.Resiliency adds resiliency extensions working with Pulsar.</Description>
7-
<TargetFrameworks>netstandard2.0;netstandard2.1;net6.0;net7.0;net8.0;net9.0</TargetFrameworks>
7+
<TargetFrameworks>netstandard2.0;netstandard2.1;net8.0;net9.0</TargetFrameworks>
88
<ImplicitUsings>enable</ImplicitUsings>
99
<Nullable>enable</Nullable>
1010
<LangVersion>latest</LangVersion>

src/DotPulsar.Extensions.Resiliency/Extensions/PulsarResilientExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public static IProducer<TMessage> CreateResilient<TMessage>(this IProducerBuilde
8181
#endif
8282

8383
if (resiliencePipeline == null || Equals(resiliencePipeline, ResiliencePipeline.Empty)) {
84-
return producerBuilder.Create();
84+
resiliencePipeline = new ResiliencePipelineBuilder().AddResilientProducerDefaults().Build();
8585
}
8686
return new ResilientProducer<TMessage>(producerBuilder, resiliencePipeline);
8787
}

src/DotPulsar.Extensions.Schemas/DotPulsar.Extensions.Schemas.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<RootNamespace>DotPulsar</RootNamespace>
55
<PackageTags>$(PackageTags);Pulsar</PackageTags>
66
<Description>DotPulsar.Extensions.Schemas adds support for using Json and ProtoBuf producers, consumers, and receivers.</Description>
7-
<TargetFrameworks>netstandard2.1;net6.0;net7.0;net8.0;net9.0</TargetFrameworks>
7+
<TargetFrameworks>netstandard2.1;net8.0;net9.0</TargetFrameworks>
88
<ImplicitUsings>enable</ImplicitUsings>
99
<Nullable>enable</Nullable>
1010
<LangVersion>latest</LangVersion>

src/DotPulsar.Extensions.Schemas/Extensions/PulsarSchemaExtensions.cs

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,47 @@
11
using System.Text.Json;
22
using DotPulsar.Abstractions;
33
using DotPulsar.Schemas;
4+
using Google.Protobuf;
45

56
namespace DotPulsar.Extensions;
67

78
public static class PulsarSchemaExtensions
89
{
9-
public static IProducerBuilder<TMessage> NewProtoBufProducer<TMessage>(this IPulsarClient client) {
10+
#if NET8_0_OR_GREATER
11+
public static IProducerBuilder<TMessage> NewProtoBufProducer<TMessage>(this IPulsarClient client)
12+
where TMessage : IMessageWithParser<TMessage> {
1013
return client.NewProducer(ProtoBufSchema.Get<TMessage>());
1114
}
15+
#endif
1216

13-
public static IConsumerBuilder<TMessage> NewProtoBufConsumer<TMessage>(this IPulsarClient client) {
17+
public static IProducerBuilder<TMessage> NewProtoBufProducer<TMessage>(this IPulsarClient client, MessageParser<TMessage> parser)
18+
where TMessage : Google.Protobuf.IMessage<TMessage> {
19+
return client.NewProducer(new ProtoBufSchema<TMessage>(parser));
20+
}
21+
22+
#if NET8_0_OR_GREATER
23+
public static IConsumerBuilder<TMessage> NewProtoBufConsumer<TMessage>(this IPulsarClient client)
24+
where TMessage : IMessageWithParser<TMessage> {
1425
return client.NewConsumer(ProtoBufSchema.Get<TMessage>());
1526
}
27+
#endif
28+
29+
public static IConsumerBuilder<TMessage> NewProtoBufConsumer<TMessage>(this IPulsarClient client, MessageParser<TMessage> parser)
30+
where TMessage : Google.Protobuf.IMessage<TMessage> {
31+
return client.NewConsumer(new ProtoBufSchema<TMessage>(parser));
32+
}
1633

17-
public static IReaderBuilder<TMessage> NewProtoBufReader<TMessage>(this IPulsarClient client) {
34+
#if NET8_0_OR_GREATER
35+
public static IReaderBuilder<TMessage> NewProtoBufReader<TMessage>(this IPulsarClient client)
36+
where TMessage : IMessageWithParser<TMessage> {
1837
return client.NewReader(ProtoBufSchema.Get<TMessage>());
1938
}
39+
#endif
40+
41+
public static IReaderBuilder<TMessage> NewProtoBufReader<TMessage>(this IPulsarClient client, MessageParser<TMessage> parser)
42+
where TMessage : Google.Protobuf.IMessage<TMessage> {
43+
return client.NewReader(new ProtoBufSchema<TMessage>(parser));
44+
}
2045

2146
public static IProducerBuilder<TMessage> NewJsonProducer<TMessage>(this IPulsarClient client, JsonSerializerOptions? serializerOptions = null) {
2247
return client.NewProducer(JsonSchema.Get<TMessage>(serializerOptions));

0 commit comments

Comments
 (0)