package in.clouthink.daas.sbb.support.webhook; import in.clouthink.daas.sbb.support.webhook.client.WebHookClient; import in.clouthink.daas.sbb.support.webhook.client.impl.WebHookClientBearyChatImpl; import in.clouthink.daas.sbb.support.webhook.notify.ShutdownNotification; import in.clouthink.daas.sbb.support.webhook.notify.StartupNotification; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.event.ApplicationFailedEvent; import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.boot.context.event.ApplicationStartedEvent; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.ApplicationListener; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration @EnableConfigurationProperties(WebHookSupportProperties.class) public class WebHookSupportConfiguration { @Bean @ConditionalOnMissingBean public WebHookClient webhookClient() { return new WebHookClientBearyChatImpl(); } @Bean public ApplicationListener<ApplicationReadyEvent> startupNotification() { return new StartupNotification(); } @Bean public ApplicationListener<ApplicationFailedEvent> shutdownNotificatioin() { return new ShutdownNotification(); } }