Skip to content

feat(v2): GraalVM support for parameters module #1824

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

Open
wants to merge 1 commit into
base: v2
Choose a base branch
from

Conversation

jreijn
Copy link
Contributor

@jreijn jreijn commented May 2, 2025

Issue #, if available: #1818

Description of changes:

Introduced GraalVM metadata for all submodules of the parameters module:

  • powertools-parameters
  • powertools-parameters-ssm
  • powertools-parameters-secrets
  • powertools-parameters-appconfig
  • powertools-parameters-dynamodb

Checklist

Breaking change checklist

RFC issue #:

  • Migration process documented
  • Implement warnings (if it can live side by side)

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Copy link

sonarqubecloud bot commented May 2, 2025

@jreijn
Copy link
Contributor Author

jreijn commented May 2, 2025

I tried to follow the guide as mentioned by https://github.com/aws-powertools/powertools-lambda-java/blob/v2/GraalVM.md which helped a lot with generating the meta data.

However I do wonder if we need all the metadata generated by the GraalVM agent. In on of my projects where I used v1 of Powertools I only needed the following snippet to get the SecretsProvider to work:

[
  {
    "name" : "software.amazon.lambda.powertools.parameters.SecretsProvider",
    "allDeclaredConstructors" : true,
    "allPublicConstructors" : true,
    "allDeclaredMethods" : true,
    "allPublicMethods" : true,
    "allDeclaredFields" : true,
    "allPublicFields" : true
  }
]

Now we have all sorts of java internal classes or classes coming from other libraries or the JVM, which I don't think we need? Shouldn't they be handled by the corresponding projects? I'm by no means a GraalVM expert, but I always understood it in such a way that metadata in a provided library only contains metadata about its own classes and resources which otherwise can't be reached.

@phipag phipag self-requested a review May 5, 2025 09:47
@phipag phipag assigned phipag and jreijn and unassigned phipag May 5, 2025
@phipag phipag moved this to Pending review in Powertools for AWS Lambda (Java) May 5, 2025
@phipag phipag linked an issue May 5, 2025 that may be closed by this pull request
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Pending review
Development

Successfully merging this pull request may close these issues.

Comprehensive GraalVM support for all utilities
2 participants