Class ResourceConfigGenerator


  • public class ResourceConfigGenerator
    extends java.lang.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.

    Since:
    4.0
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String generateResourceConfig​(CommandLine.Model.CommandSpec[] specs, java.lang.String[] bundles, java.lang.String[] resourceRegex)
      Returns a JSON String with the resources and resource bundles to include for the specified CommandSpec objects.
      static void main​(java.lang.String... args)
      Runs this class as a standalone application, printing the resulting JSON String to a file or to System.out.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ResourceConfigGenerator

        public ResourceConfigGenerator()
    • Method Detail

      • main

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

        public static java.lang.String generateResourceConfig​(CommandLine.Model.CommandSpec[] specs,
                                                              java.lang.String[] bundles,
                                                              java.lang.String[] resourceRegex)
        Returns a JSON String with the resources and resource bundles to include for the specified CommandSpec objects.
        Parameters:
        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
        Returns:
        a JSON String in the format required by the -H:ResourceConfigurationFiles=/path/to/resource-config.json option of the GraalVM native-image utility.