Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement the java/groovy environment builder #4

Open
ctrueden opened this issue Jun 22, 2023 · 0 comments
Open

Implement the java/groovy environment builder #4

ctrueden opened this issue Jun 22, 2023 · 0 comments
Labels
enhancement New feature or request
Milestone

Comments

@ctrueden
Copy link
Member

ctrueden commented Jun 22, 2023

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).

@ctrueden ctrueden added the enhancement New feature or request label Jun 22, 2023
@ctrueden ctrueden modified the milestones: 0.3.0, 0.4.0 Jun 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant