aboutsummaryrefslogtreecommitdiff
path: root/juick-xmpp-bot/src/main/java/com/juick/components/configuration
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2016-11-12 21:39:19 +0300
committerGravatar Vitaly Takmazov2016-11-12 21:39:19 +0300
commitb75258ee5ed84510579050b5dba1edb904a09dfa (patch)
tree004bf34050ea281b88a4e7b6f55072959416a9c1 /juick-xmpp-bot/src/main/java/com/juick/components/configuration
parent2d9e3878f472743e326dcd82818f7adb94e6f769 (diff)
initial babbler-based xmpp bot
Diffstat (limited to 'juick-xmpp-bot/src/main/java/com/juick/components/configuration')
-rw-r--r--juick-xmpp-bot/src/main/java/com/juick/components/configuration/BotAppConfiguration.java38
-rw-r--r--juick-xmpp-bot/src/main/java/com/juick/components/configuration/BotInitializer.java40
-rw-r--r--juick-xmpp-bot/src/main/java/com/juick/components/configuration/BotMvcConfiguration.java33
3 files changed, 111 insertions, 0 deletions
diff --git a/juick-xmpp-bot/src/main/java/com/juick/components/configuration/BotAppConfiguration.java b/juick-xmpp-bot/src/main/java/com/juick/components/configuration/BotAppConfiguration.java
new file mode 100644
index 00000000..8eb45170
--- /dev/null
+++ b/juick-xmpp-bot/src/main/java/com/juick/components/configuration/BotAppConfiguration.java
@@ -0,0 +1,38 @@
+package com.juick.components.configuration;
+
+import com.juick.components.XMPPBot;
+import com.juick.configuration.DataConfiguration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.core.env.Environment;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+import javax.inject.Inject;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/**
+ * Created by aalexeev on 11/12/16.
+ */
+@Configuration
+@PropertySource("classpath:juick.conf")
+@Import(DataConfiguration.class)
+public class BotAppConfiguration {
+ @Inject
+ private Environment env;
+ @Inject
+ private JdbcTemplate jdbc;
+
+ @Bean
+ public XMPPBot xmpp() {
+ return new XMPPBot(env);
+ }
+
+ @Bean
+ public ExecutorService service() {
+ return Executors.newCachedThreadPool();
+ }
+
+}
diff --git a/juick-xmpp-bot/src/main/java/com/juick/components/configuration/BotInitializer.java b/juick-xmpp-bot/src/main/java/com/juick/components/configuration/BotInitializer.java
new file mode 100644
index 00000000..1b8dd249
--- /dev/null
+++ b/juick-xmpp-bot/src/main/java/com/juick/components/configuration/BotInitializer.java
@@ -0,0 +1,40 @@
+package com.juick.components.configuration;
+
+import com.juick.configuration.DataConfiguration;
+import org.springframework.web.filter.CharacterEncodingFilter;
+import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
+
+import javax.servlet.Filter;
+
+/**
+ * Created by vt on 09/02/16.
+ */
+public class BotInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
+
+ @Override
+ protected Class<?>[] getRootConfigClasses() {
+ return new Class<?>[]{BotAppConfiguration.class, DataConfiguration.class};
+ }
+
+ @Override
+ protected Class<?>[] getServletConfigClasses() {
+ return new Class<?>[]{BotMvcConfiguration.class};
+ }
+
+ @Override
+ protected String[] getServletMappings() {
+ return new String[]{"/"};
+ }
+
+ @Override
+ protected Filter[] getServletFilters() {
+ CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
+ characterEncodingFilter.setEncoding("UTF-8");
+ return new Filter[]{characterEncodingFilter};
+ }
+
+ @Override
+ protected String getServletName() {
+ return "Bot dispatcher servlet";
+ }
+}
diff --git a/juick-xmpp-bot/src/main/java/com/juick/components/configuration/BotMvcConfiguration.java b/juick-xmpp-bot/src/main/java/com/juick/components/configuration/BotMvcConfiguration.java
new file mode 100644
index 00000000..2c55c0ce
--- /dev/null
+++ b/juick-xmpp-bot/src/main/java/com/juick/components/configuration/BotMvcConfiguration.java
@@ -0,0 +1,33 @@
+package com.juick.components.configuration;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
+
+import java.util.List;
+
+/**
+ * Created by vitalyster on 28.06.2016.
+ */
+@Configuration
+@ComponentScan(basePackages = {"com.juick.components.controllers"})
+public class BotMvcConfiguration extends WebMvcConfigurationSupport {
+
+ @Override
+ protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
+ Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder()
+ .serializationInclusion(JsonInclude.Include.NON_DEFAULT)
+ .serializationInclusion(JsonInclude.Include.NON_NULL)
+ .serializationInclusion(JsonInclude.Include.NON_ABSENT)
+ .serializationInclusion(JsonInclude.Include.NON_EMPTY);
+ MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(builder.build());
+ converter.getObjectMapper().registerModule(new Jdk8Module());
+ converters.add(converter);
+ super.configureMessageConverters(converters);
+ }
+}