Class ClassLoadingConfig


  • @ConfigRoot(phase=BUILD_TIME)
    public class ClassLoadingConfig
    extends Object
    WARNING: This is not normal quarkus config, this is only read from application.properties.

    This is because it is needed before any of the config infrastructure is set up.

    • Field Detail

      • parentFirstArtifacts

        @ConfigItem(defaultValue="")
        public Optional<List<String>> parentFirstArtifacts
        Artifacts that are loaded in a parent first manner. This can be used to work around issues where a given class needs to be loaded by the system ClassLoader. Note that if you make a library parent first all its dependencies should generally also be parent first.

        Artifacts should be configured as a comma separated list of artifact ids, with the group, artifact-id and optional classifier separated by a colon.

        WARNING: This config property can only be set in application.properties

      • reloadableArtifacts

        @ConfigItem(defaultValue="")
        public Optional<String> reloadableArtifacts
        Artifacts that are loaded in the runtime ClassLoader in dev mode, so they will be dropped and recreated on change.

        This is an advanced option, it should only be used if you have a problem with libraries holding stale state between reloads. Note that if you use this any library that depends on the listed libraries will also need to be reloadable.

        This setting has no impact on production builds.

        Artifacts should be configured as a comma separated list of artifact ids, with the group, artifact-id and optional classifier separated by a colon.

        WARNING: This config property can only be set in application.properties

      • removedArtifacts

        @ConfigItem(defaultValue="")
        public Optional<List<String>> removedArtifacts
        Artifacts that will never be loaded by the class loader, and will not be packed into the final application. This allows you to explicitly remove artifacts from your application even though they may be present on the class path.
      • removedResources

        @ConfigItem
        public Map<String,​Set<String>> removedResources
        Resources that should be removed/hidden from dependencies.

        This allows for classes and other resources to be removed from dependencies, so they are not accessible to the application. This is a map of artifact id (in the form group:artifact) to a list of resources to be removed.

        When running in dev and test mode these resources are hidden from the ClassLoader, when running in production mode these files are removed from the jars that contain them.

        Note that if you want to remove a class you need to specify the class file name. e.g. to remove com.acme.Foo you would specify com/acme/Foo.class.

        Note that for technical reasons this is not supported when running with JBang.

    • Constructor Detail

      • ClassLoadingConfig

        public ClassLoadingConfig()