/* * Copyright (C) 2008-2017, Juick * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ package com.juick.components.configuration; /** * Created by aalexeev on 11/12/16. */ import com.juick.components.XMPPConnection; import com.juick.components.XMPPServer; import com.juick.components.s2s.CleaningUp; import com.juick.components.s2s.JuickBot; import com.juick.server.configuration.BaseWebConfiguration; import org.apache.commons.lang3.BooleanUtils; import org.springframework.context.annotation.*; import org.springframework.core.env.Environment; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; import javax.inject.Inject; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @Configuration @ComponentScan(basePackages = {"com.juick.components.controllers"}) @PropertySource("classpath:juick.conf") @Import(BaseWebConfiguration.class) @EnableScheduling public class XmppAppConfiguration extends WebMvcConfigurationSupport { @Inject private Environment env; @Bean public XMPPServer xmpp() { return new XMPPServer(env, service()); } @Bean public ExecutorService service() { return Executors.newCachedThreadPool(); } @Bean public CleaningUp cleaningUp() { return new CleaningUp(); } @Bean public JuickBot bot() { return new JuickBot(xmpp()); } @Bean public XMPPConnection router() { boolean disabled = BooleanUtils.toBoolean(env.getProperty("xmpp_disabled", "false")); return disabled ? null : new XMPPConnection(); } }