Hard Dependency on Groovy
- Dominant language
- Java
- Stars
- 6.1k
- Forks
- 1.5k
- Avg merge
- 2d 55m
- Merged PRs (30d)
- 182
Description
The PR #14844 has added a hard dependency on Groovy. Without Groovy the broker startup now fails with the following:
```
Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/groovy/control/CompilerConfiguration
at org.apache.pinot.segment.local.function.GroovyFunctionEvaluator.(GroovyFunctionEvaluator.java:71)
at org.apache.pinot.broker.broker.helix.BaseBrokerStarter.start(BaseBrokerStarter.java:502)
at com.uber.uPinot.starters.StartBroker.main(StartBroker.java:75)
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.control.CompilerConfiguration
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
... 3 more
```
Given this feature is not in a release yet, I'd recommend putting this behind a flag. @abhishekbafna @Jackie-Jiang
Contributor guide
Research direction
Start by reviewing PR #14844 and the startup path in org.apache.pinot.broker.broker.helix.BaseBrokerStarter, then inspect GroovyFunctionEvaluator.java around the reported class-initialization failure. Confirm how the broker is packaged and started without Groovy; done means startup no longer fails when the optional feature is unused.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- groovy, java
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100