@obinexusltd/groovy-polycall
v1.0.0
Published
Groovy/JNI source binding for libpolycall 1.5
Maintainers
Readme
@obinexusltd/groovy-polycall
Groovy/JNI binding for libpolycall 1.5. The adapter maps Groovy calls to the single core entry point:
polycall_ffi_run_config(config_path, 1)Configuration parsing, validation, networking, and runtime policy remain in libpolycall. This package only marshals the configuration path across JNI and returns the core status unchanged.
Install the source package
npm install @obinexusltd/groovy-polycallThe npm package publishes the complete Groovy, JNI, and C source tree. It is a
native source distribution rather than a JavaScript implementation. In Node.js,
require('@obinexusltd/groovy-polycall') returns absolute paths to the packaged
sources, headers, configuration, manifest, and build files.
Requirements
- libpolycall 1.5 development library and headers
- JDK 17 or newer
- Groovy 4 or a Gradle installation with its bundled Groovy runtime
- a C11 compiler and GNU Make
Build
Build the standalone adapter archive without linking the core:
makeBuild the JNI shared library by supplying the JDK location and the linker flags for libpolycall:
export JAVA_HOME=/path/to/jdk
export POLYCALL_LDFLAGS='-L/path/to/lib -lpolycall'
make jniPowerShell uses the same variables:
$env:JAVA_HOME = 'C:\Program Files\Java\jdk-21'
$env:POLYCALL_LDFLAGS = '-LC:\path\to\lib -lpolycall'
make jniCompile the Groovy classes with either Gradle or groovyc:
gradle classes
# or
groovyc -d build/classes src/main/groovy/org/obinexus/polycall/*.groovyPlace the JNI library on java.library.path, or pass its absolute path with
-Dgroovy.polycall.library=/absolute/path/to/the/library.
API
import org.obinexus.polycall.Polycall
int status = Polycall.runConfig('groovy-polycallrc')
Polycall.runConfigOrThrow('groovy-polycallrc')runConfigreturns the exact libpolycall status.runConfigOrThrowraisesPolycallExceptionfor a non-zero status.- Omitting the path uses
groovy-polycallrc. groovy.polycall.libraryselects an explicit JNI library file.
See examples/basic.groovy for a runnable example.
Verification
The default suite needs only a C compiler, Make, Node.js, and PowerShell on Windows:
npm testIt verifies exact path forwarding, the required validation flag, status propagation, thin-adapter constraints, and npm package completeness.
When Groovy and a JDK matching the native compiler architecture are installed, run the end-to-end JNI smoke test:
npm run test:groovyPackage layout
src/main/groovy/— public Groovy API and exception typec_src/— C adapter and JNI bridgeinclude/— Groovy adapter C headergenerated/polycall/— minimal generated core FFI declarationexamples/— Groovy usage example and sample configurationtests/— native mock, JNI smoke test, and npm package test
Author and license
Copyright © 2026 Nnamdi Michael Okpala [email protected].
Released under the MIT License.
