Skip to content

Add RESTHeart native image metadata entries#680

Merged
fniephaus merged 6 commits intooracle:masterfrom
SoftInstigate:add-restheart-metadata
Oct 29, 2025
Merged

Add RESTHeart native image metadata entries#680
fniephaus merged 6 commits intooracle:masterfrom
SoftInstigate:add-restheart-metadata

Conversation

@ujibang
Copy link
Copy Markdown
Contributor

@ujibang ujibang commented Sep 23, 2025

RESTHeart is a framework for building cloud-native HTTP microservices. It’s designed for the JVM and optimized for GraalVM, using Java Virtual Threads for high-performance concurrent processing.

RESTHeart provides built-in authentication, authorization, and MongoDB APIs.

What does this PR do?

This commit adds 7 RESTHeart modules to the library list:

  • org.restheart:restheart (Core platform)
  • org.restheart:restheart-commons (Common utilities)
  • org.restheart:restheart-graphql (GraphQL services)
  • org.restheart:restheart-metrics (Metrics and monitoring)
  • org.restheart:restheart-mongodb (MongoDB services)
  • org.restheart:restheart-polyglot (JavaScript/polyglot support)
  • org.restheart:restheart-security (Authentication/authorization)

All modules include embedded reachability metadata since version 8.0.0 and are tested with GraalVM Native Image builds.

Code sections where the PR accesses files, network, docker or some external service

  • none

Checklist before merging

RESTHeart is a low-code platform for cloud-native HTTP microservices that provides REST APIs for MongoDB and other data stores.

This commit adds 7 RESTHeart modules to the library list:
- org.restheart:restheart (Core platform)
- org.restheart:restheart-commons (Common utilities)
- org.restheart:restheart-graphql (GraphQL services)
- org.restheart:restheart-metrics (Metrics and monitoring)
- org.restheart:restheart-mongodb (MongoDB services)
- org.restheart:restheart-polyglot (JavaScript/polyglot support)
- org.restheart:restheart-security (Authentication/authorization)

All modules include embedded reachability metadata since version 8.0.0 and are tested with GraalVM Native Image builds.
@ujibang
Copy link
Copy Markdown
Contributor Author

ujibang commented Sep 30, 2025

please go ahead with code review

{
"minimum_version": "8.0.0",
"metadata_locations": [
"https://repo1.maven.org/maven2/org/restheart/restheart"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not trivial to confirm that there is metadata in the JARs on Maven Central. Do you have any supporting locations to the sources on GitHub or so?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fniephaus fniephaus requested review from fniephaus and removed request for dnestoro September 30, 2025 09:55
@fniephaus fniephaus self-assigned this Sep 30, 2025
Copy link
Copy Markdown
Member

@fniephaus fniephaus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fniephaus
Copy link
Copy Markdown
Member

https://github.com/oracle/graalvm-reachability-metadata/actions/runs/17947038279/job/51581379313?pr=680 is also failing due to the entries not being sorted alphabetically. Could you please fix this, too?

Remove extra space in JSON object separator to fix GitHub Actions
validation that checks if the file is properly sorted by artifact.
The entries were already sorted, but the formatting was incorrect.
Each RESTHeart module includes embedded GraalVM native image metadata
in their respective src/main/resources/META-INF/native-image directories.
Added GitHub source links for all 7 modules:

- restheart (core)
- restheart-commons
- restheart-graphql
- restheart-metrics
- restheart-mongodb
- restheart-polyglot
- restheart-security

These source locations provide verification that the metadata exists
in the JARs published to Maven Central.
@ujibang ujibang closed this Oct 8, 2025
@ujibang ujibang reopened this Oct 8, 2025
@ujibang
Copy link
Copy Markdown
Contributor Author

ujibang commented Oct 21, 2025

I see this failing but I don't get why? @fniephaus can you clarify/help?

@fniephaus
Copy link
Copy Markdown
Member

I see this failing but I don't get why? @fniephaus can you clarify/help?

Hey @ujibang, this is probably due to the entries not being in alphabetical order. If you have jq installed, you should be able to run diff "library-and-framework-list.json" <(jq -s '.[] | sort_by(.artifact)' "library-and-framework-list.json") to see the diff. Unfortunately, our current CI setup shows this properly atm.

@fniephaus
Copy link
Copy Markdown
Member

I took a quick look and the failure is caused by the change you made to the netty entry. Please revert:

$ diff "${JSON}" <(jq -s '.[] | sort_by(.artifact)' "${JSON}")
1678c1678,1680
<         "tests_locations": ["https://github.com/netty/netty/actions"],
---
>         "tests_locations": [
>           "https://github.com/netty/netty/actions"
>         ],

@ujibang
Copy link
Copy Markdown
Contributor Author

ujibang commented Oct 29, 2025

@fniephaus it should be fixed

Copy link
Copy Markdown
Member

@fniephaus fniephaus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

@fniephaus fniephaus merged commit 52a8bb9 into oracle:master Oct 29, 2025
5 checks passed
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

Successfully merging this pull request may close these issues.

2 participants