aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--juick-core/src/main/java/com/juick/configuration/DataConfiguration.java51
-rw-r--r--juick-crosspost/src/main/java/com/juick/components/configuration/CrosspostConfiguration.java30
-rw-r--r--juick-crosspost/src/main/java/com/juick/components/configuration/CrosspostInitializer.java14
-rw-r--r--juick-notifications/src/main/java/com/juick/components/configuration/NotificationsConfiguration.java13
-rw-r--r--juick-notifications/src/main/java/com/juick/components/configuration/NotificationsInitializer.java13
-rw-r--r--juick-ws/src/main/java/com/juick/ws/configuration/WebsocketConfiguration.java31
-rw-r--r--juick-ws/src/main/java/com/juick/ws/configuration/WebsocketInitializer.java13
-rw-r--r--juick-xmpp/src/main/java/com/juick/components/configuration/XMPPConfiguration.java20
-rw-r--r--juick-xmpp/src/main/java/com/juick/components/configuration/XMPPInitializer.java11
9 files changed, 119 insertions, 77 deletions
diff --git a/juick-core/src/main/java/com/juick/configuration/DataConfiguration.java b/juick-core/src/main/java/com/juick/configuration/DataConfiguration.java
new file mode 100644
index 00000000..b140b873
--- /dev/null
+++ b/juick-core/src/main/java/com/juick/configuration/DataConfiguration.java
@@ -0,0 +1,51 @@
+package com.juick.configuration;
+
+import org.apache.commons.dbcp2.BasicDataSource;
+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.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+import org.springframework.transaction.annotation.TransactionManagementConfigurer;
+
+import javax.annotation.Resource;
+import javax.sql.DataSource;
+
+/**
+ * Created by aalexeev on 11/11/16.
+ */
+@Configuration
+@EnableTransactionManagement
+@PropertySource(value = {"classpath:juick.conf", "file:${user.home}/juick.conf"})
+public class DataConfiguration implements TransactionManagementConfigurer {
+ @Resource
+ private Environment env;
+
+ @Bean
+ public DataSource dataSource() {
+ BasicDataSource dataSource = new BasicDataSource();
+
+ dataSource.setDriverClassName(env.getProperty("datasource_driver", "com.mysql.jdbc.Driver"));
+ dataSource.setUrl(env.getProperty("datasource_url"));
+
+ return dataSource;
+ }
+
+ @Bean
+ public PlatformTransactionManager transactionManager() {
+ return new DataSourceTransactionManager(dataSource());
+ }
+
+ @Override
+ public PlatformTransactionManager annotationDrivenTransactionManager() {
+ return transactionManager();
+ }
+
+ @Bean
+ public JdbcTemplate jdbc() {
+ return new JdbcTemplate(dataSource());
+ }
+}
diff --git a/juick-crosspost/src/main/java/com/juick/components/configuration/CrosspostConfiguration.java b/juick-crosspost/src/main/java/com/juick/components/configuration/CrosspostConfiguration.java
index 0b213cc9..069037ee 100644
--- a/juick-crosspost/src/main/java/com/juick/components/configuration/CrosspostConfiguration.java
+++ b/juick-crosspost/src/main/java/com/juick/components/configuration/CrosspostConfiguration.java
@@ -8,7 +8,6 @@ import com.mitchellbosecke.pebble.loader.Loader;
import com.mitchellbosecke.pebble.loader.ServletLoader;
import com.mitchellbosecke.pebble.spring4.PebbleViewResolver;
import com.mitchellbosecke.pebble.spring4.extension.SpringExtension;
-import org.apache.commons.dbcp2.BasicDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@@ -34,28 +33,17 @@ import java.util.concurrent.Executors;
*/
@Configuration
@ComponentScan(basePackages = {"com.juick"})
-@PropertySource(value = "classpath:juick.conf", ignoreResourceNotFound = true)
+@PropertySource(value = {"classpath:juick.conf", "file:${user.home}/juick.conf"})
public class CrosspostConfiguration extends WebMvcConfigurationSupport {
@Inject
- Environment env;
- @Inject
- ExecutorService service;
- @Inject
- JdbcTemplate jdbc;
-
- @Bean
- JdbcTemplate jdbc() {
- BasicDataSource dataSource = new BasicDataSource();
- dataSource.setDriverClassName(env.getProperty("datasource_driver", "com.mysql.jdbc.Driver"));
- dataSource.setUrl(env.getProperty("datasource_url"));
- return new JdbcTemplate(dataSource);
- }
-
+ private Environment env;
@Inject
private ServletContext servletContext;
+ @Inject
+ private JdbcTemplate jdbc;
@Bean
- public Loader templateLoader(){
+ public Loader templateLoader() {
return new ServletLoader(servletContext);
}
@@ -78,12 +66,15 @@ public class CrosspostConfiguration extends WebMvcConfigurationSupport {
viewResolver.setPrefix("/WEB-INF/templates/");
viewResolver.setSuffix(".html");
viewResolver.setPebbleEngine(pebbleEngine());
+
return viewResolver;
}
+
@Bean
public Crosspost crosspost() {
- return new Crosspost(env, service, jdbc);
+ return new Crosspost(env, service(), jdbc);
}
+
@Bean
public ExecutorService service() {
return Executors.newCachedThreadPool();
@@ -95,6 +86,7 @@ public class CrosspostConfiguration extends WebMvcConfigurationSupport {
mapping.setUseSuffixPatternMatch(false);
return mapping;
}
+
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.setOrder(0);
@@ -109,9 +101,11 @@ public class CrosspostConfiguration extends WebMvcConfigurationSupport {
.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);
}
}
diff --git a/juick-crosspost/src/main/java/com/juick/components/configuration/CrosspostInitializer.java b/juick-crosspost/src/main/java/com/juick/components/configuration/CrosspostInitializer.java
index e85d7a2a..0768f834 100644
--- a/juick-crosspost/src/main/java/com/juick/components/configuration/CrosspostInitializer.java
+++ b/juick-crosspost/src/main/java/com/juick/components/configuration/CrosspostInitializer.java
@@ -1,4 +1,6 @@
package com.juick.components.configuration;
+
+import com.juick.configuration.DataConfiguration;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
@@ -10,24 +12,24 @@ import javax.servlet.Filter;
public class CrosspostInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
- return new Class[] {CrosspostConfiguration.class};
+ return new Class<?>[]{DataConfiguration.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
- return null;
+ return new Class<?>[]{CrosspostConfiguration.class};
}
@Override
protected String[] getServletMappings() {
- return new String[] {
- "/"
- };
+ return new String[]{"/"};
}
+
@Override
protected Filter[] getServletFilters() {
CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setEncoding("UTF-8");
- return new Filter[] { characterEncodingFilter};
+
+ return new Filter[]{characterEncodingFilter};
}
}
diff --git a/juick-notifications/src/main/java/com/juick/components/configuration/NotificationsConfiguration.java b/juick-notifications/src/main/java/com/juick/components/configuration/NotificationsConfiguration.java
index 0c7a857c..d42549ef 100644
--- a/juick-notifications/src/main/java/com/juick/components/configuration/NotificationsConfiguration.java
+++ b/juick-notifications/src/main/java/com/juick/components/configuration/NotificationsConfiguration.java
@@ -33,22 +33,20 @@ import java.util.concurrent.Executors;
*/
@Configuration
@ComponentScan(basePackages = {"com.juick"})
-@PropertySource(value = "classpath:juick.conf", ignoreResourceNotFound = true)
+@PropertySource(value = {"classpath:juick.conf", "file:${user.home}/juick.conf"})
public class NotificationsConfiguration extends WebMvcConfigurationSupport {
@Inject
Environment env;
@Inject
- ExecutorService service;
+ private ServletContext servletContext;
@Bean
RestTemplate rest() {
return new RestTemplate();
}
- @Inject
- private ServletContext servletContext;
@Bean
- public Loader templateLoader(){
+ public Loader templateLoader() {
return new ServletLoader(servletContext);
}
@@ -73,10 +71,12 @@ public class NotificationsConfiguration extends WebMvcConfigurationSupport {
viewResolver.setPebbleEngine(pebbleEngine());
return viewResolver;
}
+
@Bean
public Notifications push() {
- return new Notifications(env, service);
+ return new Notifications(env, service());
}
+
@Bean
public ExecutorService service() {
return Executors.newCachedThreadPool();
@@ -88,6 +88,7 @@ public class NotificationsConfiguration extends WebMvcConfigurationSupport {
mapping.setUseSuffixPatternMatch(false);
return mapping;
}
+
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.setOrder(0);
diff --git a/juick-notifications/src/main/java/com/juick/components/configuration/NotificationsInitializer.java b/juick-notifications/src/main/java/com/juick/components/configuration/NotificationsInitializer.java
index 1449a4f8..417cc7fa 100644
--- a/juick-notifications/src/main/java/com/juick/components/configuration/NotificationsInitializer.java
+++ b/juick-notifications/src/main/java/com/juick/components/configuration/NotificationsInitializer.java
@@ -1,4 +1,6 @@
package com.juick.components.configuration;
+
+import com.juick.configuration.DataConfiguration;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
@@ -10,24 +12,23 @@ import javax.servlet.Filter;
public class NotificationsInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
- return new Class[] {NotificationsConfiguration.class};
+ return new Class[]{DataConfiguration.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
- return null;
+ return new Class[]{NotificationsConfiguration.class};
}
@Override
protected String[] getServletMappings() {
- return new String[] {
- "/"
- };
+ return new String[]{"/"};
}
+
@Override
protected Filter[] getServletFilters() {
CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setEncoding("UTF-8");
- return new Filter[] { characterEncodingFilter};
+ return new Filter[]{characterEncodingFilter};
}
}
diff --git a/juick-ws/src/main/java/com/juick/ws/configuration/WebsocketConfiguration.java b/juick-ws/src/main/java/com/juick/ws/configuration/WebsocketConfiguration.java
index 5e035dac..db37edc4 100644
--- a/juick-ws/src/main/java/com/juick/ws/configuration/WebsocketConfiguration.java
+++ b/juick-ws/src/main/java/com/juick/ws/configuration/WebsocketConfiguration.java
@@ -9,7 +9,6 @@ import com.mitchellbosecke.pebble.loader.Loader;
import com.mitchellbosecke.pebble.loader.ServletLoader;
import com.mitchellbosecke.pebble.spring4.PebbleViewResolver;
import com.mitchellbosecke.pebble.spring4.extension.SpringExtension;
-import org.apache.commons.dbcp2.BasicDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@@ -40,29 +39,22 @@ import java.util.concurrent.Executors;
@Configuration
@EnableWebSocket
@ComponentScan(basePackages = {"com.juick"})
-@PropertySource(value = "classpath:juick.conf", ignoreResourceNotFound = true)
+@PropertySource(value = {"classpath:juick.conf", "file:${user.home}/juick.conf"})
public class WebsocketConfiguration extends WebMvcConfigurationSupport implements WebSocketConfigurer {
@Inject
- Environment env;
+ private Environment env;
@Inject
- ExecutorService service;
+ private JdbcTemplate jdbc;
+ @Inject
+ private ServletContext servletContext;
+
@Bean
- WebsocketComponent wsHandler() {
+ public WebsocketComponent wsHandler() {
return new WebsocketComponent();
}
@Bean
- JdbcTemplate jdbc() {
- BasicDataSource dataSource = new BasicDataSource();
- dataSource.setDriverClassName(env.getProperty("datasource_driver", "com.mysql.jdbc.Driver"));
- dataSource.setUrl(env.getProperty("datasource_url"));
- return new JdbcTemplate(dataSource);
- }
- @Inject
- private ServletContext servletContext;
-
- @Bean
- public Loader templateLoader(){
+ public Loader templateLoader() {
return new ServletLoader(servletContext);
}
@@ -87,10 +79,12 @@ public class WebsocketConfiguration extends WebMvcConfigurationSupport implement
viewResolver.setPebbleEngine(pebbleEngine());
return viewResolver;
}
+
@Bean
public XMPPConnection ws() {
- return new XMPPConnection(env, service);
+ return new XMPPConnection(env, service());
}
+
@Bean
public ExecutorService service() {
return Executors.newCachedThreadPool();
@@ -102,9 +96,10 @@ public class WebsocketConfiguration extends WebMvcConfigurationSupport implement
mapping.setUseSuffixPatternMatch(false);
return mapping;
}
+
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
- ((ServletWebSocketHandlerRegistry)registry).setOrder(2);
+ ((ServletWebSocketHandlerRegistry) registry).setOrder(2);
registry.addHandler(wsHandler(), "/**").setAllowedOrigins("*");
}
diff --git a/juick-ws/src/main/java/com/juick/ws/configuration/WebsocketInitializer.java b/juick-ws/src/main/java/com/juick/ws/configuration/WebsocketInitializer.java
index 89017f8b..4829710f 100644
--- a/juick-ws/src/main/java/com/juick/ws/configuration/WebsocketInitializer.java
+++ b/juick-ws/src/main/java/com/juick/ws/configuration/WebsocketInitializer.java
@@ -1,4 +1,6 @@
package com.juick.ws.configuration;
+
+import com.juick.configuration.DataConfiguration;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
@@ -10,24 +12,23 @@ import javax.servlet.Filter;
public class WebsocketInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
- return new Class[] {WebsocketConfiguration.class};
+ return new Class[]{DataConfiguration.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
- return null;
+ return new Class[]{WebsocketConfiguration.class};
}
@Override
protected String[] getServletMappings() {
- return new String[] {
- "/"
- };
+ return new String[]{"/"};
}
+
@Override
protected Filter[] getServletFilters() {
CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setEncoding("UTF-8");
- return new Filter[] { characterEncodingFilter};
+ return new Filter[]{characterEncodingFilter};
}
}
diff --git a/juick-xmpp/src/main/java/com/juick/components/configuration/XMPPConfiguration.java b/juick-xmpp/src/main/java/com/juick/components/configuration/XMPPConfiguration.java
index 9e7e6cad..c4bdd117 100644
--- a/juick-xmpp/src/main/java/com/juick/components/configuration/XMPPConfiguration.java
+++ b/juick-xmpp/src/main/java/com/juick/components/configuration/XMPPConfiguration.java
@@ -8,7 +8,6 @@ import com.mitchellbosecke.pebble.loader.Loader;
import com.mitchellbosecke.pebble.loader.ServletLoader;
import com.mitchellbosecke.pebble.spring4.PebbleViewResolver;
import com.mitchellbosecke.pebble.spring4.extension.SpringExtension;
-import org.apache.commons.dbcp2.BasicDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@@ -33,25 +32,18 @@ import java.util.concurrent.Executors;
*/
@Configuration
@ComponentScan(basePackages = {"com.juick"})
-@PropertySource(value = "classpath:juick.conf", ignoreResourceNotFound = true)
+@PropertySource(value = {"classpath:juick.conf", "file:${user.home}/juick.conf"})
public class XMPPConfiguration extends WebMvcConfigurationSupport {
@Inject
- Environment env;
+ private Environment env;
@Inject
- ExecutorService service;
+ private JdbcTemplate jdbc;
- @Bean
- JdbcTemplate jdbc() {
- BasicDataSource dataSource = new BasicDataSource();
- dataSource.setDriverClassName(env.getProperty("datasource_driver", "com.mysql.jdbc.Driver"));
- dataSource.setUrl(env.getProperty("datasource_url"));
- return new JdbcTemplate(dataSource);
- }
@Inject
private ServletContext servletContext;
@Bean
- public Loader templateLoader(){
+ public Loader templateLoader() {
return new ServletLoader(servletContext);
}
@@ -76,10 +68,12 @@ public class XMPPConfiguration extends WebMvcConfigurationSupport {
viewResolver.setPebbleEngine(pebbleEngine());
return viewResolver;
}
+
@Bean
public XMPPServer xmpp() {
- return new XMPPServer(env, service, jdbc());
+ return new XMPPServer(env, service(), jdbc);
}
+
@Bean
public ExecutorService service() {
return Executors.newCachedThreadPool();
diff --git a/juick-xmpp/src/main/java/com/juick/components/configuration/XMPPInitializer.java b/juick-xmpp/src/main/java/com/juick/components/configuration/XMPPInitializer.java
index 604516c4..3942f889 100644
--- a/juick-xmpp/src/main/java/com/juick/components/configuration/XMPPInitializer.java
+++ b/juick-xmpp/src/main/java/com/juick/components/configuration/XMPPInitializer.java
@@ -1,4 +1,6 @@
package com.juick.components.configuration;
+
+import com.juick.configuration.DataConfiguration;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
@@ -10,24 +12,25 @@ import javax.servlet.Filter;
public class XMPPInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
- return new Class[] {XMPPConfiguration.class};
+ return new Class[]{DataConfiguration.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
- return null;
+ return new Class[]{XMPPConfiguration.class};
}
@Override
protected String[] getServletMappings() {
- return new String[] {
+ return new String[]{
"/"
};
}
+
@Override
protected Filter[] getServletFilters() {
CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setEncoding("UTF-8");
- return new Filter[] { characterEncodingFilter};
+ return new Filter[]{characterEncodingFilter};
}
}