Class CPropsFileConfigurationSource

All Implemented Interfaces:
ConfigurationSource<AbstractHashConfigurationSource.HashConfigurationQuery<String,CPropsFileConfigurationSource>,AbstractHashConfigurationSource.HashExecutableConfigurationQuery<String,CPropsFileConfigurationSource>,AbstractHashConfigurationSource.HashListConfigurationQuery<String,CPropsFileConfigurationSource>>, DefaultableConfigurationSource<AbstractHashConfigurationSource.HashConfigurationQuery<String,CPropsFileConfigurationSource>,AbstractHashConfigurationSource.HashExecutableConfigurationQuery<String,CPropsFileConfigurationSource>,AbstractHashConfigurationSource.HashListConfigurationQuery<String,CPropsFileConfigurationSource>,CPropsFileConfigurationSource>

public class CPropsFileConfigurationSource extends AbstractHashConfigurationSource<String,CPropsFileConfigurationSource>

A configuration source that looks up properties in a configuration properties file following the .cprops file format.

This source supports parameterized configuration properties defined in a configuration file as follows:


 web {
     server_port=8080
     [ profile = "ssl" ] {
         server_port=8443
     }
 }

 [ env="dev" ] {
     db.url="jdbc:oracle:thin:@dev.db.server:1521:sid"
 }

 [ env="prod" ] {
     db.url="jdbc:oracle:thin:@dev.db.server:1521:sid"
     [ zone="eu" ] {
         db.url="jdbc:oracle:thin:@prod_eu.db.server:1521:sid"
     }
     [ zone="us" ] {
         db.url="jdbc:oracle:thin:@prod_us.db.server:1521:sid"
     }
 }
 

Please refer to the .cprops format definition for more information on how to create parameterized configuration in the .cprops format.

Since:
1.0
Author:
Jeremy Kuhn
See Also:
  • Constructor Details

    • CPropsFileConfigurationSource

      public CPropsFileConfigurationSource(Path propertyFile)

      Creates a .cprops file configuration source with the file at the specified path.

      Parameters:
      propertyFile - the path to the .cprops file
    • CPropsFileConfigurationSource

      public CPropsFileConfigurationSource(Path propertyFile, SplittablePrimitiveDecoder<String> decoder)

      Creates a .cprops file configuration source with the file at the specified path and the specified string value decoder.

      Parameters:
      propertyFile - the path to the .cprops file
      decoder - a string decoder
    • CPropsFileConfigurationSource

      public CPropsFileConfigurationSource(InputStream propertyInput)

      Creates a .cprops file configuration source with the specified input stream.

      Parameters:
      propertyInput - the .cprops input
    • CPropsFileConfigurationSource

      public CPropsFileConfigurationSource(InputStream propertyInput, SplittablePrimitiveDecoder<String> decoder)

      Creates a .cprops file configuration source with the specified input stream and string value decoder.

      Parameters:
      propertyInput - the .cprops input
      decoder - a string decoder
    • CPropsFileConfigurationSource

      public CPropsFileConfigurationSource(Resource propertyResource)

      Creates a .cprops file configuration source with the specified resource

      Parameters:
      propertyResource - the .properties resource
    • CPropsFileConfigurationSource

      public CPropsFileConfigurationSource(Resource propertyResource, SplittablePrimitiveDecoder<String> decoder)

      Creates a .cprops file configuration source with the specified resource and string value decoder.

      Parameters:
      propertyResource - the .properties resource
      decoder - a string decoder
  • Method Details

    • withDefaultingStrategy

      public CPropsFileConfigurationSource withDefaultingStrategy(DefaultingStrategy defaultingStrategy)
      Description copied from interface: DefaultableConfigurationSource

      Returns a proxy of the defaultable configuration source instance using the specified defaulting strategy.

      Parameters:
      defaultingStrategy - a defaulting strategy
      Returns:
      a new defaultable configuration source
    • setPropertiesTTL

      public void setPropertiesTTL(Duration ttl)

      Sets the time-to-live duration of the properties loaded with load().

      If set to null, which is the default, properties are cached indefinitely.

      Note that this ttl doesn't apply to a source created with an InputStream which is cached indefinitely since the steam can't be read twice.

      Parameters:
      ttl - the properties time-to-live or null to cache properties indefinitely
    • getPropertiesTTL

      public Duration getPropertiesTTL()

      Returns the time-to-live duration of the properties loaded with load().

      Returns:
      the properties time-to-live or null if properties are cached indefinitely
    • load

      protected Mono<List<ConfigurationProperty>> load()
      Description copied from class: AbstractHashConfigurationSource

      Loads the configuration properties.

      Specified by:
      load in class AbstractHashConfigurationSource<String,CPropsFileConfigurationSource>
      Returns:
      A mono emitting the list of configuration properties