Decouple pinot-tools dependency on pinot-server, pinot-controller and pinot-broker
- Dominant language
- Java
- Stars
- 6.1k
- Forks
- 1.5k
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 189
Description
It would be a great idea to break this dependency by introducing some api modules or some other way. The result would be a smaller pinot-tools with none of the vulnerabilities or license issues that come with including the server, controller or broker. See https://github.com/apache/incubator-pinot/blob/master/pinot-tools/pom.xml for the dependencies included.
For example in order to get the Pinot Table Creation url, I have to access the class https://github.com/apache/incubator-pinot/blob/47ff09b4c5d726355a4516d2e1eb72c9705b81b9/pinot-controller/src/main/java/org/apache/pinot/controller/helix/ControllerRequestURLBuilder.java which defines the url and is in the pinot-controller module. This could be defined in a much smaller pinot-controller-client or pinot-controller-api to avoid having to include all of pinot controller.
Contributor guide
Research direction
Start with pinot-tools/pom.xml and inspect its dependencies on pinot-server, pinot-controller, and pinot-broker. Read ControllerRequestURLBuilder.java in pinot-controller to identify the client-facing API that motivates the change. Done means pinot-tools no longer includes those large modules while retaining the required functionality and avoiding their vulnerabilities and license issues.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system, tooling
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100