aboutsummaryrefslogtreecommitdiff
path: root/juick-server-jdbc/src/main/java/com/juick/configuration/SearchConfiguration.java
diff options
context:
space:
mode:
Diffstat (limited to 'juick-server-jdbc/src/main/java/com/juick/configuration/SearchConfiguration.java')
-rw-r--r--juick-server-jdbc/src/main/java/com/juick/configuration/SearchConfiguration.java43
1 files changed, 43 insertions, 0 deletions
diff --git a/juick-server-jdbc/src/main/java/com/juick/configuration/SearchConfiguration.java b/juick-server-jdbc/src/main/java/com/juick/configuration/SearchConfiguration.java
new file mode 100644
index 00000000..e6b446b6
--- /dev/null
+++ b/juick-server-jdbc/src/main/java/com/juick/configuration/SearchConfiguration.java
@@ -0,0 +1,43 @@
+package com.juick.configuration;
+
+import com.juick.service.search.SearchService;
+import com.juick.service.search.SphinxSearchServiceImpl;
+import org.apache.commons.dbcp2.BasicDataSource;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.DependsOn;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.core.env.Environment;
+
+import javax.annotation.Resource;
+
+/**
+ * Created by aalexeev on 11/18/16.
+ */
+@Configuration
+@PropertySource(value = {"classpath:juick.conf"})
+public class SearchConfiguration {
+ @Resource
+ private Environment env;
+
+ // NOTE: The close() method will be called automatically with default @Bean settings
+ // But Datasource interface has no close() method
+ @Bean
+ public BasicDataSource searchDataSource() {
+ BasicDataSource dataSource = new BasicDataSource();
+
+ dataSource.setDriverClassName(env.getProperty("sphinx_driver", "com.mysql.jdbc.Driver"));
+ dataSource.setUrl(env.getProperty("sphinx_url"));
+ dataSource.setUsername(env.getProperty("sphinx_user", StringUtils.EMPTY));
+ dataSource.setPassword(env.getProperty("sphinx_password", StringUtils.EMPTY));
+
+ return dataSource;
+ }
+
+ @Bean
+ @DependsOn("searchDataSource")
+ public SearchService searchService() {
+ return new SphinxSearchServiceImpl(searchDataSource());
+ }
+}