Class ApplicationProperties

java.lang.Object
io.fluxzero.sdk.configuration.ApplicationProperties

public class ApplicationProperties extends Object
Central utility for resolving configuration properties within a Fluxzero application.

This class delegates to a layered PropertySource, typically obtained from the active Fluxzero instance. If no context-bound property source is present, it falls back to a DecryptingPropertySource that wraps the default layered DefaultPropertySource.

Property sources are accessed in a prioritized order:

  1. EnvironmentVariablesSource – highest precedence
  2. SystemPropertiesSource
  3. ApplicationEnvironmentPropertiesSource – e.g. application-dev.properties
  4. ApplicationPropertiesSource – fallback base configuration from application.properties

Property resolution supports typed access, default values, encryption, and template substitution.

Common usage:

String token = ApplicationProperties.getProperty("FLUXZERO_API_TOKEN");
boolean featureEnabled = ApplicationProperties.getBooleanProperty("my.feature.enabled", true);
See Also:
  • Constructor Details

    • ApplicationProperties

      public ApplicationProperties()
  • Method Details

    • getProperty

      public static String getProperty(String name)
      Returns the raw string property for the given key, or null if not found.
    • mapProperty

      public static <T> T mapProperty(String name, Function<String,T> mapper)
      Maps a property value identified by its name to a desired type using the provided mapping function. If the property is not available, the method returns null.
    • mapProperty

      public static <T> T mapProperty(String name, Function<String,T> mapper, Supplier<T> defaultValueSupplier)
      Maps a property value identified by its name to a desired type using the provided mapping function. If the property is not found, the method returns a default value supplied by the given supplier.
    • getFirstAvailableProperty

      public static String getFirstAvailableProperty(String... propertyNames)
      Returns an Optional containing the first non-null property value among the provided property names, if any exist. If no properties are resolved, returns an empty Optional.
    • getBooleanProperty

      public static boolean getBooleanProperty(String name)
      Resolves a boolean property by key, returning false if not present.

      Accepts case-insensitive "true" as true, otherwise returns false.

    • getBooleanProperty

      public static boolean getBooleanProperty(String name, boolean defaultValue)
      Resolves a boolean property by key, returning a default if the property is not present.
    • getIntegerProperty

      public static Integer getIntegerProperty(String name)
      Resolves an integer property by key, or null if not found.
      Throws:
      NumberFormatException - if the property value is not a valid integer
    • getIntegerProperty

      public static Integer getIntegerProperty(String name, Integer defaultValue)
      Resolves an integer property by key, or returns the given default value if not found.
      Throws:
      NumberFormatException - if the property value is not a valid integer
    • getProperty

      public static String getProperty(String name, String defaultValue)
      Returns the string property value for the given key, or the specified default if not found.
    • requireProperty

      public static String requireProperty(String name)
      Returns the string property for the given key, throwing an IllegalStateException if not found.
    • containsProperty

      public static boolean containsProperty(String name)
      Returns true if a property with the given name exists.
    • substituteProperties

      public static String substituteProperties(String template)
      Substitutes placeholders in the given template using current property values.

      Placeholders use the syntax ${propertyName}.

    • substituteProperties

      public static Properties substituteProperties(Properties properties)
      Substitutes placeholders in the properties using current property values.

      Placeholders use the syntax ${propertyName}.

    • getEncryption

      public static Encryption getEncryption()
      Returns the currently active Encryption instance.

      By default, wraps the encryption from the current PropertySource.

    • encryptValue

      public static String encryptValue(String value)
      Encrypts the given value using the configured Encryption strategy.
    • decryptValue

      public static String decryptValue(String encryptedValue)
      Decrypts the given encrypted value using the configured Encryption strategy.

      Returns the original value if decryption is not applicable.