From 81ef7f6664e3c374fc1544d9e1db5c9a2224cc6b Mon Sep 17 00:00:00 2001
From: MASES Public Developers Team
<94312179+masesdevelopers@users.noreply.github.com>
Date: Tue, 12 Nov 2024 00:09:32 +0100
Subject: [PATCH] =?UTF-8?q?Revert=20"Revert=20"Bump=20kafkaVersion=20from?=
=?UTF-8?q?=203.8.1=20to=203.9.0=20in=20/src/jvm/knet=20(#734)=E2=80=A6"?=
=?UTF-8?q?=20(#744)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This reverts commit cd37a801ec5bb37ffa9003e16c7abb938a60fa65.
---
.github/dependabot.yml | 26 +++++++++-
.github/workflows/generateclasses.yaml | 4 +-
README.md | 41 ++++++++--------
src/README.md | 67 ++++++++++++++++----------
src/configuration.json | 52 ++++++++++----------
src/documentation/articles/docker.md | 26 +++++-----
src/documentation/articles/intro.md | 33 +++++++------
src/documentation/index.md | 42 ++++++++--------
src/jvm/knet/pom.xml | 15 +++---
9 files changed, 175 insertions(+), 131 deletions(-)
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 8b04a2dfc..1ed796abb 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -27,6 +27,14 @@ updates:
reviewers:
- "masesdevelopers"
target-branch: "release/2.7.X"
+
+ - package-ecosystem: "nuget" # See documentation for possible values
+ directory: "/src/net" # Location of package manifests
+ schedule:
+ interval: "weekly"
+ reviewers:
+ - "masesdevelopers"
+ target-branch: "release/2.8.X"
- package-ecosystem: maven
directory: "/src/jvm/knet"
@@ -51,6 +59,14 @@ updates:
- "masesdevelopers"
target-branch: "release/2.7.X"
+ - package-ecosystem: maven
+ directory: "/src/jvm/knet"
+ schedule:
+ interval: "weekly"
+ reviewers:
+ - "masesdevelopers"
+ target-branch: "release/2.8.X"
+
- package-ecosystem: "github-actions"
directory: "/"
schedule:
@@ -72,4 +88,12 @@ updates:
interval: "weekly"
reviewers:
- "masesdevelopers"
- target-branch: "release/2.7.X"
\ No newline at end of file
+ target-branch: "release/2.7.X"
+
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ interval: "weekly"
+ reviewers:
+ - "masesdevelopers"
+ target-branch: "release/2.8.X"
\ No newline at end of file
diff --git a/.github/workflows/generateclasses.yaml b/.github/workflows/generateclasses.yaml
index af5613eb7..dac0dea85 100644
--- a/.github/workflows/generateclasses.yaml
+++ b/.github/workflows/generateclasses.yaml
@@ -18,7 +18,7 @@ on:
default: false
type: boolean
ContinueOnLatestJNetReflectorError:
- description: 'Shall continue execution in case of failure of build from latest unpublished version of JNetReflector'
+ description: 'Shall continue execution in case of failure of build from latest reflection done with JNetReflector'
required: true
default: false
type: boolean
@@ -66,7 +66,7 @@ jobs:
gpg-passphrase: MAVEN_GPG_PASSPHRASE # env variable for GPG private key passphrase
- name: Create Jars
- run: mvn --file ./src/jvm/knet/pom.xml --no-transfer-progress package
+ run: mvn "-DmavenSkipMain=true" --file ./src/jvm/knet/pom.xml --no-transfer-progress package
env:
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }}
diff --git a/README.md b/README.md
index 5c0dddabf..03a665ed3 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-# KNet: .NET suite for [Apache Kafka™](https://kafka.apache.org/)
+# KNet: .NET suite for [Apache Kafkaâ„¢](https://kafka.apache.org/)
-KNet is a comprehensive .NET suite for [Apache Kafka™](https://kafka.apache.org/) providing access to all [APIs](https://kafka.apache.org/documentation/#api) and features: Producer, Consumer, Admin, Streams, Connect, backends (ZooKeeper and Kafka).
+KNet is a comprehensive .NET suite for [Apache Kafkaâ„¢](https://kafka.apache.org/) providing access to all [APIs](https://kafka.apache.org/documentation/#api) and features: Producer, Consumer, Admin, Streams, Connect, backends (ZooKeeper and Kafka).
### Libraries and Tools
@@ -16,38 +16,41 @@ KNet is a comprehensive .NET suite for [Apache Kafka
### Project disclaimer
-KNet is a suite for Apache Kafka™, curated by MASES Group, can be supported by the open-source community.
+KNet is a suite for Apache Kafkaâ„¢, curated by MASES Group, can be supported by the open-source community.
Its primary scope is to support other, public or internal, MASES Group projects: open-source community and commercial entities can use it for their needs and support this project, moreover there are dedicated community and commercial subscription plans.
-The repository code and releases may contain bugs, the release cycle depends from Apache Kafka™ release cycle, critical discovered issues and/or enhancement requested from this or other projects.
+The repository code and releases may contain bugs, the release cycle depends from Apache Kafkaâ„¢ release cycle, critical discovered issues and/or enhancement requested from this or other projects.
-Looking for the help of Apache Kafka™ experts? MASES Group can help you design, build, deploy, and manage Apache Kafka™ clusters and streaming applications.
+Looking for the help of Apache Kafkaâ„¢ experts? MASES Group can help you design, build, deploy, and manage Apache Kafkaâ„¢ clusters and streaming applications.
---
## Scope of the project
-This project aims to create a set of libraries and tools to direct access, from .NET, all the features available in the [Apache Kafka™ binary distribution](https://kafka.apache.org/downloads).
+This project aims to create a set of libraries and tools to direct access, from .NET, all the features available in the [Apache Kafkaâ„¢ binary distribution](https://kafka.apache.org/downloads).
-There are many client libraries written to manage communication with Apache Kafka™. Conversely, this project use directly the Java packages released from The Apache Foundation giving more than one benefit:
+There are many client libraries written to manage communication with Apache Kafkaâ„¢. Conversely, this project use directly the Java packages released from The Apache Foundation giving more than one benefit:
* all implemented features are availables at no extra implementation costs, see [KNet usage](src/documentation/articles/usage.md);
* avoids any third party communication protocol implementation;
-* access all features made available from Apache Kafka™: the most important are Apache Kafka™ Streams and Apache Kafka™ Connect which does not have any C# implementation;
+* access all features made available from Apache Kafkaâ„¢: the most important are Apache Kafkaâ„¢ Streams and Apache Kafkaâ„¢ Connect which does not have any C# implementation;
* measured high [performance](src/documentation/articles/performance.md) in many operating conditions.
-Currently the project tries to support, at our best, the [supported Apache Kafka™ binary distribution](https://kafka.apache.org/downloads):
-- Apache Kafka™ version 3.8.*:
+Currently the project tries to support, at our best, the [supported Apache Kafkaâ„¢ binary distribution](https://kafka.apache.org/downloads):
+- Apache Kafkaâ„¢ version 3.9.*:
+ - branch [master](https://github.com/masesgroup/KNet)
+ - KNet version 2.9.*
+- Apache Kafkaâ„¢ version 3.8.*:
- branch [master](https://github.com/masesgroup/KNet)
- KNet version 2.8.*
-- Apache Kafka™ version 3.7.*:
+- Apache Kafkaâ„¢ version 3.7.*:
- branch [release/2.7.X](https://github.com/masesgroup/KNet/tree/release/2.7.X)
- KNet version 2.7.*
-- Apache Kafka™ version 3.6.*:
+- Apache Kafkaâ„¢ version 3.6.*:
- branch [release/2.6.X](https://github.com/masesgroup/KNet/tree/release/2.6.X)
- KNet version 2.6.*
-The Apache Kafka™ packages are downloaded from:
+The Apache Kafkaâ„¢ packages are downloaded from:
|kafka-clients | kafka-streams | kafka-tools | kafka_2.13 |
|:---: |:---: |:---: |:---: |
@@ -90,17 +93,17 @@ This project adheres to the Contributor [Covenant code of conduct](CODE_OF_CONDU
### News
-* V1.4.4+: From version 1.4.4 there is a new project, named KNetPS, which permits to write PowerShell client scripts for an Apache Kafka™ cluster and many other things, [here full usage](src/documentation/articles/usagePS.md).
-* V1.4.7+: From version 1.4.7 there is a new project, named KNetConnect, to execute Apache Kafka™ Connect related jobs, [here full usage](src/documentation/articles/usageConnect.md).
+* V1.4.4+: From version 1.4.4 there is a new project, named KNetPS, which permits to write PowerShell client scripts for an Apache Kafkaâ„¢ cluster and many other things, [here full usage](src/documentation/articles/usagePS.md).
+* V1.4.7+: From version 1.4.7 there is a new project, named KNetConnect, to execute Apache Kafkaâ„¢ Connect related jobs, [here full usage](src/documentation/articles/usageConnect.md).
* V1.5.4+: From version 1.5.4 there are new packages dedicated to [KNet Serializer/Deserializer](src/documentation/articles/usageSerDes.md)
-* V2.0.0+: From version 2.0.0 the code base is fully reflected from the JARs of the Apache Kafka™ distribution downloaded from Maven; some developed classes still remains beside the specific KNet implementations
+* V2.0.0+: From version 2.0.0 the code base is fully reflected from the JARs of the Apache Kafkaâ„¢ distribution downloaded from Maven; some developed classes still remains beside the specific KNet implementations
* V2.4.0+: From version 2.4.0 it is available the new KNet Streams SDK
* V2.5.0+: From version 2.5.0 there are two breaking changes: uses `Java.Lang.String` instead of `string` (`System.String`) in generated classes and KNet Streams SDK manages the counter-part JVM types
* V2.7.0+: From version 2.7.0:
* all classes KNetProducer, KNetConsumer and KNet Streams SDK manage the counter-part JVM types
* serializers supports data exchange based on `byte` array and `ByteBuffer`
* version 2.7.2 introduces `ISerDesSelector` to optimize serialization selection based on `byte` array or `ByteBuffer`
-* V2.8.0+: From version 2.8.0: supports Apache Kafka™ version 3.8.*
+* V2.8.0+: From version 2.8.0: supports Apache Kafkaâ„¢ version 3.8.*
---
@@ -111,9 +114,9 @@ KNet uses [JNet](https://github.com/masesgroup/JNet), and indeed [JCOBridge](htt
* [JVM](https://en.wikipedia.org/wiki/Java_virtual_machine) and [CLR, or CoreCLR,](https://en.wikipedia.org/wiki/Common_Language_Runtime) runs in the same process, but are insulated from each other;
* JCOBridge does not make any code injection into JVM;
* JCOBridge does not use any other communication mechanism than JNI;
- * .NET (CLR) inherently inherits the cyber-security levels of running JVM and Apache Kafka™;
+ * .NET (CLR) inherently inherits the cyber-security levels of running JVM and Apache Kafkaâ„¢;
* **Direct access the JVM from any .NET application**:
- * Any Java/Scala class behind Apache Kafka™ can be directly managed: Consumer, Producer, Administration, Streams, Server-side, and so on;
+ * Any Java/Scala class behind Apache Kafkaâ„¢ can be directly managed: Consumer, Producer, Administration, Streams, Server-side, and so on;
* No need to learn new APIs: we try to expose the same APIs in C# style;
* No extra validation cycle on protocol and functionality: bug fix, improvements, new features are immediately available;
* Documentation is shared;
diff --git a/src/README.md b/src/README.md
index 35c5892cf..80b34eccc 100644
--- a/src/README.md
+++ b/src/README.md
@@ -2,8 +2,16 @@
The command used to build the classes is the following:
+1. Download the latest version of reflection utility:
+
+```cmd
+dotnet tool update -g MASES.JNetReflector
+```
+
+2. Run the reflection utility:
+
```cmd
-MASES.JNetReflector.exe -TraceLevel 0 -OriginRootPath .\jars -DestinationRootPath .\src\ -ConfigurationFile .\src\configuration.json
+jnetreflector -TraceLevel 0 -OriginRootPath .\jars -DestinationRootPath .\src\ -ConfigurationFile .\src\configuration.json
```
The configuration is:
@@ -18,67 +26,72 @@ The configuration is:
"DisableInterfaceMethodGeneration": true,
"CreateInterfaceInheritance": true,
"JarList": [
- "kafka_2.13-3.8.0.jar",
- "kafka-clients-3.8.0.jar",
- "kafka-streams-3.8.0.jar",
- "kafka-tools-3.8.0.jar",
- "kafka-raft-3.8.0.jar",
- "connect-api-3.8.0.jar",
- "connect-basic-auth-extension-3.8.0.jar",
- "connect-json-3.8.0.jar",
- "connect-mirror-3.8.0.jar",
- "connect-mirror-client-3.8.0.jar",
- "connect-runtime-3.8.0.jar",
- "connect-transforms-3.8.0.jar"
+ "kafka_2.13-3.9.0.jar",
+ "kafka-clients-3.9.0.jar",
+ "kafka-streams-3.9.0.jar",
+ "kafka-tools-3.9.0.jar",
+ "kafka-raft-3.9.0.jar",
+ "kafka-shell-3.9.0.jar",
+ "connect-api-3.9.0.jar",
+ "connect-basic-auth-extension-3.9.0.jar",
+ "connect-json-3.9.0.jar",
+ "connect-mirror-3.9.0.jar",
+ "connect-mirror-client-3.9.0.jar",
+ "connect-runtime-3.9.0.jar",
+ "connect-transforms-3.9.0.jar"
],
"OriginJavadocJARVersionAndUrls": [
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka_2.13/3.8.0/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka_2.13/3.9.0/"
+ },
+ {
+ "Version": 8,
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka-clients/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka-clients/3.8.0/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka-streams/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka-streams/3.8.0/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka-tools/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka-tools/3.8.0/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka-raft/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka-raft/3.8.0/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka-shell/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-api/3.8.0/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-api/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-basic-auth-extension/3.8.0/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-basic-auth-extension/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-json/3.8.0/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-json/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-mirror/3.8.0/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-mirror/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-mirror-client/3.8.0/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-mirror-client/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-runtime/3.8.0/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-runtime/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-transforms/3.8.0/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-transforms/3.9.0/"
}
],
"NamespacesToAvoid": [
@@ -136,6 +149,10 @@ The configuration is:
"org.apache.kafka.raft.internals",
"org.apache.kafka.server",
"org.apache.kafka.shaded",
+ "org.apache.kafka.shell.command",
+ "org.apache.kafka.shell.glob",
+ "org.apache.kafka.shell.node",
+ "org.apache.kafka.shell.state",
"org.apache.kafka.streams.internals",
"org.apache.kafka.streams.processor.internals",
"org.apache.kafka.streams.state.internals",
diff --git a/src/configuration.json b/src/configuration.json
index 0e7ccf191..c3174ecff 100644
--- a/src/configuration.json
+++ b/src/configuration.json
@@ -7,72 +7,72 @@
"DisableInterfaceMethodGeneration": true,
"CreateInterfaceInheritance": true,
"JarList": [
- "kafka_2.13-3.8.1.jar",
- "kafka-clients-3.8.1.jar",
- "kafka-streams-3.8.1.jar",
- "kafka-tools-3.8.1.jar",
- "kafka-raft-3.8.1.jar",
- "kafka-shell-3.8.1.jar",
- "connect-api-3.8.1.jar",
- "connect-basic-auth-extension-3.8.1.jar",
- "connect-json-3.8.1.jar",
- "connect-mirror-3.8.1.jar",
- "connect-mirror-client-3.8.1.jar",
- "connect-runtime-3.8.1.jar",
- "connect-transforms-3.8.1.jar"
+ "kafka_2.13-3.9.0.jar",
+ "kafka-clients-3.9.0.jar",
+ "kafka-streams-3.9.0.jar",
+ "kafka-tools-3.9.0.jar",
+ "kafka-raft-3.9.0.jar",
+ "kafka-shell-3.9.0.jar",
+ "connect-api-3.9.0.jar",
+ "connect-basic-auth-extension-3.9.0.jar",
+ "connect-json-3.9.0.jar",
+ "connect-mirror-3.9.0.jar",
+ "connect-mirror-client-3.9.0.jar",
+ "connect-runtime-3.9.0.jar",
+ "connect-transforms-3.9.0.jar"
],
"OriginJavadocJARVersionAndUrls": [
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka_2.13/3.8.1/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka_2.13/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka-clients/3.8.1/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka-clients/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka-streams/3.8.1/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka-streams/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka-tools/3.8.1/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka-tools/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka-raft/3.8.1/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka-raft/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka-shell/3.8.1/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/kafka-shell/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-api/3.8.1/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-api/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-basic-auth-extension/3.8.1/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-basic-auth-extension/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-json/3.8.1/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-json/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-mirror/3.8.1/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-mirror/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-mirror-client/3.8.1/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-mirror-client/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-runtime/3.8.1/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-runtime/3.9.0/"
},
{
"Version": 8,
- "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-transforms/3.8.1/"
+ "Url": "https://www.javadoc.io/doc/org.apache.kafka/connect-transforms/3.9.0/"
}
],
"NamespacesToAvoid": [
diff --git a/src/documentation/articles/docker.md b/src/documentation/articles/docker.md
index 79c005e6b..0f33f70cc 100644
--- a/src/documentation/articles/docker.md
+++ b/src/documentation/articles/docker.md
@@ -1,6 +1,6 @@
---
-title: Docker images of .NET suite for Apache Kafka™
-_description: Describes the Docker images of .NET suite for Apache Kafka™
+title: Docker images of .NET suite for Apache Kafkaâ„¢
+_description: Describes the Docker images of .NET suite for Apache Kafkaâ„¢
---
@@ -11,7 +11,7 @@ _description: Describes the Docker images of .NET suite for Apache Kafka
# KNet: Docker images
-.NET suite for Apache Kafka™ comes with a ready made Docker image can work in multiple modes, the image name is _knet_:
+.NET suite for Apache Kafkaâ„¢ comes with a ready made Docker image can work in multiple modes, the image name is _knet_:
- it is avialble in the following registries:
- GitHub: https://github.com/masesgroup/KNet/pkgs/container/knet
- Docker Hub: https://hub.docker.com/repository/docker/masesgroup/knet/general
@@ -23,9 +23,9 @@ The container image can work in multiple modes based on the environment variable
- the Docker image will issue the command:
> dotnet /app/MASES.KNetCLI.dll $@
-- The image can run [ZooKeeper™](https://zookeeper.apache.org/) node and/or [Apache Kafka™](https://kafka.apache.org/) broker node using specific values for **KNET_DOCKER_RUNNING_MODE**:
+- The image can run [ZooKeeperâ„¢](https://zookeeper.apache.org/) node and/or [Apache Kafkaâ„¢](https://kafka.apache.org/) broker node using specific values for **KNET_DOCKER_RUNNING_MODE**:
- - **KNET_DOCKER_RUNNING_MODE**=**zookeeper**: starts a [ZooKeeper™](https://zookeeper.apache.org/) node, defaults to run a standalone [ZooKeeper™](https://zookeeper.apache.org/) exposing on port 2181
+ - **KNET_DOCKER_RUNNING_MODE**=**zookeeper**: starts a [ZooKeeperâ„¢](https://zookeeper.apache.org/) node, defaults to run a standalone [ZooKeeperâ„¢](https://zookeeper.apache.org/) exposing on port 2181
- the Docker image will issue the command:
> dotnet /app/MASES.KNetCLI.dll zookeeperstart -Log4JConfiguration /app/config_container/log4j.properties /app/config_container/zookeeper.properties
- the image can add, or update, configuration variables of zookeeper.properties using the following pattern for environment variables:
@@ -34,7 +34,7 @@ The container image can work in multiple modes based on the environment variable
- The value of the environment variable is the value will be used in the configuration file
- The default file is available at https://github.com/masesgroup/KNet/blob/master/src/container/config_container/zookeeper.properties, all configuration information are available at https://zookeeper.apache.org/doc/r3.8.3/index.html
- - **KNET_DOCKER_RUNNING_MODE**=**broker**: starts an [Apache Kafka™](https://kafka.apache.org/) broker node, defaults to run a standalone broker exposing on port 9092
+ - **KNET_DOCKER_RUNNING_MODE**=**broker**: starts an [Apache Kafkaâ„¢](https://kafka.apache.org/) broker node, defaults to run a standalone broker exposing on port 9092
- the Docker image will issue the command:
> dotnet /app/MASES.KNetCLI.dll kafkastart -Log4JConfiguration /app/config_container/log4j.properties /app/config_container/server.properties
- the image can add, or update, configuration variables of server.properties using the following pattern for environment variables:
@@ -44,11 +44,11 @@ The container image can work in multiple modes based on the environment variable
- As an example: the environment variable **KAFKA_ADVERTISED_LISTENERS** represents **advertised.listeners**
- The default file is available at https://github.com/masesgroup/KNet/blob/master/src/container/config_container/server.properties, all configuration information are available at https://kafka.apache.org/documentation/
- - **KNET_DOCKER_RUNNING_MODE**=**server**: starts, within the container, both a [ZooKeeper™](https://zookeeper.apache.org/) node and an [Apache Kafka™](https://kafka.apache.org/) broker node, it defaults to run exposing [ZooKeeper™](https://zookeeper.apache.org/) on port 2181 and [Apache Kafka™](https://kafka.apache.org/) broker on port 9092; the image can add, or update, configuration variables of [ZooKeeper™](https://zookeeper.apache.org/) and [Apache Kafka™](https://kafka.apache.org/) using the same pattern of previous points.
+ - **KNET_DOCKER_RUNNING_MODE**=**server**: starts, within the container, both a [ZooKeeperâ„¢](https://zookeeper.apache.org/) node and an [Apache Kafkaâ„¢](https://kafka.apache.org/) broker node, it defaults to run exposing [ZooKeeperâ„¢](https://zookeeper.apache.org/) on port 2181 and [Apache Kafkaâ„¢](https://kafka.apache.org/) broker on port 9092; the image can add, or update, configuration variables of [ZooKeeperâ„¢](https://zookeeper.apache.org/) and [Apache Kafkaâ„¢](https://kafka.apache.org/) using the same pattern of previous points.
-- The image can run [Apache Kafka™](https://kafka.apache.org/) in [KRaft](https://developer.confluent.io/learn/kraft/) mode using specific values for **KNET_DOCKER_RUNNING_MODE**:
+- The image can run [Apache Kafkaâ„¢](https://kafka.apache.org/) in [KRaft](https://developer.confluent.io/learn/kraft/) mode using specific values for **KNET_DOCKER_RUNNING_MODE**:
- - **KNET_DOCKER_RUNNING_MODE**=**kraft-broker**: starts a [Apache Kafka™](https://kafka.apache.org/) as broker node
+ - **KNET_DOCKER_RUNNING_MODE**=**kraft-broker**: starts a [Apache Kafkaâ„¢](https://kafka.apache.org/) as broker node
- the Docker image will issue the command:
> dotnet /app/MASES.KNetCLI.dll kafkastart -Log4JConfiguration /app/config_container/log4j.properties /app/config_container/kraft/broker.properties
- the image can add, or update, configuration variables of broker.properties using the following pattern for environment variables:
@@ -57,7 +57,7 @@ The container image can work in multiple modes based on the environment variable
- The value of the environment variable is the value will be used in the configuration file
- The default file is available at https://github.com/masesgroup/KNet/blob/master/src/container/config_container/kraft/broker.properties, all configuration information are available at https://kafka.apache.org/documentation/
- - **KNET_DOCKER_RUNNING_MODE**=**kraft-controller**: starts a [Apache Kafka™](https://kafka.apache.org/) as controller node
+ - **KNET_DOCKER_RUNNING_MODE**=**kraft-controller**: starts a [Apache Kafkaâ„¢](https://kafka.apache.org/) as controller node
- the Docker image will issue the command:
> dotnet /app/MASES.KNetCLI.dll kafkastart -Log4JConfiguration /app/config_container/log4j.properties /app/config_container/kraft/controller.properties
- the image can add, or update, configuration variables of controller.properties using the following pattern for environment variables:
@@ -66,7 +66,7 @@ The container image can work in multiple modes based on the environment variable
- The value of the environment variable is the value will be used in the configuration file
- The default file is available at https://github.com/masesgroup/KNet/blob/master/src/container/config_container/kraft/controller.properties, all configuration information are available at https://kafka.apache.org/documentation/
- - **KNET_DOCKER_RUNNING_MODE**=**kraft-server**: starts a [Apache Kafka™](https://kafka.apache.org/) as server node
+ - **KNET_DOCKER_RUNNING_MODE**=**kraft-server**: starts a [Apache Kafkaâ„¢](https://kafka.apache.org/) as server node
- the Docker image will issue the command:
> dotnet /app/MASES.KNetCLI.dll kafkastart -Log4JConfiguration /app/config_container/log4j.properties /app/config_container/kraft/server.properties
- the image can add, or update, configuration variables of server.properties using the following pattern for environment variables:
@@ -95,10 +95,10 @@ The container image can work in multiple modes based on the environment variable
> dotnet /app/MASES.KNetConnect.dll -s -Log4JConfiguration /app/config_container/log4j.properties /app/config_container/connect-standalone.properties /app/config_container/connect-knet-specific.properties
- the image can add, or update, configuration variables of connect-standalone.properties and connect-knet-specific.properties using the same pattern of **knet-connect-standalone**:
- - **KNET_DOCKER_RUNNING_MODE**=**knet-connect-standalone-server**: starts, within the container, a [ZooKeeper™](https://zookeeper.apache.org/) node and an [Apache Kafka™](https://kafka.apache.org/) broker node like in **server**, then starts the same command of **knet-connect-standalone**; this is an autonoumous instance can be used for development or any other possible usage
+ - **KNET_DOCKER_RUNNING_MODE**=**knet-connect-standalone-server**: starts, within the container, a [ZooKeeperâ„¢](https://zookeeper.apache.org/) node and an [Apache Kafkaâ„¢](https://kafka.apache.org/) broker node like in **server**, then starts the same command of **knet-connect-standalone**; this is an autonoumous instance can be used for development or any other possible usage
- the image can add, or update, configuration variables of using the same pattern of **zookeeper**, **broker** and **knet-connect-standalone**
- - **KNET_DOCKER_RUNNING_MODE**=**connect-standalone-server**: starts, within the container, a [ZooKeeper™](https://zookeeper.apache.org/) node and an [Apache Kafka™](https://kafka.apache.org/) broker node like in **server**, then starts the same command of **connect-standalone**; this is an autonoumous instance can be used for development or any other possible usage
+ - **KNET_DOCKER_RUNNING_MODE**=**connect-standalone-server**: starts, within the container, a [ZooKeeperâ„¢](https://zookeeper.apache.org/) node and an [Apache Kafkaâ„¢](https://kafka.apache.org/) broker node like in **server**, then starts the same command of **connect-standalone**; this is an autonoumous instance can be used for development or any other possible usage
- the image can add, or update, configuration variables of using the same pattern of **zookeeper**, **broker** and **connect-standalone**
- **KNET_DOCKER_RUNNING_MODE**=**knet-connect-distributed**: starts, within the container, a distributed KNet Connect instance
diff --git a/src/documentation/articles/intro.md b/src/documentation/articles/intro.md
index f2769e5ce..63c358884 100644
--- a/src/documentation/articles/intro.md
+++ b/src/documentation/articles/intro.md
@@ -1,11 +1,11 @@
---
-title: .NET suite for Apache Kafka™
-_description: Main page of .NET suite for Apache Kafka™
+title: .NET suite for Apache Kafkaâ„¢
+_description: Main page of .NET suite for Apache Kafkaâ„¢
---
-# KNet: .NET suite for [Apache Kafka™](https://kafka.apache.org/)
+# KNet: .NET suite for [Apache Kafkaâ„¢](https://kafka.apache.org/)
-KNet is a comprehensive .NET suite for [Apache Kafka™](https://kafka.apache.org/) providing access to all [APIs](https://kafka.apache.org/documentation/#api) and features: Producer, Consumer, Admin, Streams, Connect, backends (ZooKeeper and Kafka™).
+KNet is a comprehensive .NET suite for [Apache Kafkaâ„¢](https://kafka.apache.org/) providing access to all [APIs](https://kafka.apache.org/documentation/#api) and features: Producer, Consumer, Admin, Streams, Connect, backends (ZooKeeper and Kafka™).
### Libraries and Tools
@@ -21,38 +21,41 @@ KNet is a comprehensive .NET suite for [Apache Kafka
### Project disclaimer
-KNet is a suite for Apache Kafka™, curated by MASES Group, can be supported by the open-source community.
+KNet is a suite for Apache Kafkaâ„¢, curated by MASES Group, can be supported by the open-source community.
Its primary scope is to support other, public or internal, MASES Group projects: open-source community and commercial entities can use it for their needs and support this project, moreover there are dedicated community and commercial subscription plans.
-The repository code and releases may contain bugs, the release cycle depends from Apache Kafka™ release cycle, critical discovered issues and/or enhancement requested from this or other projects.
+The repository code and releases may contain bugs, the release cycle depends from Apache Kafkaâ„¢ release cycle, critical discovered issues and/or enhancement requested from this or other projects.
-Looking for the help of Apache Kafka™ experts? MASES Group can help you design, build, deploy, and manage Apache Kafka™ clusters and streaming applications.
+Looking for the help of Apache Kafkaâ„¢ experts? MASES Group can help you design, build, deploy, and manage Apache Kafkaâ„¢ clusters and streaming applications.
---
## Scope of the project
-This project aims to create a set of libraries and tools to direct access, from .NET, all the features available in the [Apache Kafka™ binary distribution](https://kafka.apache.org/downloads).
+This project aims to create a set of libraries and tools to direct access, from .NET, all the features available in the [Apache Kafkaâ„¢ binary distribution](https://kafka.apache.org/downloads).
-There are many client libraries written to manage communication with Apache Kafka™. Conversely, this project use directly the Java packages released from The Apache Foundation giving more than one benefit:
+There are many client libraries written to manage communication with Apache Kafkaâ„¢. Conversely, this project use directly the Java packages released from The Apache Foundation giving more than one benefit:
* all implemented features are availables at no extra implementation costs, see [KNet usage](usage.md);
* avoids any third party communication protocol implementation;
-* access all features made available from Apache Kafka™: the most important are Apache Kafka™ Streams and Apache Kafka™ Connect which does not have any C# implementation;
+* access all features made available from Apache Kafkaâ„¢: the most important are Apache Kafkaâ„¢ Streams and Apache Kafkaâ„¢ Connect which does not have any C# implementation;
* measured high [performance](performance.md) in many operating conditions.
-Currently the project tries to support, at our best, the [supported Apache Kafka™ binary distribution](https://kafka.apache.org/downloads):
-- Apache Kafka™ version 3.8.*:
+Currently the project tries to support, at our best, the [supported Apache Kafkaâ„¢ binary distribution](https://kafka.apache.org/downloads):
+- Apache Kafkaâ„¢ version 3.9.*:
+ - branch [master](https://github.com/masesgroup/KNet)
+ - KNet version 2.9.*
+- Apache Kafkaâ„¢ version 3.8.*:
- branch [master](https://github.com/masesgroup/KNet)
- KNet version 2.8.*
-- Apache Kafka™ version 3.7.*:
+- Apache Kafkaâ„¢ version 3.7.*:
- branch [release/2.7.X](https://github.com/masesgroup/KNet/tree/release/2.7.X)
- KNet version 2.7.*
-- Apache Kafka™ version 3.6.*:
+- Apache Kafkaâ„¢ version 3.6.*:
- branch [release/2.6.X](https://github.com/masesgroup/KNet/tree/release/2.6.X)
- KNet version 2.6.*
-The Apache Kafka™ packages are downloaded from:
+The Apache Kafkaâ„¢ packages are downloaded from:
|kafka-clients | kafka-streams | kafka-tools | kafka_2.13 |
|:---: |:---: |:---: |:---: |
diff --git a/src/documentation/index.md b/src/documentation/index.md
index 008d87e5a..d8970b4ec 100644
--- a/src/documentation/index.md
+++ b/src/documentation/index.md
@@ -1,11 +1,11 @@
---
-title: .NET suite for Apache Kafka™
-_description: Main page of .NET suite for Apache Kafka™
+title: .NET suite for Apache Kafkaâ„¢
+_description: Main page of .NET suite for Apache Kafkaâ„¢
---
-# KNet: .NET suite for [Apache Kafka™](https://kafka.apache.org/)
+# KNet: .NET suite for [Apache Kafkaâ„¢](https://kafka.apache.org/)
-KNet is a comprehensive .NET suite for [Apache Kafka™](https://kafka.apache.org/) providing access to all [APIs](https://kafka.apache.org/documentation/#api) and features: Producer, Consumer, Admin, Streams, Connect, backends (ZooKeeper and Kafka).
+KNet is a comprehensive .NET suite for [Apache Kafkaâ„¢](https://kafka.apache.org/) providing access to all [APIs](https://kafka.apache.org/documentation/#api) and features: Producer, Consumer, Admin, Streams, Connect, backends (ZooKeeper and Kafka).
### Libraries and Tools
@@ -15,38 +15,38 @@ KNet is a comprehensive .NET suite for [Apache Kafka
### Project disclaimer
-KNet is a suite for Apache Kafka™, curated by MASES Group, can be supported by the open-source community.
+KNet is a suite for Apache Kafkaâ„¢, curated by MASES Group, can be supported by the open-source community.
Its primary scope is to support other, public or internal, MASES Group projects: open-source community and commercial entities can use it for their needs and support this project, moreover there are dedicated community and commercial subscription plans.
-The repository code and releases may contain bugs, the release cycle depends from Apache Kafka™ release cycle, critical discovered issues and/or enhancement requested from this or other projects.
+The repository code and releases may contain bugs, the release cycle depends from Apache Kafkaâ„¢ release cycle, critical discovered issues and/or enhancement requested from this or other projects.
-Looking for the help of Apache Kafka™ experts? MASES Group can help you design, build, deploy, and manage Apache Kafka™ clusters and streaming applications.
+Looking for the help of Apache Kafkaâ„¢ experts? MASES Group can help you design, build, deploy, and manage Apache Kafkaâ„¢ clusters and streaming applications.
---
## Scope of the project
-This project aims to create a set of libraries and tools to direct access, from .NET, all the features available in the [Apache Kafka™ binary distribution](https://kafka.apache.org/downloads).
+This project aims to create a set of libraries and tools to direct access, from .NET, all the features available in the [Apache Kafkaâ„¢ binary distribution](https://kafka.apache.org/downloads).
-There are many client libraries written to manage communication with Apache Kafka™. Conversely, this project use directly the Java packages released from The Apache Foundation giving more than one benefit:
+There are many client libraries written to manage communication with Apache Kafkaâ„¢. Conversely, this project use directly the Java packages released from The Apache Foundation giving more than one benefit:
* all implemented features are availables at no extra implementation costs, see [KNet usage](articles/usage.md);
* avoids any third party communication protocol implementation;
-* access all features made available from Apache Kafka™: the most important are Apache Kafka™ Streams and Apache Kafka™ Connect which does not have any C# implementation;
+* access all features made available from Apache Kafkaâ„¢: the most important are Apache Kafkaâ„¢ Streams and Apache Kafkaâ„¢ Connect which does not have any C# implementation;
* measured high [performance](articles/performance.md) in many operating conditions.
-Currently the project tries to support, at our best, the [supported Apache Kafka™ binary distribution](https://kafka.apache.org/downloads):
-- Apache Kafka™ version 3.8.*:
+Currently the project tries to support, at our best, the [supported Apache Kafkaâ„¢ binary distribution](https://kafka.apache.org/downloads):
+- Apache Kafkaâ„¢ version 3.8.*:
- branch [master](https://github.com/masesgroup/KNet)
- KNet version 2.8.*
-- Apache Kafka™ version 3.7.*:
+- Apache Kafkaâ„¢ version 3.7.*:
- branch [release/2.7.X](https://github.com/masesgroup/KNet/tree/release/2.7.X)
- KNet version 2.7.*
-- Apache Kafka™ version 3.6.*:
+- Apache Kafkaâ„¢ version 3.6.*:
- branch [release/2.6.X](https://github.com/masesgroup/KNet/tree/release/2.6.X)
- KNet version 2.6.*
-The Apache Kafka™ packages are downloaded from:
+The Apache Kafkaâ„¢ packages are downloaded from:
|kafka-clients | kafka-streams | kafka-tools | kafka_2.13 |
|:---: |:---: |:---: |:---: |
@@ -88,17 +88,17 @@ This project adheres to the Contributor [Covenant code of conduct](https://githu
### News
-* V1.4.4+: From version 1.4.4 there is a new project, named KNetPS, which permits to write PowerShell client scripts for an Apache Kafka™ cluster and many other things, [here full usage](articles/usagePS.md).
-* V1.4.7+: From version 1.4.7 there is a new project, named KNetConnect, to execute Apache Kafka™ Connect related jobs, [here full usage](articles/usageConnect.md).
+* V1.4.4+: From version 1.4.4 there is a new project, named KNetPS, which permits to write PowerShell client scripts for an Apache Kafkaâ„¢ cluster and many other things, [here full usage](articles/usagePS.md).
+* V1.4.7+: From version 1.4.7 there is a new project, named KNetConnect, to execute Apache Kafkaâ„¢ Connect related jobs, [here full usage](articles/usageConnect.md).
* V1.5.4+: From version 1.5.4 there are new packages dedicated to [KNet Serializer/Deserializer](articles/usageSerDes.md)
-* V2.0.0+: From version 2.0.0 the code base is fully reflected from the JARs of the Apache Kafka™ distribution downloaded from Maven; some developed classes still remains beside the specific KNet implementations
+* V2.0.0+: From version 2.0.0 the code base is fully reflected from the JARs of the Apache Kafkaâ„¢ distribution downloaded from Maven; some developed classes still remains beside the specific KNet implementations
* V2.4.0+: From version 2.4.0 it is available the new KNet Streams SDK
* V2.5.0+: From version 2.5.0 there are two breaking changes: uses `Java.Lang.String` instead of `string` (`System.String`) in generated classes and KNet Streams SDK manages the counter-part JVM types
* V2.7.0+: From version 2.7.0:
* all classes KNetProducer, KNetConsumer and KNet Streams SDK manage the counter-part JVM types
* serializers supports data exchange based on `byte` array and `ByteBuffer`
* version 2.7.2 introduces `ISerDesSelector` to optimize serialization selection based on `byte` array or `ByteBuffer`
-* V2.8.0+: From version 2.8.0: supports Apache Kafka™ version 3.8.*
+* V2.8.0+: From version 2.8.0: supports Apache Kafkaâ„¢ version 3.8.*
---
@@ -109,9 +109,9 @@ KNet uses [JNet](https://github.com/masesgroup/JNet), and indeed [JCOBridge](htt
* [JVM](https://en.wikipedia.org/wiki/Java_virtual_machine) and [CLR, or CoreCLR,](https://en.wikipedia.org/wiki/Common_Language_Runtime) runs in the same process, but are insulated from each other;
* JCOBridge does not make any code injection into JVM;
* JCOBridge does not use any other communication mechanism than JNI;
- * .NET (CLR) inherently inherits the cyber-security levels of running JVM and Apache Kafka™;
+ * .NET (CLR) inherently inherits the cyber-security levels of running JVM and Apache Kafkaâ„¢;
* **Direct access the JVM from any .NET application**:
- * Any Java/Scala class behind Apache Kafka™ can be directly managed: Consumer, Producer, Administration, Streams, Server-side, and so on;
+ * Any Java/Scala class behind Apache Kafkaâ„¢ can be directly managed: Consumer, Producer, Administration, Streams, Server-side, and so on;
* No need to learn new APIs: we try to expose the same APIs in C# style;
* No extra validation cycle on protocol and functionality: bug fix, improvements, new features are immediately available;
* Documentation is shared;
diff --git a/src/jvm/knet/pom.xml b/src/jvm/knet/pom.xml
index 386ee7ffb..9670b945a 100644
--- a/src/jvm/knet/pom.xml
+++ b/src/jvm/knet/pom.xml
@@ -40,7 +40,8 @@
11
11
${basedir}/classpathfile.classpath
- 3.8.1
+ false
+ 3.9.0
2.8.2.0
../../../bin/net8.0/JCOBridge.jar
../../../bin/net8.0/jars/jnet-2.5.10.0.jar
@@ -137,13 +138,9 @@
-cp
${originalClassPath}${path.separator}${basedir}/${jcobridgepath}${path.separator}${basedir}/${jnetpath}
+ ${mavenSkipMain}
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.13.0
-
org.apache.maven.plugins
maven-source-plugin
@@ -252,17 +249,17 @@
io.netty
netty-codec
- 4.1.110.Final
+ 4.1.111.Final
io.netty
netty-handler
- 4.1.110.Final
+ 4.1.111.Final
io.netty
netty-transport-native-epoll
- 4.1.110.Final
+ 4.1.111.Final
com.google.errorprone