-
Notifications
You must be signed in to change notification settings - Fork 0
Description
To build an environment that supports running the Groovy worker, we need to:
- download and cache a JDK
- download and cache the appose java lib and its deps
Fortunately, thanks to Groovy Grape's @Grab annotation, any additional Java deps needed by Groovy service tasks can be gotten dynamically, so we don't need to implement a full-blown Maven dependency resolution mechanism. We can just hardcode the download of Appose Java's few dependencies.
For downloading and caching JDKs, we can use code from cjdk or install-jdk as a starting point, although I would suggest we fork it into Appose rather than adding a dependency—especially because we'll need an implementation for Appose Java (and eventually for Appose JavaScript) as well regardless. We also don't need all the CLI features of those tools.
This builder is less urgent than the Conda one (#5), because Appose's initial primary use case is invoking DL models from Java via separate Python processes. But being able to invoke Java code from Python is also extremely useful, and could benefit projects like PyImageJ + napari-imagej, which could avoid some GUI-related pain caused by in-process embedding (see imagej/pyimagej#23).