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

Cantaloupe: Update Java/JDK Version #13

Open
devangm opened this issue Oct 2, 2024 · 3 comments
Open

Cantaloupe: Update Java/JDK Version #13

devangm opened this issue Oct 2, 2024 · 3 comments
Assignees

Comments

@devangm
Copy link

devangm commented Oct 2, 2024

As a Developer
I want to upgrade the Java/JDK version used in the Cantaloupe image server
So that I can leverage more up-to-date image processing features, improve performance, and ensure long-term support for the platform.

Acceptance Criteria:
Upgrade to JDK22

  1. Explore upgrading the JDK used in Cantaloupe’s Docker container to JDK22 for long-term support.
  2. Ensure the Docker container can be configured to download and use JDK22 via wget.
  3. Modify the Dockerfile accordingly to support the selected version and ensure proper configuration.

Evaluate Image I/O and Metadata Handling:

  1. Test image processing improvements, especially related to Java's Image I/O JPEG plugin to mitigate issues like "Inconsistent metadata read from stream."
  2. Verify if upgrading to the latest JRE version resolves image read issues as mentioned in the Cantaloupe processor documentation.

Garbage Collector Configuration:

  1. Investigate the use of modern Garbage Collectors (e.g., G1 GC, ZGC, Shenandoah) introduced in newer Java versions to optimize memory management and reduce latency.
  2. Allow for testing different GCs by passing relevant command-line arguments and assess performance gains or stability improvements.

Ensure JPF File Format Compatibility:

  1. Ensure the upgraded JDK supports JPF (JPEG2000 Part 1 File Format) for proper image format handling.
  2. Verify that the failsafe functionality of Java is working properly in cases where other image processors like Kakadu or OpenJPG are unavailable.

Documentation and Testing:

  1. Document the steps involved in upgrading the JDK and configuring garbage collection options.
  2. Conduct performance benchmarks and image processing tests to validate improvements and confirm that no regression occurs.

Existing Issue: #7

@devangm devangm changed the title Cantaloupe: Update JDK / Java Version Cantaloupe: Update Java/JDK Version Oct 2, 2024
@kaladay kaladay self-assigned this Oct 4, 2024
@markpbaggett
Copy link

I didn't realize until today that the ideas from the HTJ2k card (JPH) didn't make it over into these new cards (my fault). Based on research, the fastest and most efficient JP2s should be JPH. Right now, dev throws this error when attempting to decode.

501 Not Implemented
Unsupported source format

https://api-dev.library.tamu.edu/iiif/2/ZmVkb3JhOjBhL2ViLzAwLzdkLzBhZWIwMDdkLTY4YmMtNGMzMS1iZWNlLTUwODExMmU2ZjljNy90b2RkLWxvc3N5Ml9vYmplY3RzLzYvcGFnZXMvcGFnZV8wL2ZpbGVzLzQyX0luZl9SYWluYm93X0Rpdl8yLmpwaA==/info.json

Oddly, with 3 year old kdu_expand on my local machine, I have no issues with expansion. Just adding even though we may have to leave this out of our investigation.

@kaladay
Copy link

kaladay commented Oct 7, 2024

The 8.0.3 version of kakadu binaries from Cantalupe are 4 years old:

@markpbaggett
Copy link

I've asked for thoughts on cantaloupe-dev:

https://iiif.slack.com/archives/C0719FRG5EK/p1728315561699939

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants