Autowire with 'id' not <qualifier>: @Named doesn't find qualifiers. #7986

This commit is contained in:
Mark H. Wood
2021-12-10 14:36:22 -05:00
parent e27a109789
commit 171245a144
7 changed files with 18 additions and 10 deletions

View File

@@ -38,7 +38,7 @@ public class AuthoritySolrServiceImpl implements AuthorityIndexingService, Autho
private static final Logger log = LogManager.getLogger(AuthoritySolrServiceImpl.class); private static final Logger log = LogManager.getLogger(AuthoritySolrServiceImpl.class);
@Inject @Named("solr") @Inject @Named("solrHttpConnectionPoolService")
private HttpConnectionPoolService httpConnectionPoolService; private HttpConnectionPoolService httpConnectionPoolService;
protected AuthoritySolrServiceImpl() { protected AuthoritySolrServiceImpl() {

View File

@@ -36,7 +36,7 @@ public class SolrSearchCore {
protected IndexingService indexingService; protected IndexingService indexingService;
@Autowired @Autowired
protected ConfigurationService configurationService; protected ConfigurationService configurationService;
@Autowired @Named("solr") @Autowired @Named("solrHttpConnectionPoolService")
protected HttpConnectionPoolService httpConnectionPoolService; protected HttpConnectionPoolService httpConnectionPoolService;
/** /**

View File

@@ -38,8 +38,7 @@ public class HttpConnectionPoolService {
ConfigurationService configurationService; ConfigurationService configurationService;
/** Configuration properties will begin with this string. */ /** Configuration properties will begin with this string. */
@Inject private final String configPrefix;
String configPrefix;
/** Maximum number of concurrent pooled connections. */ /** Maximum number of concurrent pooled connections. */
private static final int DEFAULT_MAX_TOTAL_CONNECTIONS = 20; private static final int DEFAULT_MAX_TOTAL_CONNECTIONS = 20;
@@ -66,6 +65,15 @@ public class HttpConnectionPoolService {
private final ConnectionKeepAliveStrategy keepAliveStrategy private final ConnectionKeepAliveStrategy keepAliveStrategy
= new KeepAliveStrategy(); = new KeepAliveStrategy();
/**
* Construct a pool for a given set of configuration properties.
*
* @param configPrefix Configuration property names will begin with this.
*/
public HttpConnectionPoolService(String configPrefix) {
this.configPrefix = configPrefix;
}
@PostConstruct @PostConstruct
protected void init() { protected void init() {
connManager = new PoolingHttpClientConnectionManager( connManager = new PoolingHttpClientConnectionManager(

View File

@@ -30,7 +30,7 @@ public class SolrStatisticsCore {
@Autowired @Autowired
private ConfigurationService configurationService; private ConfigurationService configurationService;
@Autowired @Named("solr") @Autowired @Named("solrHttpConnectionPoolService")
private HttpConnectionPoolService httpConnectionPoolService; private HttpConnectionPoolService httpConnectionPoolService;
/** /**

View File

@@ -62,7 +62,7 @@ public class HttpConnectionPoolServiceTest
configurationService.setProperty("solrClient.maxTotalConnections", 2); configurationService.setProperty("solrClient.maxTotalConnections", 2);
configurationService.setProperty("solrClient.maxPerRoute", 2); configurationService.setProperty("solrClient.maxPerRoute", 2);
HttpConnectionPoolService instance = new HttpConnectionPoolService(); HttpConnectionPoolService instance = new HttpConnectionPoolService("solr");
instance.configurationService = configurationService; instance.configurationService = configurationService;
instance.init(); instance.init();

View File

@@ -26,7 +26,7 @@ public class DSpaceSolrServerResolver implements SolrServerResolver {
@Autowired @Autowired
private ConfigurationService configurationService; private ConfigurationService configurationService;
@Autowired @Named("solr") @Autowired @Named("solrHttpConnectionPoolService")
private HttpConnectionPoolService httpConnectionPoolService; private HttpConnectionPoolService httpConnectionPoolService;
@Override @Override

View File

@@ -65,9 +65,9 @@
<bean class='org.dspace.service.impl.HttpConnectionPoolService' <bean class='org.dspace.service.impl.HttpConnectionPoolService'
id='solrHttpConnectionPoolService' id='solrHttpConnectionPoolService'
scope='singleton'> scope='singleton'
<qualifier value='solr'/> autowire-candidate='true'>
<property name='configPrefix' value='solr'/> <constructor-arg name='configPrefix' value='solr'/>
</bean> </bean>
<!-- Ensure PluginService is initialized properly via init() method --> <!-- Ensure PluginService is initialized properly via init() method -->