package com.juick.configuration; import com.juick.service.search.SearchService; import com.juick.service.search.SphinxSearchServiceImpl; 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 javax.annotation.Resource; import java.util.Collections; import java.util.List; /** * Created by aalexeev on 11/18/16. */ @Configuration @PropertySource(value = {"classpath:juick.conf"}) public class SearchConfiguration { @Resource private Environment env; @Bean public SearchService searchService() { BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName(env.getProperty("sphinx_driver", "com.mysql.jdbc.Driver")); dataSource.setUrl(env.getProperty("sphinx_url", "jdbc:mysql://127.0.0.1:9306?autoReconnect=true&useUnicode=yes&characterEncoding=utf8&maxAllowedPacket=512000")); dataSource.setUsername(env.getProperty("sphinx_user", "")); dataSource.setPassword(env.getProperty("sphinx_password", "")); return new SphinxSearchServiceImpl(dataSource); } @Bean public SearchService emptySearchService() { return new SearchService() { @Override public void setMaxResult(int maxResult) { } @Override public List searchInAllMessages(String searchString, int messageIdBefore) { return Collections.emptyList(); } @Override public List searchByStringAndUser(String searchString, int userId, int messageIdBefore) { return Collections.emptyList(); } }; } }