apache / apache/drill

Expose `org.apache.drill.test` artifact so that end-users can use `ClusterFixtureBuilder` to create embedded Drill applications

Open
#2,446 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
2k
Forks
990
Avg merge
1d 8h
Merged PRs (30d)
5

Description

Hello, I would like to embed Drill in a JVM application, running as a single node in-memory.
I will feed it Calcite `RelNode` relational expressions to execute that my application is generating.

Browsing the code to try to find out how best to go about this, I found in `ClusterFixtureBuilder.java`:

(If this isn't the best/easiest way to embed a single Drill node please let me know and I will delete this issue 😅)

https://github.com/apache/drill/blob/2decae18b85eeda51816e92d5a9e9e6e2f9ce8d5/exec/java-exec/src/test/java/org/apache/drill/test/ClusterFixtureBuilder.java#L29-L43

https://github.com/apache/drill/blob/2decae18b85eeda51816e92d5a9e9e6e2f9ce8d5/exec/java-exec/src/test/java/org/apache/drill/test/ClusterFixtureBuilder.java#L279-L301

But it looks like there is no Maven artifact or `.jar` to download to include this functionality as an end user =/

I tried to copy-paste the primary classes, but there is a spiderweb of dependencies through out the `org.apache.drill.test` and `org.apache.drill.exec.testing` packages.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading ClusterFixtureBuilder.java under exec/java-exec/src/test/java/org/apache/drill/test/, especially the referenced builder sections, and trace its dependencies through org.apache.drill.test and org.apache.drill.exec.testing. Determine the Maven packaging needed to expose this functionality to end users, then verify that an embedded single-node application can consume the resulting artifact.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.