Class AgentRulesConfiguration

java.lang.Object
com.xebialabs.xlrelease.agentrules.config.AgentRulesConfiguration

@Configuration(proxyBeanMethods=false) public class AgentRulesConfiguration extends Object
Stands up the agentic-triggers surface: the event-bus dispatcher that matches domain events against agentic.Rule configurations and dispatches agents.

The dispatcher gets its own small executor rather than the shared auxiliary pool: an agent run holds a thread for a whole LLM turn (minutes), and parking those on the 8-thread auxiliary pool would starve notifications, A2A push callbacks and plugin abort delivery during a failure wave. Four threads is deliberate: combined with the per-release run budget it is the hard concurrency ceiling on LLM spend.

The A2aAgentGateway is resolved lazily through an ObjectProvider: the gateway bean lives in the A2A server module, and this module must degrade to a visible failure — not break the context — if that module is ever absent from a distribution.

  • Constructor Details

    • AgentRulesConfiguration

      public AgentRulesConfiguration()
  • Method Details

    • agentRulesExecutor

      @Bean(name="agentRulesExecutor", destroyMethod="shutdownNow") public ExecutorService agentRulesExecutor()
    • agentRuleRunStore

      @Bean public AgentRuleRunStore agentRuleRunStore()
    • agentRuleProposalStore

      @Bean public AgentRuleProposalStore agentRuleProposalStore()
    • agentRuleTokenService

      @Bean public AgentRuleTokenService agentRuleTokenService(com.xebialabs.xlrelease.config.XlrConfig xlrConfig, org.springframework.beans.factory.ObjectProvider<org.springframework.security.oauth2.client.OAuth2AuthorizedClientManager> hostManager)
    • agentRuleDispatcher

      @Bean public AgentRuleDispatcher agentRuleDispatcher(com.xebialabs.xlrelease.events.XLReleaseEventBus eventBus, org.springframework.beans.factory.ObjectProvider<com.xebialabs.xlrelease.a2a.api.A2aAgentGateway> gateway, com.xebialabs.xlrelease.service.CommentService commentService, com.xebialabs.xlrelease.repository.ConfigurationRepository configurationRepository, com.xebialabs.xlrelease.config.XlrConfig xlrConfig, AgentRuleRunStore runStore, AgentRuleProposalStore proposalStore, com.xebialabs.xlrelease.actors.ReleaseActorService releaseActorService, com.xebialabs.xlrelease.repository.ReleaseRepository releaseRepository, com.xebialabs.xlrelease.service.VariableService variableService, AgentRuleTokenService tokenService, @Qualifier("agentRulesExecutor") ExecutorService executor)