mirror of
https://github.com/spring-projects/spring-data-elasticsearch.git
synced 2025-06-27 14:22:30 +00:00
DATAES-93 Make fully ApplicationContextAware, allows bean resolvers.
This commit is contained in:
parent
a92af0e3e5
commit
873dcca561
@ -71,6 +71,9 @@ import org.elasticsearch.search.sort.SortBuilder;
|
|||||||
import org.elasticsearch.search.sort.SortOrder;
|
import org.elasticsearch.search.sort.SortOrder;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.BeansException;
|
||||||
|
import org.springframework.context.ApplicationContext;
|
||||||
|
import org.springframework.context.ApplicationContextAware;
|
||||||
import org.springframework.core.io.ClassPathResource;
|
import org.springframework.core.io.ClassPathResource;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Sort;
|
import org.springframework.data.domain.Sort;
|
||||||
@ -95,7 +98,7 @@ import org.springframework.util.Assert;
|
|||||||
* @author Artur Konczak
|
* @author Artur Konczak
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class ElasticsearchTemplate implements ElasticsearchOperations {
|
public class ElasticsearchTemplate implements ElasticsearchOperations, ApplicationContextAware {
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(ElasticsearchTemplate.class);
|
private static final Logger logger = LoggerFactory.getLogger(ElasticsearchTemplate.class);
|
||||||
private Client client;
|
private Client client;
|
||||||
@ -873,6 +876,13 @@ public class ElasticsearchTemplate implements ElasticsearchOperations {
|
|||||||
return ids;
|
return ids;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setApplicationContext(ApplicationContext context) throws BeansException {
|
||||||
|
if(elasticsearchConverter instanceof ApplicationContextAware){
|
||||||
|
((ApplicationContextAware)elasticsearchConverter).setApplicationContext(context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static String[] toArray(List<String> values) {
|
private static String[] toArray(List<String> values) {
|
||||||
String[] valuesAsArray = new String[values.size()];
|
String[] valuesAsArray = new String[values.size()];
|
||||||
return values.toArray(valuesAsArray);
|
return values.toArray(valuesAsArray);
|
||||||
|
@ -61,5 +61,8 @@ public class MappingElasticsearchConverter implements ElasticsearchConverter, Ap
|
|||||||
@Override
|
@Override
|
||||||
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
|
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
|
||||||
this.applicationContext = applicationContext;
|
this.applicationContext = applicationContext;
|
||||||
|
if(mappingContext instanceof ApplicationContextAware){
|
||||||
|
((ApplicationContextAware)mappingContext).setApplicationContext(applicationContext);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,9 @@ package org.springframework.data.elasticsearch.core.mapping;
|
|||||||
import java.beans.PropertyDescriptor;
|
import java.beans.PropertyDescriptor;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
|
||||||
|
import org.springframework.beans.BeansException;
|
||||||
|
import org.springframework.context.ApplicationContext;
|
||||||
|
import org.springframework.context.ApplicationContextAware;
|
||||||
import org.springframework.data.mapping.context.AbstractMappingContext;
|
import org.springframework.data.mapping.context.AbstractMappingContext;
|
||||||
import org.springframework.data.mapping.model.SimpleTypeHolder;
|
import org.springframework.data.mapping.model.SimpleTypeHolder;
|
||||||
import org.springframework.data.util.TypeInformation;
|
import org.springframework.data.util.TypeInformation;
|
||||||
@ -30,11 +33,19 @@ import org.springframework.data.util.TypeInformation;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public class SimpleElasticsearchMappingContext extends
|
public class SimpleElasticsearchMappingContext extends
|
||||||
AbstractMappingContext<SimpleElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> {
|
AbstractMappingContext<SimpleElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> implements ApplicationContextAware{
|
||||||
|
|
||||||
|
private ApplicationContext context;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected <T> SimpleElasticsearchPersistentEntity<?> createPersistentEntity(TypeInformation<T> typeInformation) {
|
protected <T> SimpleElasticsearchPersistentEntity<?> createPersistentEntity(TypeInformation<T> typeInformation) {
|
||||||
return new SimpleElasticsearchPersistentEntity<T>(typeInformation);
|
final SimpleElasticsearchPersistentEntity<T> persistentEntity =
|
||||||
|
new SimpleElasticsearchPersistentEntity<T>(typeInformation);
|
||||||
|
if(context != null)
|
||||||
|
{
|
||||||
|
persistentEntity.setApplicationContext(context);
|
||||||
|
}
|
||||||
|
return persistentEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -42,4 +53,9 @@ public class SimpleElasticsearchMappingContext extends
|
|||||||
SimpleElasticsearchPersistentEntity<?> owner, SimpleTypeHolder simpleTypeHolder) {
|
SimpleElasticsearchPersistentEntity<?> owner, SimpleTypeHolder simpleTypeHolder) {
|
||||||
return new SimpleElasticsearchPersistentProperty(field, descriptor, owner, simpleTypeHolder);
|
return new SimpleElasticsearchPersistentProperty(field, descriptor, owner, simpleTypeHolder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setApplicationContext(ApplicationContext context) throws BeansException {
|
||||||
|
this.context = context;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user