mirror of
https://github.com/spring-projects/spring-data-elasticsearch.git
synced 2025-06-25 21:42:11 +00:00
parent
883741e9c1
commit
14ab00f5b8
@ -28,8 +28,8 @@ import org.springframework.data.auditing.config.IsNewAwareAuditingHandlerBeanDef
|
|||||||
import org.springframework.data.elasticsearch.core.event.AuditingEntityCallback;
|
import org.springframework.data.elasticsearch.core.event.AuditingEntityCallback;
|
||||||
import org.springframework.data.elasticsearch.core.event.ReactiveAuditingEntityCallback;
|
import org.springframework.data.elasticsearch.core.event.ReactiveAuditingEntityCallback;
|
||||||
import org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext;
|
import org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext;
|
||||||
import org.springframework.data.repository.util.ReactiveWrappers;
|
|
||||||
import org.springframework.lang.Nullable;
|
import org.springframework.lang.Nullable;
|
||||||
|
import org.springframework.util.ClassUtils;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
|
|
||||||
@ -41,7 +41,9 @@ import org.w3c.dom.Element;
|
|||||||
*/
|
*/
|
||||||
public class ElasticsearchAuditingBeanDefinitionParser extends AbstractSingleBeanDefinitionParser {
|
public class ElasticsearchAuditingBeanDefinitionParser extends AbstractSingleBeanDefinitionParser {
|
||||||
|
|
||||||
private static String MAPPING_CONTEXT_BEAN_NAME = "simpleElasticsearchMappingContext";
|
private static final String MAPPING_CONTEXT_BEAN_NAME = "simpleElasticsearchMappingContext";
|
||||||
|
private static final boolean PROJECT_REACTOR_AVAILABLE = ClassUtils.isPresent("reactor.core.publisher.Mono",
|
||||||
|
ElasticsearchAuditingRegistrar.class.getClassLoader());
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (non-Javadoc)
|
* (non-Javadoc)
|
||||||
@ -90,7 +92,7 @@ public class ElasticsearchAuditingBeanDefinitionParser extends AbstractSingleBea
|
|||||||
parserContext.extractSource(element));
|
parserContext.extractSource(element));
|
||||||
builder.addConstructorArgValue(isNewAwareAuditingHandler);
|
builder.addConstructorArgValue(isNewAwareAuditingHandler);
|
||||||
|
|
||||||
if (ReactiveWrappers.isAvailable(ReactiveWrappers.ReactiveLibrary.PROJECT_REACTOR)) {
|
if (PROJECT_REACTOR_AVAILABLE) {
|
||||||
registerReactiveAuditingEntityCallback(parserContext.getRegistry(), isNewAwareAuditingHandler,
|
registerReactiveAuditingEntityCallback(parserContext.getRegistry(), isNewAwareAuditingHandler,
|
||||||
parserContext.extractSource(element));
|
parserContext.extractSource(element));
|
||||||
}
|
}
|
||||||
|
@ -18,10 +18,10 @@ package org.springframework.data.elasticsearch.config;
|
|||||||
import java.lang.annotation.Annotation;
|
import java.lang.annotation.Annotation;
|
||||||
|
|
||||||
import org.springframework.beans.factory.config.BeanDefinition;
|
import org.springframework.beans.factory.config.BeanDefinition;
|
||||||
import org.springframework.beans.factory.support.AbstractBeanDefinition;
|
|
||||||
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
||||||
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
||||||
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
|
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
|
||||||
|
import org.springframework.core.Ordered;
|
||||||
import org.springframework.data.auditing.IsNewAwareAuditingHandler;
|
import org.springframework.data.auditing.IsNewAwareAuditingHandler;
|
||||||
import org.springframework.data.auditing.config.AuditingBeanDefinitionRegistrarSupport;
|
import org.springframework.data.auditing.config.AuditingBeanDefinitionRegistrarSupport;
|
||||||
import org.springframework.data.auditing.config.AuditingConfiguration;
|
import org.springframework.data.auditing.config.AuditingConfiguration;
|
||||||
@ -35,7 +35,8 @@ import org.springframework.util.Assert;
|
|||||||
* @author Peter-Josef Meisch
|
* @author Peter-Josef Meisch
|
||||||
* @since 4.0
|
* @since 4.0
|
||||||
*/
|
*/
|
||||||
class ElasticsearchAuditingRegistrar extends AuditingBeanDefinitionRegistrarSupport {
|
class ElasticsearchAuditingRegistrar extends AuditingBeanDefinitionRegistrarSupport implements Ordered
|
||||||
|
{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Class<? extends Annotation> getAnnotation() {
|
protected Class<? extends Annotation> getAnnotation() {
|
||||||
@ -47,18 +48,20 @@ class ElasticsearchAuditingRegistrar extends AuditingBeanDefinitionRegistrarSupp
|
|||||||
return "elasticsearchAuditingHandler";
|
return "elasticsearchAuditingHandler";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void postProcess(BeanDefinitionBuilder builder, AuditingConfiguration configuration,
|
||||||
|
BeanDefinitionRegistry registry) {
|
||||||
|
|
||||||
|
builder.setFactoryMethod("from").addConstructorArgReference("elasticsearchMappingContext");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected BeanDefinitionBuilder getAuditHandlerBeanDefinitionBuilder(AuditingConfiguration configuration) {
|
protected BeanDefinitionBuilder getAuditHandlerBeanDefinitionBuilder(AuditingConfiguration configuration) {
|
||||||
|
|
||||||
Assert.notNull(configuration, "AuditingConfiguration must not be null!");
|
Assert.notNull(configuration, "AuditingConfiguration must not be null!");
|
||||||
|
|
||||||
BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(IsNewAwareAuditingHandler.class);
|
return configureDefaultAuditHandlerAttributes(configuration,
|
||||||
|
BeanDefinitionBuilder.rootBeanDefinition(IsNewAwareAuditingHandler.class));
|
||||||
BeanDefinitionBuilder definition = BeanDefinitionBuilder.genericBeanDefinition(PersistentEntitiesFactoryBean.class);
|
|
||||||
definition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_CONSTRUCTOR);
|
|
||||||
|
|
||||||
builder.addConstructorArgValue(definition.getBeanDefinition());
|
|
||||||
return configureDefaultAuditHandlerAttributes(configuration, builder);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -73,4 +76,9 @@ class ElasticsearchAuditingRegistrar extends AuditingBeanDefinitionRegistrarSupp
|
|||||||
|
|
||||||
registerInfrastructureBeanWithId(builder.getBeanDefinition(), AuditingEntityCallback.class.getName(), registry);
|
registerInfrastructureBeanWithId(builder.getBeanDefinition(), AuditingEntityCallback.class.getName(), registry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getOrder() {
|
||||||
|
return Ordered.LOWEST_PRECEDENCE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,6 @@ package org.springframework.data.elasticsearch.config;
|
|||||||
import java.lang.annotation.Annotation;
|
import java.lang.annotation.Annotation;
|
||||||
|
|
||||||
import org.springframework.beans.factory.config.BeanDefinition;
|
import org.springframework.beans.factory.config.BeanDefinition;
|
||||||
import org.springframework.beans.factory.support.AbstractBeanDefinition;
|
|
||||||
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
||||||
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
||||||
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
|
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
|
||||||
@ -47,18 +46,19 @@ class ReactiveElasticsearchAuditingRegistrar extends AuditingBeanDefinitionRegis
|
|||||||
return "reactiveElasticsearchAuditingHandler";
|
return "reactiveElasticsearchAuditingHandler";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void postProcess(BeanDefinitionBuilder builder, AuditingConfiguration configuration,
|
||||||
|
BeanDefinitionRegistry registry) {
|
||||||
|
builder.setFactoryMethod("from").addConstructorArgReference("elasticsearchMappingContext");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected BeanDefinitionBuilder getAuditHandlerBeanDefinitionBuilder(AuditingConfiguration configuration) {
|
protected BeanDefinitionBuilder getAuditHandlerBeanDefinitionBuilder(AuditingConfiguration configuration) {
|
||||||
|
|
||||||
Assert.notNull(configuration, "AuditingConfiguration must not be null!");
|
Assert.notNull(configuration, "AuditingConfiguration must not be null!");
|
||||||
|
|
||||||
BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(ReactiveIsNewAwareAuditingHandler.class);
|
return configureDefaultAuditHandlerAttributes(configuration,
|
||||||
|
BeanDefinitionBuilder.rootBeanDefinition(ReactiveIsNewAwareAuditingHandler.class));
|
||||||
BeanDefinitionBuilder definition = BeanDefinitionBuilder.genericBeanDefinition(PersistentEntitiesFactoryBean.class);
|
|
||||||
definition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_CONSTRUCTOR);
|
|
||||||
|
|
||||||
builder.addConstructorArgValue(definition.getBeanDefinition());
|
|
||||||
return configureDefaultAuditHandlerAttributes(configuration, builder);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user