Ah, good old drill-fmpp-plugin

For instance: we migrate to Gradle, and the problem is solved automatically.

Just a datapoint: Apache JMeter has recently switched to Gradle.
The PR for Avatica (including a release candidate waiting for review) is
ready: https://github.com/apache/calcite-avatica/pull/104

It won't really take long to switch Calcite. Really. The build is just a
build, and it is way simpler than the main codebase :)

On top of that, Gradle improves IDE integration. For instance, I often run
into
"org.apache.calcite.sql.parser.parserextensiontesting.ExtensionSqlParserImpl
not found" error when running tests from IDEA.
The thing is ExtensionSqlParserImpl is an autogenerated java file, so that
generation must be run somehow before Calcite code even compiles.
That is extremely sad.

In 99.42% of the times I just comment that line as follows:

public class ExtensionSqlParserTest extends SqlParserTest {
  @Override protected SqlParserImplFactory parserImplFactory() {
    return null; //ExtensionSqlParserImpl.FACTORY;
  }

Gradle enables to configure certain tasks for automatic execution "on
project import", and it resolves those cases seamlessly.
For instance, JMeter uses that to generate JMeterVersion.java class on the
fly:
https://github.com/apache/jmeter/blob/41bad20e9d495240e140da6cbdbf5d9e2c8d3123/src/core/src/main/version/org/apache/jmeter/util/JMeterVersion.java#L30

PS. As you might know, Gradle build pushes release candidates just fine:
https://dist.apache.org/repos/dist/dev/calcite/apache-calcite-avatica-1.16.0-rc1/
PPS. I'm not working for Gradle. I really like the way it simplifies
development.

Vladimir

Reply via email to