Skip to content

File Index

The Java binding lives in the gempba repo under bindings/. The shared source set (java/) is compiled into both flavors; the variant source sets (java-multithreading/, java-multiprocessing/) each contribute their own GemPBA entry-point class, selected by the Maven profile that builds the classifier.

bindings/
├── java/
├── pom.xml — Maven build: variant profiles, fat-JAR packaging, GitHub Packages publishing
└── src/main/
├── java/io/gempba/ — shared source set (both flavors)
├── core/
├── Node.java
├── internal/
├── stats/
└── RankStats.java
├── task/
├── NodeTask.java
├── Serializer.java
└── value/
├── Goal.java
├── Score.java
└── ScoreType.java
├── java-multithreading/io/gempba/ — mt classifier source set
└── GemPBA.java — MT entry point and factories
└── java-multiprocessing/io/gempba/ — mp-mpi classifier source set
├── GemPBA.java — MP entry point and factories
└── scheduler/
├── Scheduler.java
└── SerialTask.java
└── jni/
└── src/gempba_jni.cpp — JNI shim between the JVM and the C ABI; see How it works

include/gempba/
└── cabi/
└── gempba.h — the stable C ABI the JNI shim calls into