From 589901b03688e073eb85b5b51a58cec3c8d5d5e9 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Sun, 7 Aug 2016 23:46:00 +0300 Subject: juick-ws: do not use servlet api directly, refactor components as InitializingBean --- .../juick/ws/components/CrosspostComponent.java | 33 +++++++++++----------- 1 file changed, 16 insertions(+), 17 deletions(-) (limited to 'juick-ws/src/main/java/com/juick/ws/components/CrosspostComponent.java') diff --git a/juick-ws/src/main/java/com/juick/ws/components/CrosspostComponent.java b/juick-ws/src/main/java/com/juick/ws/components/CrosspostComponent.java index ec5716ee..1a6bd20e 100644 --- a/juick-ws/src/main/java/com/juick/ws/components/CrosspostComponent.java +++ b/juick-ws/src/main/java/com/juick/ws/components/CrosspostComponent.java @@ -25,32 +25,34 @@ import com.juick.xmpp.StreamComponent; import com.juick.xmpp.extensions.JuickMessage; import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang3.tuple.Pair; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.core.env.Environment; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.DriverManagerDataSource; +import org.springframework.stereotype.Component; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; +import javax.inject.Inject; import javax.net.ssl.HttpsURLConnection; -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; import java.io.*; import java.net.Socket; import java.net.URL; import java.net.URLEncoder; import java.security.Key; -import java.util.Properties; import java.util.UUID; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.logging.Level; -import java.util.logging.LogManager; import java.util.logging.Logger; /** * * @author Ugnich Anton */ -public class CrosspostComponent implements ServletContextListener, Stream.StreamListener, Message.MessageListener { +@Component +public class CrosspostComponent implements InitializingBean, DisposableBean, Stream.StreamListener, Message.MessageListener { private static Logger logger = Logger.getLogger(CrosspostComponent.class.getName()); @@ -63,23 +65,20 @@ public class CrosspostComponent implements ServletContextListener, Stream.Strea Stream xmpp; String twitter_consumer_key; String twitter_consumer_secret; + @Inject + Environment env; @Override - public void contextInitialized(final ServletContextEvent sce) { + public void afterPropertiesSet() throws Exception { logger.info("component initialized"); executorService = Executors.newSingleThreadExecutor(); - executorService.submit((Runnable) () -> { + executorService.submit(() -> { try { - Properties conf = new Properties(); - conf.load(sce.getServletContext().getResourceAsStream("/WEB-INF/juick.conf")); + twitter_consumer_key = env.getProperty("twitter_consumer_key", ""); + twitter_consumer_secret = env.getProperty("twitter_consumer_secret", ""); - LogManager.getLogManager().readConfiguration( - sce.getServletContext().getResourceAsStream("/WEB-INF/logging.properties")); - twitter_consumer_key = conf.getProperty("twitter_consumer_key", ""); - twitter_consumer_secret = conf.getProperty("twitter_consumer_secret", ""); - - setupSql(conf.getProperty("datasource_driver", "com.mysql.jdbc.Driver"), conf.getProperty("datasource_url", "")); - setupXmppComponent(conf.getProperty("xmpp_password", "")); + setupSql(env.getProperty("datasource_driver", "com.mysql.jdbc.Driver"), env.getProperty("datasource_url", "")); + setupXmppComponent(env.getProperty("xmpp_password", "")); } catch (Exception e) { logger.log(Level.SEVERE, e.getMessage(), e); } @@ -87,7 +86,7 @@ public class CrosspostComponent implements ServletContextListener, Stream.Strea } @Override - public void contextDestroyed(ServletContextEvent sce) { + public void destroy() { executorService.shutdown(); logger.info("component destroyed"); } -- cgit v1.2.3