package com.integralblue.availability.config; import java.io.IOException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.integralblue.availability.properties.SlackProperties; import com.ullink.slack.simpleslackapi.SlackSession; import com.ullink.slack.simpleslackapi.impl.SlackSessionFactory; @Configuration public class SlackConfig { @Autowired private SlackProperties slackProperties; @ConditionalOnProperty(value = "slack.apiToken") @Bean(destroyMethod="disconnect") public SlackSession slackSession() throws IOException{ final SlackSession slackSession = SlackSessionFactory.createWebSocketSlackSession(slackProperties.getApiToken()); slackSession.connect(); return slackSession; } }