EnvironmentPostProcessor

Environment post-processor that activates Spring profiles and sets properties used to bootstrap framework components based on Embabel Agent annotations.

This processor runs very early in the Spring Boot startup sequence and examines the application's main class for agent-related annotations. It then activates corresponding Spring profiles to enable platform-specific configurations.

Processing Order:

  1. Logging Theme - From @EnableAgents(loggingTheme="...")

Profile Activation:

Profiles are activated through two mechanisms:

  • System property: spring.profiles.active - for compatibility
  • Environment API: environment.addActiveProfile() - for direct activation

Implementation Notes:

  • Runs with HIGHEST_PRECEDENCE to ensure early execution
  • Preserves existing profiles if already set
  • Handles multiple application sources (though typically there's only one)
  • Uses both annotation utils for proper meta-annotation support

Author

Embabel Team

Since

1.0

See also

org.springframework.boot.env.EnvironmentPostProcessor

Constructors

Link copied to clipboard
constructor()

Properties

Link copied to clipboard
val LOGGING_THEME_PROPERTY: String = "embabel.agent.logging.personality"

Functions

Link copied to clipboard
open fun getOrder(): Int
Returns the order of this post-processor.
Link copied to clipboard
open fun postProcessEnvironment(environment: ConfigurableEnvironment, application: SpringApplication)
Post-processes the environment to activate profiles based on agent annotations.