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