Class ResourceConfigGenerator

  • public class ResourceConfigGenerator
    extends Object
    ResourceConfigGenerator generates a JSON String with the resource bundles and other classpath resources that should be included in the Substrate VM native image.

    The GraalVM native-image builder by default will not integrate any of the classpath resources into the image it creates.

    The output of ResourceConfigGenerator is intended to be passed to the -H:ResourceConfigurationFiles=/path/to/resource-config.json option of the native-image GraalVM utility. This allows picocli-based native image applications to access these resources.

    Alternatively, the generated configuration files can be supplied to the native-image tool by placing them in a META-INF/native-image/ directory on the class path, for example, in a JAR file used in the image build. This directory (or any of its subdirectories) is searched for files with the names jni-config.json, reflect-config.json, proxy-config.json and resource-config.json, which are then automatically included in the build. Not all of those files must be present. When multiple files with the same name are found, all of them are included.

    • Constructor Detail

      • ResourceConfigGenerator

        public ResourceConfigGenerator()
    • Method Detail

      • main

        public static void main​(String... args)
        Runs this class as a standalone application, printing the resulting JSON String to a file or to System.out.
        args - one or more fully qualified class names of @Command-annotated classes.
      • generateResourceConfig

        public static String generateResourceConfig​(CommandLine.Model.CommandSpec[] specs,
                                                    String[] bundles,
                                                    String[] resourceRegex)
        Returns a JSON String with the resources and resource bundles to include for the specified CommandSpec objects.
        specs - one or more CommandSpec objects to inspect for resource bundles
        bundles - base names of additional resource bundles to be included in the image
        resourceRegex - one or more Java regular expressions that match resource(s) to be included in the image
        a JSON String in the format required by the -H:ResourceConfigurationFiles=/path/to/resource-config.json option of the GraalVM native-image utility.