Skip to content
This repository was archived by the owner on Sep 27, 2025. It is now read-only.
This repository was archived by the owner on Sep 27, 2025. It is now read-only.

Snoozle DB's use of reflection creates pain for GraalVM native image users #41

Description

@carltonwhitehead

GraalVM native image requires some configuration in order to include types whose only access is done reflectively. Snoozle DB Record types fit this description. Any time the user creates or changes a Record type name, or member variable, it requires a corresponding edit in the GraalVM native image configuration.

It should be theoretically possible for users of GraalVM native image to generate these configurations automatically by way of using the native image agent while running their application and/or their tests. In practice, I've found this cumbersome and/or difficult. There has to be a better way.

I could see at least one of several possible outcomes for this issue, in no particular order:

  • Discover a technique that allows GraalVM to discover types without additional configuration and update documentation accordingly
  • Reduce the use of reflection such that GraalVM needs no special consideration. (perhaps replace Jackson with a compiler plugin-based alternative such as kotlinx-serialization or similar)
  • Develop and document a simple formula that Snoozle DB / GraalVM native image users can apply to their project to reduce the configuration burden

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions