From 6d891161c30e8eab852edca55205f6f5d1afaab1 Mon Sep 17 00:00:00 2001 From: Fernando Lima Date: Tue, 24 Jun 2025 20:18:48 -0300 Subject: [PATCH 1/5] feat: implement Central Package Management (CPM) - Add Directory.Packages.props with centralized package versions - Remove version attributes from all PackageReference elements - Organize packages alphabetically in logical sections - Enable solution-wide consistent dependency management --- Confluent.Kafka.Core.sln | 1 + Directory.Packages.props | 50 +++++++++++++++++++ .../Confluent.Kafka.Core.Abstractions.csproj | 8 +-- ...fluent.Kafka.Core.Idempotency.Redis.csproj | 2 +- .../Confluent.Kafka.Core.OpenTelemetry.csproj | 2 +- .../Confluent.Kafka.Core.Retry.Polly.csproj | 2 +- ...t.Kafka.Core.Serialization.JsonCore.csproj | 2 +- ...a.Core.Serialization.NewtonsoftJson.csproj | 2 +- ...afka.Core.Serialization.ProtobufNet.csproj | 2 +- ...e.Serialization.SchemaRegistry.Avro.csproj | 2 +- ...e.Serialization.SchemaRegistry.Json.csproj | 2 +- ...rialization.SchemaRegistry.Protobuf.csproj | 4 +- .../Confluent.Kafka.Core.Shared.Tests.csproj | 16 +++--- .../Confluent.Kafka.Core.Tests.csproj | 12 ++--- 14 files changed, 79 insertions(+), 28 deletions(-) create mode 100644 Directory.Packages.props diff --git a/Confluent.Kafka.Core.sln b/Confluent.Kafka.Core.sln index 8a96b92..46b2a3c 100644 --- a/Confluent.Kafka.Core.sln +++ b/Confluent.Kafka.Core.sln @@ -55,6 +55,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution ProjectSection(SolutionItems) = preProject .gitignore = .gitignore Directory.Build.props = Directory.Build.props + Directory.Packages.props = Directory.Packages.props docker-compose.yml = docker-compose.yml LICENSE = LICENSE README.md = README.md diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 0000000..fa9f31a --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,50 @@ + + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Confluent.Kafka.Core.Abstractions/Confluent.Kafka.Core.Abstractions.csproj b/src/Confluent.Kafka.Core.Abstractions/Confluent.Kafka.Core.Abstractions.csproj index f322d66..6ffd40c 100644 --- a/src/Confluent.Kafka.Core.Abstractions/Confluent.Kafka.Core.Abstractions.csproj +++ b/src/Confluent.Kafka.Core.Abstractions/Confluent.Kafka.Core.Abstractions.csproj @@ -22,10 +22,10 @@ - - - - + + + + diff --git a/src/Confluent.Kafka.Core.Idempotency.Redis/Confluent.Kafka.Core.Idempotency.Redis.csproj b/src/Confluent.Kafka.Core.Idempotency.Redis/Confluent.Kafka.Core.Idempotency.Redis.csproj index a327863..11f765c 100644 --- a/src/Confluent.Kafka.Core.Idempotency.Redis/Confluent.Kafka.Core.Idempotency.Redis.csproj +++ b/src/Confluent.Kafka.Core.Idempotency.Redis/Confluent.Kafka.Core.Idempotency.Redis.csproj @@ -39,7 +39,7 @@ - + diff --git a/src/Confluent.Kafka.Core.OpenTelemetry/Confluent.Kafka.Core.OpenTelemetry.csproj b/src/Confluent.Kafka.Core.OpenTelemetry/Confluent.Kafka.Core.OpenTelemetry.csproj index 9a0fa52..c6d7aef 100644 --- a/src/Confluent.Kafka.Core.OpenTelemetry/Confluent.Kafka.Core.OpenTelemetry.csproj +++ b/src/Confluent.Kafka.Core.OpenTelemetry/Confluent.Kafka.Core.OpenTelemetry.csproj @@ -21,7 +21,7 @@ - + diff --git a/src/Confluent.Kafka.Core.Retry.Polly/Confluent.Kafka.Core.Retry.Polly.csproj b/src/Confluent.Kafka.Core.Retry.Polly/Confluent.Kafka.Core.Retry.Polly.csproj index cb41679..e7e7e1b 100644 --- a/src/Confluent.Kafka.Core.Retry.Polly/Confluent.Kafka.Core.Retry.Polly.csproj +++ b/src/Confluent.Kafka.Core.Retry.Polly/Confluent.Kafka.Core.Retry.Polly.csproj @@ -38,7 +38,7 @@ - + diff --git a/src/Confluent.Kafka.Core.Serialization.JsonCore/Confluent.Kafka.Core.Serialization.JsonCore.csproj b/src/Confluent.Kafka.Core.Serialization.JsonCore/Confluent.Kafka.Core.Serialization.JsonCore.csproj index 79be5bc..435c90c 100644 --- a/src/Confluent.Kafka.Core.Serialization.JsonCore/Confluent.Kafka.Core.Serialization.JsonCore.csproj +++ b/src/Confluent.Kafka.Core.Serialization.JsonCore/Confluent.Kafka.Core.Serialization.JsonCore.csproj @@ -36,7 +36,7 @@ - + diff --git a/src/Confluent.Kafka.Core.Serialization.NewtonsoftJson/Confluent.Kafka.Core.Serialization.NewtonsoftJson.csproj b/src/Confluent.Kafka.Core.Serialization.NewtonsoftJson/Confluent.Kafka.Core.Serialization.NewtonsoftJson.csproj index 44ac55d..51f5974 100644 --- a/src/Confluent.Kafka.Core.Serialization.NewtonsoftJson/Confluent.Kafka.Core.Serialization.NewtonsoftJson.csproj +++ b/src/Confluent.Kafka.Core.Serialization.NewtonsoftJson/Confluent.Kafka.Core.Serialization.NewtonsoftJson.csproj @@ -36,7 +36,7 @@ - + diff --git a/src/Confluent.Kafka.Core.Serialization.ProtobufNet/Confluent.Kafka.Core.Serialization.ProtobufNet.csproj b/src/Confluent.Kafka.Core.Serialization.ProtobufNet/Confluent.Kafka.Core.Serialization.ProtobufNet.csproj index 90eef6e..5c271c0 100644 --- a/src/Confluent.Kafka.Core.Serialization.ProtobufNet/Confluent.Kafka.Core.Serialization.ProtobufNet.csproj +++ b/src/Confluent.Kafka.Core.Serialization.ProtobufNet/Confluent.Kafka.Core.Serialization.ProtobufNet.csproj @@ -36,7 +36,7 @@ - + diff --git a/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro/Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro.csproj b/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro/Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro.csproj index 009838a..72fe5c2 100644 --- a/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro/Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro.csproj +++ b/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro/Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro.csproj @@ -54,7 +54,7 @@ - + diff --git a/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Json/Confluent.Kafka.Core.Serialization.SchemaRegistry.Json.csproj b/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Json/Confluent.Kafka.Core.Serialization.SchemaRegistry.Json.csproj index bd478b0..4d47ccc 100644 --- a/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Json/Confluent.Kafka.Core.Serialization.SchemaRegistry.Json.csproj +++ b/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Json/Confluent.Kafka.Core.Serialization.SchemaRegistry.Json.csproj @@ -54,7 +54,7 @@ - + diff --git a/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf/Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf.csproj b/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf/Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf.csproj index aff677a..1aef91d 100644 --- a/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf/Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf.csproj +++ b/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf/Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf.csproj @@ -54,8 +54,8 @@ - - + + ProtobufNet diff --git a/tests/Confluent.Kafka.Core.Shared.Tests/Confluent.Kafka.Core.Shared.Tests.csproj b/tests/Confluent.Kafka.Core.Shared.Tests/Confluent.Kafka.Core.Shared.Tests.csproj index 9ba36b2..41db38c 100644 --- a/tests/Confluent.Kafka.Core.Shared.Tests/Confluent.Kafka.Core.Shared.Tests.csproj +++ b/tests/Confluent.Kafka.Core.Shared.Tests/Confluent.Kafka.Core.Shared.Tests.csproj @@ -18,20 +18,20 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/tests/Confluent.Kafka.Core.Tests/Confluent.Kafka.Core.Tests.csproj b/tests/Confluent.Kafka.Core.Tests/Confluent.Kafka.Core.Tests.csproj index 6012952..11f5374 100644 --- a/tests/Confluent.Kafka.Core.Tests/Confluent.Kafka.Core.Tests.csproj +++ b/tests/Confluent.Kafka.Core.Tests/Confluent.Kafka.Core.Tests.csproj @@ -20,18 +20,18 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive From bbad77ed370c7a52253bc8e95f32694d1f957402 Mon Sep 17 00:00:00 2001 From: Fernando Lima Date: Tue, 24 Jun 2025 20:30:34 -0300 Subject: [PATCH 2/5] feat: add NuGet.Config for package source management - Add explicit package source configuration at solution level - Support CPM best practices and consistent package resolution --- Confluent.Kafka.Core.sln | 1 + NuGet.Config | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 NuGet.Config diff --git a/Confluent.Kafka.Core.sln b/Confluent.Kafka.Core.sln index 46b2a3c..83a93d3 100644 --- a/Confluent.Kafka.Core.sln +++ b/Confluent.Kafka.Core.sln @@ -58,6 +58,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Directory.Packages.props = Directory.Packages.props docker-compose.yml = docker-compose.yml LICENSE = LICENSE + NuGet.Config = NuGet.Config README.md = README.md EndProjectSection EndProject diff --git a/NuGet.Config b/NuGet.Config new file mode 100644 index 0000000..36a3005 --- /dev/null +++ b/NuGet.Config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file From 3b898c9a8d1fe5858f86b71a5385b9fe0f01a3ae Mon Sep 17 00:00:00 2001 From: Fernando Lima Date: Tue, 24 Jun 2025 20:33:47 -0300 Subject: [PATCH 3/5] style: convert tabs to 4 spaces in Directory.Packages.props - Standardize indentation for better consistency and readability --- Directory.Packages.props | 90 ++++++++++++++++++++-------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index fa9f31a..f0d2885 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,50 +1,50 @@ - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 65471c63415271d5921a1519824a38af5dd2561d Mon Sep 17 00:00:00 2001 From: Fernando Lima Date: Tue, 24 Jun 2025 20:54:33 -0300 Subject: [PATCH 4/5] style: convert tabs to 4 spaces in all project files - Standardize indentation across all .csproj and Directory.Packages.props - Fix encoding issues and remove BOM signatures - Ensure consistent UTF-8 formatting throughout solution --- .../Confluent.Kafka.Core.Abstractions.csproj | 52 ++++---- ...fluent.Kafka.Core.Idempotency.Redis.csproj | 84 ++++++------- .../Confluent.Kafka.Core.OpenTelemetry.csproj | 44 +++---- .../Confluent.Kafka.Core.Retry.Polly.csproj | 82 ++++++------ ...t.Kafka.Core.Serialization.JsonCore.csproj | 78 ++++++------ ...a.Core.Serialization.NewtonsoftJson.csproj | 78 ++++++------ ...afka.Core.Serialization.ProtobufNet.csproj | 78 ++++++------ ...e.Serialization.SchemaRegistry.Avro.csproj | 112 ++++++++--------- ...e.Serialization.SchemaRegistry.Json.csproj | 112 ++++++++--------- ...rialization.SchemaRegistry.Protobuf.csproj | 118 +++++++++--------- .../Confluent.Kafka.Core.csproj | 76 +++++------ .../Confluent.Kafka.Core.Shared.Tests.csproj | 66 +++++----- .../Confluent.Kafka.Core.Tests.csproj | 68 +++++----- 13 files changed, 524 insertions(+), 524 deletions(-) diff --git a/src/Confluent.Kafka.Core.Abstractions/Confluent.Kafka.Core.Abstractions.csproj b/src/Confluent.Kafka.Core.Abstractions/Confluent.Kafka.Core.Abstractions.csproj index 6ffd40c..42e36bb 100644 --- a/src/Confluent.Kafka.Core.Abstractions/Confluent.Kafka.Core.Abstractions.csproj +++ b/src/Confluent.Kafka.Core.Abstractions/Confluent.Kafka.Core.Abstractions.csproj @@ -1,31 +1,31 @@  - - netstandard2.0;netstandard2.1;net8.0;net9.0 - true - true - 1701;1702;1705;1591 - true - Confluent.Kafka.Core.Abstractions - Confluent.Kafka.Core.Abstractions - Lima Technology Services;Fernando Luiz de Lima - Copyright © Lima Technology Services;Fernando Luiz de Lima - Provides abstractions for Apache Kafka .NET client. - https://github.com/ffernandolima/confluent-kafka-core-dotnet - https://github.com/ffernandolima/confluent-kafka-core-dotnet - MIT - git - Apache;Kafka;Confluent;librdkafka;Abstractions - 1.0.5 - latest - Confluent.Kafka.Core - + + netstandard2.0;netstandard2.1;net8.0;net9.0 + true + true + 1701;1702;1705;1591 + true + Confluent.Kafka.Core.Abstractions + Confluent.Kafka.Core.Abstractions + Lima Technology Services;Fernando Luiz de Lima + Copyright © Lima Technology Services;Fernando Luiz de Lima + Provides abstractions for Apache Kafka .NET client. + https://github.com/ffernandolima/confluent-kafka-core-dotnet + https://github.com/ffernandolima/confluent-kafka-core-dotnet + MIT + git + Apache;Kafka;Confluent;librdkafka;Abstractions + 1.0.5 + latest + Confluent.Kafka.Core + - - - - - - + + + + + + diff --git a/src/Confluent.Kafka.Core.Idempotency.Redis/Confluent.Kafka.Core.Idempotency.Redis.csproj b/src/Confluent.Kafka.Core.Idempotency.Redis/Confluent.Kafka.Core.Idempotency.Redis.csproj index 11f765c..5125b96 100644 --- a/src/Confluent.Kafka.Core.Idempotency.Redis/Confluent.Kafka.Core.Idempotency.Redis.csproj +++ b/src/Confluent.Kafka.Core.Idempotency.Redis/Confluent.Kafka.Core.Idempotency.Redis.csproj @@ -1,51 +1,51 @@  - - netstandard2.0;netstandard2.1;net8.0;net9.0 - true - true - 1701;1702;1705;1591 - true - Confluent.Kafka.Core.Idempotency.Redis - Confluent.Kafka.Core.Idempotency.Redis - Lima Technology Services;Fernando Luiz de Lima - Copyright © Lima Technology Services;Fernando Luiz de Lima - Provides idempotency implementation through Redis for Apache Kafka .NET client. - https://github.com/ffernandolima/confluent-kafka-core-dotnet - https://github.com/ffernandolima/confluent-kafka-core-dotnet - MIT - git - Apache;Kafka;Confluent;librdkafka;Idempotency;Redis - 1.0.5 - latest - + + netstandard2.0;netstandard2.1;net8.0;net9.0 + true + true + 1701;1702;1705;1591 + true + Confluent.Kafka.Core.Idempotency.Redis + Confluent.Kafka.Core.Idempotency.Redis + Lima Technology Services;Fernando Luiz de Lima + Copyright © Lima Technology Services;Fernando Luiz de Lima + Provides idempotency implementation through Redis for Apache Kafka .NET client. + https://github.com/ffernandolima/confluent-kafka-core-dotnet + https://github.com/ffernandolima/confluent-kafka-core-dotnet + MIT + git + Apache;Kafka;Confluent;librdkafka;Idempotency;Redis + 1.0.5 + latest + - - - - - - + + + + + + - - - - - - + + + + + + - - - + + + - - - + + + - - - <_Parameter1>Confluent.Kafka.Core.Tests - - + + + <_Parameter1>Confluent.Kafka.Core.Tests + + diff --git a/src/Confluent.Kafka.Core.OpenTelemetry/Confluent.Kafka.Core.OpenTelemetry.csproj b/src/Confluent.Kafka.Core.OpenTelemetry/Confluent.Kafka.Core.OpenTelemetry.csproj index c6d7aef..f27836a 100644 --- a/src/Confluent.Kafka.Core.OpenTelemetry/Confluent.Kafka.Core.OpenTelemetry.csproj +++ b/src/Confluent.Kafka.Core.OpenTelemetry/Confluent.Kafka.Core.OpenTelemetry.csproj @@ -1,27 +1,27 @@ - - netstandard2.0;netstandard2.1;net8.0;net9.0 - true - true - 1701;1702;1705;1591 - true - Confluent.Kafka.Core.OpenTelemetry - Confluent.Kafka.Core.OpenTelemetry - Lima Technology Services;Fernando Luiz de Lima - Copyright © Lima Technology Services;Fernando Luiz de Lima - Provides OpenTelemetry implementation for Apache Kafka .NET client. - https://github.com/ffernandolima/confluent-kafka-core-dotnet - https://github.com/ffernandolima/confluent-kafka-core-dotnet - MIT - git - Apache;Kafka;Confluent;librdkafka;OpenTelemetry - 1.0.5 - latest - + + netstandard2.0;netstandard2.1;net8.0;net9.0 + true + true + 1701;1702;1705;1591 + true + Confluent.Kafka.Core.OpenTelemetry + Confluent.Kafka.Core.OpenTelemetry + Lima Technology Services;Fernando Luiz de Lima + Copyright © Lima Technology Services;Fernando Luiz de Lima + Provides OpenTelemetry implementation for Apache Kafka .NET client. + https://github.com/ffernandolima/confluent-kafka-core-dotnet + https://github.com/ffernandolima/confluent-kafka-core-dotnet + MIT + git + Apache;Kafka;Confluent;librdkafka;OpenTelemetry + 1.0.5 + latest + - - - + + + diff --git a/src/Confluent.Kafka.Core.Retry.Polly/Confluent.Kafka.Core.Retry.Polly.csproj b/src/Confluent.Kafka.Core.Retry.Polly/Confluent.Kafka.Core.Retry.Polly.csproj index e7e7e1b..760c263 100644 --- a/src/Confluent.Kafka.Core.Retry.Polly/Confluent.Kafka.Core.Retry.Polly.csproj +++ b/src/Confluent.Kafka.Core.Retry.Polly/Confluent.Kafka.Core.Retry.Polly.csproj @@ -1,50 +1,50 @@  - - netstandard2.0;netstandard2.1;net8.0;net9.0 - true - true - 1701;1702;1705;1591 - true - Confluent.Kafka.Core.Retry.Polly - Confluent.Kafka.Core.Retry.Polly - Lima Technology Services;Fernando Luiz de Lima - Copyright © Lima Technology Services;Fernando Luiz de Lima - Provides retry implementation through Polly for Apache Kafka .NET client. - https://github.com/ffernandolima/confluent-kafka-core-dotnet - https://github.com/ffernandolima/confluent-kafka-core-dotnet - MIT - git - Apache;Kafka;Confluent;librdkafka;Retry;Polly - 1.0.5 - latest - + + netstandard2.0;netstandard2.1;net8.0;net9.0 + true + true + 1701;1702;1705;1591 + true + Confluent.Kafka.Core.Retry.Polly + Confluent.Kafka.Core.Retry.Polly + Lima Technology Services;Fernando Luiz de Lima + Copyright © Lima Technology Services;Fernando Luiz de Lima + Provides retry implementation through Polly for Apache Kafka .NET client. + https://github.com/ffernandolima/confluent-kafka-core-dotnet + https://github.com/ffernandolima/confluent-kafka-core-dotnet + MIT + git + Apache;Kafka;Confluent;librdkafka;Retry;Polly + 1.0.5 + latest + - - - - - - + + + + + + - - - - - + + + + + - - - + + + - - - + + + - - - <_Parameter1>Confluent.Kafka.Core.Tests - - + + + <_Parameter1>Confluent.Kafka.Core.Tests + + diff --git a/src/Confluent.Kafka.Core.Serialization.JsonCore/Confluent.Kafka.Core.Serialization.JsonCore.csproj b/src/Confluent.Kafka.Core.Serialization.JsonCore/Confluent.Kafka.Core.Serialization.JsonCore.csproj index 435c90c..ce05d9d 100644 --- a/src/Confluent.Kafka.Core.Serialization.JsonCore/Confluent.Kafka.Core.Serialization.JsonCore.csproj +++ b/src/Confluent.Kafka.Core.Serialization.JsonCore/Confluent.Kafka.Core.Serialization.JsonCore.csproj @@ -1,48 +1,48 @@  - - netstandard2.0;netstandard2.1;net8.0;net9.0 - true - true - 1701;1702;1705;1591 - true - Confluent.Kafka.Core.Serialization.JsonCore - Confluent.Kafka.Core.Serialization.JsonCore - Lima Technology Services;Fernando Luiz de Lima - Copyright © Lima Technology Services;Fernando Luiz de Lima - Provides serialization implementation through System.Text.Json for Apache Kafka .NET client. - https://github.com/ffernandolima/confluent-kafka-core-dotnet - https://github.com/ffernandolima/confluent-kafka-core-dotnet - MIT - git - Apache;Kafka;Confluent;librdkafka;Serialization;System.Text.Json;JsonCore - 1.0.5 - latest - + + netstandard2.0;netstandard2.1;net8.0;net9.0 + true + true + 1701;1702;1705;1591 + true + Confluent.Kafka.Core.Serialization.JsonCore + Confluent.Kafka.Core.Serialization.JsonCore + Lima Technology Services;Fernando Luiz de Lima + Copyright © Lima Technology Services;Fernando Luiz de Lima + Provides serialization implementation through System.Text.Json for Apache Kafka .NET client. + https://github.com/ffernandolima/confluent-kafka-core-dotnet + https://github.com/ffernandolima/confluent-kafka-core-dotnet + MIT + git + Apache;Kafka;Confluent;librdkafka;Serialization;System.Text.Json;JsonCore + 1.0.5 + latest + - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - <_Parameter1>Confluent.Kafka.Core.Tests - - + + + <_Parameter1>Confluent.Kafka.Core.Tests + + diff --git a/src/Confluent.Kafka.Core.Serialization.NewtonsoftJson/Confluent.Kafka.Core.Serialization.NewtonsoftJson.csproj b/src/Confluent.Kafka.Core.Serialization.NewtonsoftJson/Confluent.Kafka.Core.Serialization.NewtonsoftJson.csproj index 51f5974..2b14302 100644 --- a/src/Confluent.Kafka.Core.Serialization.NewtonsoftJson/Confluent.Kafka.Core.Serialization.NewtonsoftJson.csproj +++ b/src/Confluent.Kafka.Core.Serialization.NewtonsoftJson/Confluent.Kafka.Core.Serialization.NewtonsoftJson.csproj @@ -1,48 +1,48 @@  - - netstandard2.0;netstandard2.1;net8.0;net9.0 - true - true - 1701;1702;1705;1591 - true - Confluent.Kafka.Core.Serialization.NewtonsoftJson - Confluent.Kafka.Core.Serialization.NewtonsoftJson - Lima Technology Services;Fernando Luiz de Lima - Copyright © Lima Technology Services;Fernando Luiz de Lima - Provides serialization implementation through Newtonsoft.Json for Apache Kafka .NET client. - https://github.com/ffernandolima/confluent-kafka-core-dotnet - https://github.com/ffernandolima/confluent-kafka-core-dotnet - MIT - git - Apache;Kafka;Confluent;librdkafka;Serialization;Newtonsoft.Json - 1.0.5 - latest - + + netstandard2.0;netstandard2.1;net8.0;net9.0 + true + true + 1701;1702;1705;1591 + true + Confluent.Kafka.Core.Serialization.NewtonsoftJson + Confluent.Kafka.Core.Serialization.NewtonsoftJson + Lima Technology Services;Fernando Luiz de Lima + Copyright © Lima Technology Services;Fernando Luiz de Lima + Provides serialization implementation through Newtonsoft.Json for Apache Kafka .NET client. + https://github.com/ffernandolima/confluent-kafka-core-dotnet + https://github.com/ffernandolima/confluent-kafka-core-dotnet + MIT + git + Apache;Kafka;Confluent;librdkafka;Serialization;Newtonsoft.Json + 1.0.5 + latest + - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - <_Parameter1>Confluent.Kafka.Core.Tests - - + + + <_Parameter1>Confluent.Kafka.Core.Tests + + diff --git a/src/Confluent.Kafka.Core.Serialization.ProtobufNet/Confluent.Kafka.Core.Serialization.ProtobufNet.csproj b/src/Confluent.Kafka.Core.Serialization.ProtobufNet/Confluent.Kafka.Core.Serialization.ProtobufNet.csproj index 5c271c0..36d767a 100644 --- a/src/Confluent.Kafka.Core.Serialization.ProtobufNet/Confluent.Kafka.Core.Serialization.ProtobufNet.csproj +++ b/src/Confluent.Kafka.Core.Serialization.ProtobufNet/Confluent.Kafka.Core.Serialization.ProtobufNet.csproj @@ -1,48 +1,48 @@  - - netstandard2.0;netstandard2.1;net8.0;net9.0 - true - true - 1701;1702;1705;1591 - true - Confluent.Kafka.Core.Serialization.ProtobufNet - Confluent.Kafka.Core.Serialization.ProtobufNet - Lima Technology Services;Fernando Luiz de Lima - Copyright © Lima Technology Services;Fernando Luiz de Lima - Provides serialization implementation through protobuf-net for Apache Kafka .NET client. - https://github.com/ffernandolima/confluent-kafka-core-dotnet - https://github.com/ffernandolima/confluent-kafka-core-dotnet - MIT - git - Apache;Kafka;Confluent;librdkafka;Serialization;protobuf-net - 1.0.5 - latest - + + netstandard2.0;netstandard2.1;net8.0;net9.0 + true + true + 1701;1702;1705;1591 + true + Confluent.Kafka.Core.Serialization.ProtobufNet + Confluent.Kafka.Core.Serialization.ProtobufNet + Lima Technology Services;Fernando Luiz de Lima + Copyright © Lima Technology Services;Fernando Luiz de Lima + Provides serialization implementation through protobuf-net for Apache Kafka .NET client. + https://github.com/ffernandolima/confluent-kafka-core-dotnet + https://github.com/ffernandolima/confluent-kafka-core-dotnet + MIT + git + Apache;Kafka;Confluent;librdkafka;Serialization;protobuf-net + 1.0.5 + latest + - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - <_Parameter1>Confluent.Kafka.Core.Tests - - + + + <_Parameter1>Confluent.Kafka.Core.Tests + + diff --git a/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro/Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro.csproj b/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro/Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro.csproj index 72fe5c2..e779e14 100644 --- a/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro/Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro.csproj +++ b/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro/Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro.csproj @@ -1,66 +1,66 @@  - - netstandard2.0;netstandard2.1;net8.0;net9.0 - true - true - 1701;1702;1705;1591 - true - Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro - Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro - Lima Technology Services;Fernando Luiz de Lima - Copyright © Lima Technology Services;Fernando Luiz de Lima - Provides serialization implementation through Confluent.SchemaRegistry.Serdes.Avro for Apache Kafka .NET client. - https://github.com/ffernandolima/confluent-kafka-core-dotnet - https://github.com/ffernandolima/confluent-kafka-core-dotnet - MIT - git - Apache;Kafka;Confluent;librdkafka;Serialization;SchemaRegistry;Confluent.SchemaRegistry.Serdes.Avro - 1.0.5 - latest - + + netstandard2.0;netstandard2.1;net8.0;net9.0 + true + true + 1701;1702;1705;1591 + true + Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro + Confluent.Kafka.Core.Serialization.SchemaRegistry.Avro + Lima Technology Services;Fernando Luiz de Lima + Copyright © Lima Technology Services;Fernando Luiz de Lima + Provides serialization implementation through Confluent.SchemaRegistry.Serdes.Avro for Apache Kafka .NET client. + https://github.com/ffernandolima/confluent-kafka-core-dotnet + https://github.com/ffernandolima/confluent-kafka-core-dotnet + MIT + git + Apache;Kafka;Confluent;librdkafka;Serialization;SchemaRegistry;Confluent.SchemaRegistry.Serdes.Avro + 1.0.5 + latest + - - - - - - + + + + + + - - - + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - <_Parameter1>Confluent.Kafka.Core.Tests - - + + + <_Parameter1>Confluent.Kafka.Core.Tests + + diff --git a/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Json/Confluent.Kafka.Core.Serialization.SchemaRegistry.Json.csproj b/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Json/Confluent.Kafka.Core.Serialization.SchemaRegistry.Json.csproj index 4d47ccc..f3d8f17 100644 --- a/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Json/Confluent.Kafka.Core.Serialization.SchemaRegistry.Json.csproj +++ b/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Json/Confluent.Kafka.Core.Serialization.SchemaRegistry.Json.csproj @@ -1,66 +1,66 @@  - - netstandard2.0;netstandard2.1;net8.0;net9.0 - true - true - 1701;1702;1705;1591 - true - Confluent.Kafka.Core.Serialization.SchemaRegistry.Json - Confluent.Kafka.Core.Serialization.SchemaRegistry.Json - Lima Technology Services;Fernando Luiz de Lima - Copyright © Lima Technology Services;Fernando Luiz de Lima - Provides serialization implementation through Confluent.SchemaRegistry.Serdes.Json for Apache Kafka .NET client. - https://github.com/ffernandolima/confluent-kafka-core-dotnet - https://github.com/ffernandolima/confluent-kafka-core-dotnet - MIT - git - Apache;Kafka;Confluent;librdkafka;Serialization;SchemaRegistry;Confluent.SchemaRegistry.Serdes.Json - 1.0.5 - latest - + + netstandard2.0;netstandard2.1;net8.0;net9.0 + true + true + 1701;1702;1705;1591 + true + Confluent.Kafka.Core.Serialization.SchemaRegistry.Json + Confluent.Kafka.Core.Serialization.SchemaRegistry.Json + Lima Technology Services;Fernando Luiz de Lima + Copyright © Lima Technology Services;Fernando Luiz de Lima + Provides serialization implementation through Confluent.SchemaRegistry.Serdes.Json for Apache Kafka .NET client. + https://github.com/ffernandolima/confluent-kafka-core-dotnet + https://github.com/ffernandolima/confluent-kafka-core-dotnet + MIT + git + Apache;Kafka;Confluent;librdkafka;Serialization;SchemaRegistry;Confluent.SchemaRegistry.Serdes.Json + 1.0.5 + latest + - - - - - - + + + + + + - - - + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - <_Parameter1>Confluent.Kafka.Core.Tests - - + + + <_Parameter1>Confluent.Kafka.Core.Tests + + \ No newline at end of file diff --git a/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf/Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf.csproj b/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf/Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf.csproj index 1aef91d..da4b71f 100644 --- a/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf/Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf.csproj +++ b/src/Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf/Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf.csproj @@ -1,69 +1,69 @@  - - netstandard2.0;netstandard2.1;net8.0;net9.0 - true - true - 1701;1702;1705;1591 - true - Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf - Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf - Lima Technology Services;Fernando Luiz de Lima - Copyright © Lima Technology Services;Fernando Luiz de Lima - Provides serialization implementation through Confluent.SchemaRegistry.Serdes.Protobuf for Apache Kafka .NET client. - https://github.com/ffernandolima/confluent-kafka-core-dotnet - https://github.com/ffernandolima/confluent-kafka-core-dotnet - MIT - git - Apache;Kafka;Confluent;librdkafka;Serialization;SchemaRegistry;Confluent.SchemaRegistry.Serdes.Protobuf - 1.0.5 - latest - + + netstandard2.0;netstandard2.1;net8.0;net9.0 + true + true + 1701;1702;1705;1591 + true + Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf + Confluent.Kafka.Core.Serialization.SchemaRegistry.Protobuf + Lima Technology Services;Fernando Luiz de Lima + Copyright © Lima Technology Services;Fernando Luiz de Lima + Provides serialization implementation through Confluent.SchemaRegistry.Serdes.Protobuf for Apache Kafka .NET client. + https://github.com/ffernandolima/confluent-kafka-core-dotnet + https://github.com/ffernandolima/confluent-kafka-core-dotnet + MIT + git + Apache;Kafka;Confluent;librdkafka;Serialization;SchemaRegistry;Confluent.SchemaRegistry.Serdes.Protobuf + 1.0.5 + latest + - - - - - - + + + + + + - - - + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - + + + - - - - ProtobufNet - - + + + + ProtobufNet + + - - - <_Parameter1>Confluent.Kafka.Core.Tests - - + + + <_Parameter1>Confluent.Kafka.Core.Tests + + diff --git a/src/Confluent.Kafka.Core/Confluent.Kafka.Core.csproj b/src/Confluent.Kafka.Core/Confluent.Kafka.Core.csproj index 16e2d73..a016662 100644 --- a/src/Confluent.Kafka.Core/Confluent.Kafka.Core.csproj +++ b/src/Confluent.Kafka.Core/Confluent.Kafka.Core.csproj @@ -1,46 +1,46 @@  - - netstandard2.0;netstandard2.1;net8.0;net9.0 - true - true - 1701;1702;1705;1591 - true - Confluent.Kafka.Core - Confluent.Kafka.Core - Lima Technology Services;Fernando Luiz de Lima - Copyright © Lima Technology Services;Fernando Luiz de Lima - Provides implementation for Apache Kafka .NET client. - https://github.com/ffernandolima/confluent-kafka-core-dotnet - https://github.com/ffernandolima/confluent-kafka-core-dotnet - MIT - git - Apache;Kafka;Confluent;librdkafka;Implementation - 1.0.5 - latest - + + netstandard2.0;netstandard2.1;net8.0;net9.0 + true + true + 1701;1702;1705;1591 + true + Confluent.Kafka.Core + Confluent.Kafka.Core + Lima Technology Services;Fernando Luiz de Lima + Copyright © Lima Technology Services;Fernando Luiz de Lima + Provides implementation for Apache Kafka .NET client. + https://github.com/ffernandolima/confluent-kafka-core-dotnet + https://github.com/ffernandolima/confluent-kafka-core-dotnet + MIT + git + Apache;Kafka;Confluent;librdkafka;Implementation + 1.0.5 + latest + - - - - - - + + + + + + - - - - - + + + + + - - - + + + - - - <_Parameter1>Confluent.Kafka.Core.Tests - - + + + <_Parameter1>Confluent.Kafka.Core.Tests + + diff --git a/tests/Confluent.Kafka.Core.Shared.Tests/Confluent.Kafka.Core.Shared.Tests.csproj b/tests/Confluent.Kafka.Core.Shared.Tests/Confluent.Kafka.Core.Shared.Tests.csproj index 41db38c..39cd74f 100644 --- a/tests/Confluent.Kafka.Core.Shared.Tests/Confluent.Kafka.Core.Shared.Tests.csproj +++ b/tests/Confluent.Kafka.Core.Shared.Tests/Confluent.Kafka.Core.Shared.Tests.csproj @@ -1,40 +1,40 @@  - - net8.0;net9.0 - false - latest - + + net8.0;net9.0 + false + latest + - - - - - - + + + + + + - - - + + + - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + diff --git a/tests/Confluent.Kafka.Core.Tests/Confluent.Kafka.Core.Tests.csproj b/tests/Confluent.Kafka.Core.Tests/Confluent.Kafka.Core.Tests.csproj index 11f5374..ddb01b5 100644 --- a/tests/Confluent.Kafka.Core.Tests/Confluent.Kafka.Core.Tests.csproj +++ b/tests/Confluent.Kafka.Core.Tests/Confluent.Kafka.Core.Tests.csproj @@ -1,40 +1,40 @@  - - net8.0;net9.0 - false - latest - + + net8.0;net9.0 + false + latest + - - - - - - - - - - - - + + + + + + + + + + + + - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + From f5551ae557b6d1678fbfbaa61ceb0279da41a57d Mon Sep 17 00:00:00 2001 From: Fernando Lima Date: Tue, 24 Jun 2025 21:15:19 -0300 Subject: [PATCH 5/5] feat: migrate to Kafka KRaft mode, remove Zookeeper dependency - Convert Docker Compose from Zookeeper-based to KRaft mode - Remove Zookeeper service for simplified architecture - Add CLUSTER_ID and update Kafka configuration for KRaft - Fix integration test failures with Schema Registry and Kafka connections - Reduce container count and improve startup performance --- docker-compose.yml | 46 +++++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 433d4cb..eedda94 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,44 +7,48 @@ ports: - "6379:6379" - zookeeper: - image: confluentinc/cp-zookeeper:latest - hostname: zookeeper - container_name: zookeeper - ports: - - "2181:2181" - environment: - ZOOKEEPER_CLIENT_PORT: 2181 - ZOOKEEPER_TICK_TIME: 2000 - kafka: image: confluentinc/cp-kafka:latest hostname: kafka container_name: kafka - depends_on: - - zookeeper ports: - "9092:9092" - - "9101:9101" + - "9093:9093" environment: - KAFKA_BROKER_ID: 1 - KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181' - KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092 - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT - KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT + # KRaft mode configuration + KAFKA_NODE_ID: 1 + KAFKA_PROCESS_ROLES: 'broker,controller' + KAFKA_CONTROLLER_QUORUM_VOTERS: '1@kafka:9093' + KAFKA_CONTROLLER_LISTENER_NAMES: 'CONTROLLER' + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: 'CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT' + KAFKA_LISTENERS: 'PLAINTEXT://kafka:29092,PLAINTEXT_HOST://0.0.0.0:9092,CONTROLLER://kafka:9093' + KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092' + KAFKA_INTER_BROKER_LISTENER_NAME: 'PLAINTEXT' + + # KRaft cluster ID (required for KRaft mode) + CLUSTER_ID: 'MkU3OEVBNTcwNTJENDM2Qk' + + # Topic and replication settings KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0 - KAFKA_CONFLUENT_LICENSE_TOPIC_REPLICATION_FACTOR: 1 - KAFKA_CONFLUENT_BALANCER_TOPIC_REPLICATION_FACTOR: 1 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 + + # Confluent specific settings + KAFKA_CONFLUENT_LICENSE_TOPIC_REPLICATION_FACTOR: 1 + KAFKA_CONFLUENT_BALANCER_TOPIC_REPLICATION_FACTOR: 1 + KAFKA_CONFLUENT_SCHEMA_REGISTRY_URL: http://schema-registry:8081 + + # Metrics and monitoring KAFKA_JMX_PORT: 9101 KAFKA_JMX_HOSTNAME: localhost - KAFKA_CONFLUENT_SCHEMA_REGISTRY_URL: http://schema-registry:8081 CONFLUENT_METRICS_REPORTER_BOOTSTRAP_SERVERS: 'kafka:29092' CONFLUENT_METRICS_REPORTER_TOPIC_REPLICAS: 1 CONFLUENT_METRICS_ENABLE: 'true' CONFLUENT_SUPPORT_CUSTOMER_ID: 'anonymous' + + # KRaft log directory + KAFKA_LOG_DIRS: '/tmp/kraft-combined-logs' schema-registry: image: confluentinc/cp-schema-registry:latest