Class A2aServerConfiguration

java.lang.Object
com.xebialabs.xlrelease.a2a.config.A2aServerConfiguration

@Configuration(proxyBeanMethods=false) public class A2aServerConfiguration extends Object
Stands up Release's A2A server surface, mirroring McpServerConfiguration's structure: the JSON-RPC endpoint servlet at <servlet-path>/a2a behind the feature-toggle filter, and the Agent Card at the spec's well-known path /.well-known/agent-card.json (which checks the toggle itself, as the well-known path sits outside the servlet base path).

Skills are explicit beans here in Phase 0; the plugin-contributed skill bridge (the McpToolsetBridge pattern) replaces this list in a later phase.

  • Constructor Details

    • A2aServerConfiguration

      public A2aServerConfiguration()
  • Method Details

    • a2aCallbacks

      @Bean public A2aCallbacks a2aCallbacks(com.xebialabs.deployit.ServerConfiguration serverConfiguration, org.springframework.beans.factory.ObjectProvider<org.springframework.boot.webmvc.autoconfigure.WebMvcProperties> webMvcProperties)
    • a2aPushNotificationRegistry

      @Bean public A2aPushNotificationRegistry a2aPushNotificationRegistry()
    • a2aPushNotificationSender

      @Bean public A2aPushNotificationSender a2aPushNotificationSender(A2aPushNotificationRegistry registry, A2aReleaseTaskMapper mapper, com.xebialabs.xlrelease.events.XLReleaseEventBus eventBus, @Qualifier("auxiliary") ExecutorService auxiliaryExecutor)
    • a2aCallbackServlet

      @Bean public org.springframework.boot.web.servlet.ServletRegistrationBean<A2aCallbackServlet> a2aCallbackServlet(A2aCallbacks callbacks, com.xebialabs.xlrelease.service.ExecutionService executionService, org.springframework.beans.factory.ObjectProvider<org.springframework.boot.webmvc.autoconfigure.WebMvcProperties> webMvcProperties)
    • a2aReleaseTaskMapper

      @Bean public A2aReleaseTaskMapper a2aReleaseTaskMapper(com.xebialabs.xlrelease.api.v1.ReleaseApi releaseApi)
    • getReleaseStatusSkill

      @Bean public GetReleaseStatusSkill getReleaseStatusSkill(com.xebialabs.xlrelease.api.v1.ReleaseApi releaseApi, A2aReleaseTaskMapper mapper)
    • requestDeploymentApprovalSkill

      @Bean public RequestDeploymentApprovalSkill requestDeploymentApprovalSkill(com.xebialabs.xlrelease.api.v1.TemplateApi templateApi)
    • orchestrateReleaseSkill

      @Bean public OrchestrateReleaseSkill orchestrateReleaseSkill(com.xebialabs.xlrelease.api.v1.TemplateApi templateApi)
    • a2aTaskStore

      @Bean public A2aTaskStore a2aTaskStore()
    • a2aSkillRegistry

      @Bean public A2aSkillRegistry a2aSkillRegistry(List<A2aServerSkill> builtInSkills)
      Seeded with the built-in skill beans; A2aSkillsetBridge adds and removes plugin-contributed skills at runtime. The servlets read it per request, so the Agent Card follows the live set.
    • a2aJsonRpcServlet

      @Bean public org.springframework.boot.web.servlet.ServletRegistrationBean<A2aJsonRpcServlet> a2aJsonRpcServlet(A2aSkillRegistry skills, A2aTaskStore taskStore, A2aReleaseTaskMapper releaseTaskMapper, A2aPushNotificationRegistry pushRegistry, org.springframework.beans.factory.ObjectProvider<org.springframework.boot.webmvc.autoconfigure.WebMvcProperties> webMvcProperties)
    • a2aAgentCardServlet

      @Bean public org.springframework.boot.web.servlet.ServletRegistrationBean<A2aAgentCardServlet> a2aAgentCardServlet(A2aSkillRegistry skills, com.xebialabs.deployit.ServerConfiguration serverConfiguration, org.springframework.beans.factory.ObjectProvider<org.springframework.boot.webmvc.autoconfigure.WebMvcProperties> webMvcProperties)
    • a2aServerEnabledFilter

      @Bean public org.springframework.boot.web.servlet.FilterRegistrationBean<A2aServerEnabledFilter> a2aServerEnabledFilter(org.springframework.beans.factory.ObjectProvider<org.springframework.boot.webmvc.autoconfigure.WebMvcProperties> webMvcProperties)