package com.juick.api.configuration; import com.juick.api.ApiServer; import com.juick.api.TGBot; import org.apache.commons.lang3.StringUtils; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.web.socket.client.WebSocketConnectionManager; import org.springframework.web.socket.client.standard.StandardWebSocketClient; import javax.inject.Inject; /** * Created by aalexeev on 11/12/16. */ @Configuration @EnableScheduling @PropertySource("classpath:juick.conf") public class ApiAppConfiguration { @Inject private Environment env; @Bean public ApiServer apiServer() { return new ApiServer(env); } @Bean public TGBot tgBot() { return new TGBot(env.getProperty("telegram_token", StringUtils.EMPTY)); } private static final String WS_URI = "wss://ws.juick.com/"; @Bean public WebSocketConnectionManager connectionManager() { WebSocketConnectionManager manager = new WebSocketConnectionManager(client(), tgBot(), WS_URI); manager.setAutoStartup(true); return manager; } @Bean public StandardWebSocketClient client() { return new StandardWebSocketClient(); } }