Class AbstractLocationConfigSourceLoader

java.lang.Object
io.smallrye.config.AbstractLocationConfigSourceLoader
Direct Known Subclasses:
AbstractLocationConfigSourceFactory, DotEnvConfigSourceProvider, PropertiesConfigSourceLoader

public abstract class AbstractLocationConfigSourceLoader extends Object
This AbstractLocationConfigSourceLoader loads ConfigSources from a list of specific locations.

The locations comprise a list of valid URIs which are loaded in order. The following URI schemes are supported:

  1. file or directory
  2. classpath resource
  3. jar resource
  4. http resource

If a profile is active, the profile resource is only loaded if the unprofiled resource is available in the exact location. This is to keep a consistent loading order and match the unprofiled resource when looking for resources in the classpath. The order is usually not guaranteed when querying a ClassLoader for multiple resources. The implementation queries the ClassLoader for the profiled resources by requiring the unprofiled resource first. It pairs them with unprofiled resources to ensure a consistent order and override behavior.

Profiles are not taken into account if the location is a directory.

  • Constructor Details

    • AbstractLocationConfigSourceLoader

      public AbstractLocationConfigSourceLoader()
  • Method Details

    • failOnMissingFile

      protected boolean failOnMissingFile()
      If the lookup from an URL which the scheme file: should fail. By default, a failed load does not throw an exception. In situations where the resource is required, a return value of true enables the exception.
      Returns:
      true if file lookup should fail with an exception, false otherwise.
    • getFileExtensions

      protected abstract String[] getFileExtensions()
      The file extensions to filter the locations to load. It does not require to include the dot separator.
      Returns:
      an array with the file extensions.
    • loadConfigSource

      protected abstract org.eclipse.microprofile.config.spi.ConfigSource loadConfigSource(URL url, int ordinal) throws IOException
      Loads a ConfigSource from an URL. Implementations must construct the ConfigSource to load.
      Parameters:
      url - the URL to load the ConfigSource.
      ordinal - the ordinal of the ConfigSource.
      Returns:
      the loaded ConfigSource.
      Throws:
      IOException - if an error occurred when reading from the URL.
    • loadConfigSources

      protected List<org.eclipse.microprofile.config.spi.ConfigSource> loadConfigSources(String location, int ordinal)
    • loadConfigSources

      protected List<org.eclipse.microprofile.config.spi.ConfigSource> loadConfigSources(String location, int ordinal, ClassLoader classLoader)
    • loadConfigSources

      protected List<org.eclipse.microprofile.config.spi.ConfigSource> loadConfigSources(String[] locations, int ordinal)
    • loadConfigSources

      protected List<org.eclipse.microprofile.config.spi.ConfigSource> loadConfigSources(String[] locations, int ordinal, ClassLoader classLoader)
    • tryFileSystem

      protected List<org.eclipse.microprofile.config.spi.ConfigSource> tryFileSystem(URI uri, int ordinal)
    • tryClassPath

      protected List<org.eclipse.microprofile.config.spi.ConfigSource> tryClassPath(URI uri, int ordinal, ClassLoader classLoader)
    • tryJar

      protected List<org.eclipse.microprofile.config.spi.ConfigSource> tryJar(URI uri, int ordinal)
    • fallbackToUnknownProtocol

      protected List<org.eclipse.microprofile.config.spi.ConfigSource> fallbackToUnknownProtocol(URI uri, int ordinal, ClassLoader classLoader)
    • tryHttpResource

      protected List<org.eclipse.microprofile.config.spi.ConfigSource> tryHttpResource(URI uri, int ordinal)