andygrove opened a new pull request, #9: URL: https://github.com/apache/datafusion-java/pull/9
Closes #4. Adds a Maven build pipeline that downloads `datafusion_common.proto` and `datafusion.proto` from `apache/datafusion` at a pinned tag (`53.1.0`, matching `native/Cargo.toml`) and generates Java classes from them via the Xolstice `protobuf-maven-plugin`. Generated classes ship inside the existing `datafusion-java` jar — the `org.apache.datafusion.protobuf.*` namespace from `datafusion.proto`, plus `datafusion_common.*` from `datafusion_common.proto`. Also adds a bootstrap `CONTRIBUTING.md` whose primary content is the DataFusion / protobuf schema version-sync recipe. Bumping DataFusion now requires updating three things together: `native/Cargo.toml`, `pom.xml`'s `<datafusion.version>`, and the SHA-512 pins on the two downloads. The recipe documents the exact commands to do that. End-to-end functionality — Java code constructing a plan via these classes and executing it through `SessionContext` — is tracked separately in #8. ## What's in this PR - `pom.xml`: two new properties (`<datafusion.version>=53.1.0`, `<protobuf.version>=3.25.5`), `protobuf-java` runtime dep, `os-maven-plugin` build extension, two `download-maven-plugin` executions with SHA-512 pins, and Xolstice `protobuf-maven-plugin` for codegen. - `src/test/java/org/apache/datafusion/proto/ProtoGenerationTest.java`: smoke test instantiating a generated class. - `CONTRIBUTING.md`: new file with the version-sync recipe. ## Not in this PR - Module split (kept single-module for now; revisit when a proto-only consumer exists). - Vendored protos (downloaded on first build, cached on `~/.m2` after that). - JVM-side plan construction APIs, schema-fidelity tests, round-trip tests — see #8. -- 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
