Repository navigation
Expand file tree
/
Copy pathbuild.gradle.kts
More file actions
52 lines (48 loc) · 2.56 KB
/
Copy pathbuild.gradle.kts
File metadata and controls
52 lines (48 loc) · 2.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// Copyright 2026 Query Farm LLC - https://query.farm
plugins {
application
}
dependencies {
implementation(project(":vgi"))
implementation("org.slf4j:slf4j-simple:2.0.17")
// Embedded Haybarn engine for evaluating pushed expression filters
// (spatial &&, list_contains, ...) against emitted batches — mirrors
// vgi-python's `vgi._duckdb` expression-filter evaluator. arrow-c-data
// bridges an Arrow batch into the engine via the C Data interface.
implementation("farm.query.haybarn:haybarn_jdbc:2.0.0-rc9")
// Held at 19.0.0 deliberately: vgi-rpc-java exports arrow-vector/
// arrow-memory-netty 19.0.0 as `api` deps, and Arrow's Java modules must
// stay version-consistent on one classpath. Bump this only in lockstep
// with arrowVersion in vgi-rpc-java/vgirpc/build.gradle.kts.
implementation("org.apache.arrow:arrow-c-data:19.0.0")
// The conformance identity fixture's header authenticator reads the request
// (vgirpc's Authenticator takes a servlet request). Jetty supplies the API
// at runtime through vgirpc; compile against it only.
compileOnly("jakarta.servlet:jakarta.servlet-api:6.0.0")
testImplementation("org.junit.jupiter:junit-jupiter:5.12.2")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}
application {
mainClass.set("farm.query.vgi.example.Main")
// ParameterBinder reads Parameter.getName() — required for kwargs binding.
// (Already covered by -parameters compile flag in root build, but the
// Arrow allocator opens are needed at runtime too.)
applicationDefaultJvmArgs = listOf(
"--add-opens=java.base/java.nio=ALL-UNNAMED",
// Arrow 19 allocates through Netty 4.2, which disables sun.misc.Unsafe
// on Java 25+ unless told otherwise (apache/arrow-java#728).
"-Dio.netty.noUnsafe=false",
// FFM shm_open/mmap downcalls run in the worker JVM.
"--enable-native-access=ALL-UNNAMED",
)
}
tasks.withType<Test>().configureEach {
// Opt out of the root build's Arrow leak-detecting allocator for THIS
// module only. Its tests are client-side integration tests that decode the
// example catalog's ~200 FunctionInfo records off a live worker, and the
// debug allocator captures a stack trace per Arrow allocation: the same run
// takes ~140 s with it and ~6 s without, for no finding — every Arrow
// reader here is opened in try-with-resources. The leak check stays on for
// :vgi, which is where the decoders themselves live.
systemProperty("arrow.memory.debug.allocator", "false")
}