From c675275845a60b0eb2dfe5828a9b950d76e0e744 Mon Sep 17 00:00:00 2001 From: Philipp Ossler Date: Tue, 21 Feb 2023 06:07:56 +0100 Subject: [PATCH] feat: include the Zeebe version in the topology The gRPC topology response contains the version of the broker and gateway. Adjust the versions to contains not only the version of EZE but also the version of Zeebe. --- .../community/eze/grpc/GrpcToLogStreamGateway.kt | 13 +++++++++++-- .../org/camunda/community/eze/EngineClientTest.kt | 8 ++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/eze/src/main/kotlin/org/camunda/community/eze/grpc/GrpcToLogStreamGateway.kt b/eze/src/main/kotlin/org/camunda/community/eze/grpc/GrpcToLogStreamGateway.kt index 87db99c..411f1a4 100644 --- a/eze/src/main/kotlin/org/camunda/community/eze/grpc/GrpcToLogStreamGateway.kt +++ b/eze/src/main/kotlin/org/camunda/community/eze/grpc/GrpcToLogStreamGateway.kt @@ -47,6 +47,8 @@ class GrpcToLogStreamGateway( private val requestIdGenerator = AtomicLong() + private val versionInfo = getVersionInfo() + private fun writeCommandWithKey( key: Long, metadata: RecordMetadata, @@ -426,7 +428,7 @@ class GrpcToLogStreamGateway( .addPartitions(partition) .setHost("0.0.0.0") .setPort(26500) - .setVersion(javaClass.`package`.implementationVersion ?: "X.Y.Z") + .setVersion(versionInfo) .build() val topologyResponse = GatewayOuterClass.TopologyResponse @@ -435,7 +437,7 @@ class GrpcToLogStreamGateway( .setClusterSize(1) .setPartitionsCount(1) .setReplicationFactor(1) - .setGatewayVersion(javaClass.`package`.implementationVersion ?: "A.B.C") + .setGatewayVersion(versionInfo) .build() responseObserver.onNext(topologyResponse) @@ -493,4 +495,11 @@ class GrpcToLogStreamGateway( // TODO handle } } + + private fun getVersionInfo(): String { + val ezeVersion = javaClass.`package`.implementationVersion ?: "dev" + val zeebeVersion = RecordMetadata::class.java.`package`.implementationVersion ?: "dev" + + return "$ezeVersion ($zeebeVersion)" + } } diff --git a/eze/src/test/kotlin/org/camunda/community/eze/EngineClientTest.kt b/eze/src/test/kotlin/org/camunda/community/eze/EngineClientTest.kt index b850858..32aba41 100644 --- a/eze/src/test/kotlin/org/camunda/community/eze/EngineClientTest.kt +++ b/eze/src/test/kotlin/org/camunda/community/eze/EngineClientTest.kt @@ -74,13 +74,17 @@ class EngineClientTest { assertThat(topology.clusterSize).isEqualTo(1) assertThat(topology.replicationFactor).isEqualTo(1) assertThat(topology.partitionsCount).isEqualTo(1) - assertThat(topology.gatewayVersion).isEqualTo("A.B.C") + assertThat(topology.gatewayVersion) + .describedAs("Expect a version with the pattern 'dev (8.1.8)'") + .containsPattern("""dev \(8\.\d+\.\d+\)""") assertThat(topology.brokers).hasSize(1) val broker = topology.brokers[0] assertThat(broker.host).isEqualTo("0.0.0.0") assertThat(broker.port).isEqualTo(26500) - assertThat(broker.version).isEqualTo("X.Y.Z") + assertThat(broker.version) + .describedAs("Expect a version with the pattern 'dev (8.1.8)'") + .containsPattern("""dev \(8\.\d+\.\d+\)""") assertThat(broker.partitions).hasSize(1) val partition = broker.partitions[0]