merlimat opened a new pull request, #4781: URL: https://github.com/apache/bookkeeper/pull/4781
## Summary Migrates the stream module's **non-gRPC** proto definitions from `protobuf-java` to LightProto: - `stream/statelib/src/main/proto/kv.proto` — KV state-store commands (uses proto3 `oneof`) - `stream/proto/src/main/proto/cluster.proto` — cluster metadata / server assignment (uses proto3 `map`) Both proto files are proto3; LightProto handles `oneof` and `map` directly. ## Approach Branched off `apache/master` and **does not stack on top of #4779 / #4780** (the in-flight bookkeeper-proto migrations). The pom changes are minimal and contained to stream: - `pom.xml` — adds `<lightproto-maven-plugin.version>` property. - `stream/statelib/pom.xml` — replaces `protobuf-maven-plugin` with `lightproto-maven-plugin` (statelib has only `kv.proto`). - `stream/proto/pom.xml` — keeps `protobuf-maven-plugin` for the gRPC-bearing protos and adds `lightproto-maven-plugin` for `cluster.proto`. To avoid both plugins generating the same types, `cluster.proto` is moved to a parallel `src/main/proto-lightproto/` directory. Java sources that referenced the migrated types are updated to use the LightProto mutable-instance API (no Builder pattern, fields populated by chained setters or via the nested-message `setX()` returning the inner message to mutate). ## Out of scope (follow-ups) - gRPC service protos (`storage.proto`, `kv_rpc.proto`, `tests-common/rpc.proto`) and the messages they import (`common.proto`, `kv.proto`, `kv_store.proto`, `stream.proto`) — these still need a custom gRPC marshaller story for LightProto types. - `tests-common/proto2_coder_test_messages.proto` — uses proto2 `extensions`, not supported by LightProto, and is dead code. ## Test plan - [x] `stream/statelib`: `TestKVUtils`, `TestRocksdbKVStore` (35 tests pass) - [x] `stream/storage/impl`: `InMemClusterMetadataStoreTest`, `ZkClusterMetadataStoreTest`, `DefaultStorageContainerControllerTest`, `ClusterControllerImplTest`, `ClusterControllerLeaderImplTest`, `ZkStorageContainerManagerTest` (28 tests pass) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
