Skip to content

Implement the java/groovy environment builder #4

@ctrueden

Description

@ctrueden

To build an environment that supports running the Groovy worker, we need to:

  1. download and cache a JDK
  2. 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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions