Migrate code to Java 17 style.

Use var instead of explicit local types where applicable. Use pattern variable instead instanceof and cast. Prefer loops and nullable types over Stream and Optional. Convert classes to records where applicable.

See #2465
This commit is contained in:
Mark Paluch
2021-10-05 15:21:12 +02:00
committed by Jens Schauder
parent d4036ec0a9
commit c735b58607
463 changed files with 3670 additions and 4014 deletions

View File

@@ -101,7 +101,7 @@ final class AnnotationAuditingMetadata {
return;
}
Class<?> type = it.getType();
var type = it.getType();
if (Jsr310Converters.supports(type)) {
return;

View File

@@ -107,7 +107,7 @@ public abstract class AuditingHandlerSupport {
* @param auditor can be {@literal null}.
* @param source must not be {@literal null}.
*/
<T> T markCreated(Auditor auditor, T source) {
<T> T markCreated(Auditor<?> auditor, T source) {
Assert.notNull(source, "Source entity must not be null!");
@@ -120,16 +120,16 @@ public abstract class AuditingHandlerSupport {
* @param auditor
* @param source
*/
<T> T markModified(Auditor auditor, T source) {
<T> T markModified(Auditor<?> auditor, T source) {
Assert.notNull(source, "Source entity must not be null!");
return touch(auditor, source, false);
}
private <T> T touch(Auditor auditor, T target, boolean isNew) {
private <T> T touch(Auditor<?> auditor, T target, boolean isNew) {
Optional<AuditableBeanWrapper<T>> wrapper = factory.getBeanWrapperFor(target);
var wrapper = factory.getBeanWrapperFor(target);
return wrapper.map(it -> {
@@ -157,7 +157,7 @@ public abstract class AuditingHandlerSupport {
* @param isNew
* @return
*/
private void touchAuditor(Auditor auditor, AuditableBeanWrapper<?> wrapper, boolean isNew) {
private void touchAuditor(Auditor<?> auditor, AuditableBeanWrapper<?> wrapper, boolean isNew) {
if(!auditor.isPresent()) {
return;
@@ -185,7 +185,7 @@ public abstract class AuditingHandlerSupport {
Assert.notNull(wrapper, "AuditableBeanWrapper must not be null!");
Optional<TemporalAccessor> now = dateTimeProvider.getNow();
var now = dateTimeProvider.getNow();
Assert.notNull(now, () -> String.format("Now must not be null! Returned by: %s!", dateTimeProvider.getClass()));

View File

@@ -110,7 +110,7 @@ class Auditor<T> {
if (o == null || getClass() != o.getClass())
return false;
Auditor<?> auditor = (Auditor<?>) o;
var auditor = (Auditor<?>) o;
return ObjectUtils.nullSafeEquals(value, auditor.value);
}

View File

@@ -46,7 +46,7 @@ class DefaultAuditableBeanWrapperFactory implements AuditableBeanWrapperFactory
public DefaultAuditableBeanWrapperFactory() {
DefaultFormattingConversionService conversionService = new DefaultFormattingConversionService();
var conversionService = new DefaultFormattingConversionService();
Jsr310Converters.getConvertersToRegister().forEach(conversionService::addConverter);
@@ -75,7 +75,7 @@ class DefaultAuditableBeanWrapperFactory implements AuditableBeanWrapperFactory
return (AuditableBeanWrapper<T>) new AuditableInterfaceBeanWrapper(conversionService, (Auditable<Object, ?, TemporalAccessor>) it);
}
AnnotationAuditingMetadata metadata = AnnotationAuditingMetadata.getMetadata(it.getClass());
var metadata = AnnotationAuditingMetadata.getMetadata(it.getClass());
if (metadata.isAuditable()) {
return new ReflectionAuditingBeanWrapper<T>(conversionService, it);
@@ -215,7 +215,7 @@ class DefaultAuditableBeanWrapperFactory implements AuditableBeanWrapperFactory
value.getClass(), targetType));
}
Date date = conversionService.convert(value, Date.class);
var date = conversionService.convert(value, Date.class);
return conversionService.convert(date, targetType);
}
@@ -317,7 +317,7 @@ class DefaultAuditableBeanWrapperFactory implements AuditableBeanWrapperFactory
return getAsTemporalAccessor(metadata.getLastModifiedDateField().map(field -> {
Object value = org.springframework.util.ReflectionUtils.getField(field, target);
var value = org.springframework.util.ReflectionUtils.getField(field, target);
return value instanceof Optional ? ((Optional<?>) value).orElse(null) : value;
}), TemporalAccessor.class);

View File

@@ -16,7 +16,6 @@
package org.springframework.data.auditing;
import org.springframework.data.mapping.PersistentEntity;
import org.springframework.data.mapping.PersistentProperty;
import org.springframework.data.mapping.context.MappingContext;
import org.springframework.data.mapping.context.PersistentEntities;
import org.springframework.data.support.IsNewStrategy;
@@ -62,7 +61,7 @@ public class IsNewAwareAuditingHandler extends AuditingHandler {
return object;
}
PersistentEntity<?, ? extends PersistentProperty<?>> entity = entities
var entity = entities
.getRequiredPersistentEntity(object.getClass());
return entity.isNew(object) ? markCreated(object) : markModified(object);

View File

@@ -85,7 +85,7 @@ public class MappingAuditableBeanWrapperFactory extends DefaultAuditableBeanWrap
return entities.mapOnContext(it.getClass(), (context, entity) -> {
MappingAuditingMetadata metadata = metadataCache.computeIfAbsent(it.getClass(),
var metadata = metadataCache.computeIfAbsent(it.getClass(),
key -> new MappingAuditingMetadata(context, it.getClass()));
return Optional.<AuditableBeanWrapper<T>> ofNullable(metadata.isAuditable() //
@@ -229,7 +229,7 @@ public class MappingAuditableBeanWrapperFactory extends DefaultAuditableBeanWrap
@Override
public Optional<TemporalAccessor> getLastModifiedDate() {
Optional<Object> firstValue = metadata.lastModifiedDatePaths.getFirst() //
var firstValue = metadata.lastModifiedDatePaths.getFirst() //
.map(accessor::getProperty);
return getAsTemporalAccessor(firstValue, TemporalAccessor.class);
@@ -266,7 +266,7 @@ public class MappingAuditableBeanWrapperFactory extends DefaultAuditableBeanWrap
property.forEach(it -> {
Class<?> type = it.getRequiredLeafProperty().getType();
var type = it.getRequiredLeafProperty().getType();
this.accessor.setProperty(it, getDateValueToSet(value, type, accessor.getBean()), OPTIONS);
});

View File

@@ -18,7 +18,6 @@ package org.springframework.data.auditing;
import reactor.core.publisher.Mono;
import org.springframework.data.mapping.PersistentEntity;
import org.springframework.data.mapping.PersistentProperty;
import org.springframework.data.mapping.context.MappingContext;
import org.springframework.data.mapping.context.PersistentEntities;
import org.springframework.data.support.IsNewStrategy;
@@ -62,7 +61,7 @@ public class ReactiveIsNewAwareAuditingHandler extends ReactiveAuditingHandler {
return Mono.just(object);
}
PersistentEntity<?, ? extends PersistentProperty<?>> entity = entities
var entity = entities
.getRequiredPersistentEntity(object.getClass());
return entity.isNew(object) ? markCreated(object) : markModified(object);

View File

@@ -16,7 +16,6 @@
package org.springframework.data.auditing.config;
import java.lang.annotation.Annotation;
import java.util.Map;
import org.springframework.core.annotation.AnnotationAttributes;
import org.springframework.core.type.AnnotationMetadata;
@@ -47,7 +46,7 @@ public class AnnotationAuditingConfiguration implements AuditingConfiguration {
Assert.notNull(metadata, "AnnotationMetadata must not be null!");
Assert.notNull(annotation, "Annotation must not be null!");
Map<String, Object> attributesSource = metadata.getAnnotationAttributes(annotation.getName());
var attributesSource = metadata.getAnnotationAttributes(annotation.getName());
if (attributesSource == null) {
throw new IllegalArgumentException(String.format(MISSING_ANNOTATION_ATTRIBUTES, annotation, metadata));

View File

@@ -60,7 +60,7 @@ public abstract class AuditingBeanDefinitionRegistrarSupport implements ImportBe
Assert.notNull(annotationMetadata, "AnnotationMetadata must not be null!");
Assert.notNull(registry, "BeanDefinitionRegistry must not be null!");
AbstractBeanDefinition ahbd = registerAuditHandlerBeanDefinition(registry, getConfiguration(annotationMetadata));
var ahbd = registerAuditHandlerBeanDefinition(registry, getConfiguration(annotationMetadata));
registerAuditListenerBeanDefinition(ahbd, registry);
}
@@ -77,7 +77,7 @@ public abstract class AuditingBeanDefinitionRegistrarSupport implements ImportBe
Assert.notNull(registry, "BeanDefinitionRegistry must not be null!");
Assert.notNull(configuration, "AuditingConfiguration must not be null!");
AbstractBeanDefinition ahbd = getAuditHandlerBeanDefinitionBuilder(configuration).getBeanDefinition();
var ahbd = getAuditHandlerBeanDefinitionBuilder(configuration).getBeanDefinition();
registry.registerBeanDefinition(getAuditingHandlerBeanName(), ahbd);
return ahbd;
}
@@ -178,10 +178,10 @@ public abstract class AuditingBeanDefinitionRegistrarSupport implements ImportBe
private BeanDefinition createLazyInitTargetSourceBeanDefinition(String auditorAwareRef) {
BeanDefinitionBuilder targetSourceBuilder = rootBeanDefinition(LazyInitTargetSource.class);
var targetSourceBuilder = rootBeanDefinition(LazyInitTargetSource.class);
targetSourceBuilder.addPropertyValue("targetBeanName", auditorAwareRef);
BeanDefinitionBuilder builder = rootBeanDefinition(ProxyFactoryBean.class);
var builder = rootBeanDefinition(ProxyFactoryBean.class);
builder.addPropertyValue("targetSource", targetSourceBuilder.getBeanDefinition());
return builder.getBeanDefinition();

View File

@@ -95,11 +95,11 @@ public class AuditingHandlerBeanDefinitionParser extends AbstractSingleBeanDefin
@Override
protected void doParse(Element element, BeanDefinitionBuilder builder) {
final BeanDefinitionBuilder persistentEntities = rootBeanDefinition(PersistentEntitiesFactoryBean.class);
final var persistentEntities = rootBeanDefinition(PersistentEntitiesFactoryBean.class);
persistentEntities.addConstructorArgReference(mappingContextBeanName);
builder.addConstructorArgValue(persistentEntities.getBeanDefinition());
String auditorAwareRef = element.getAttribute(AUDITOR_AWARE_REF);
var auditorAwareRef = element.getAttribute(AUDITOR_AWARE_REF);
if (StringUtils.hasText(auditorAwareRef)) {
builder.addPropertyValue("auditorAware", createLazyInitTargetSourceBeanDefinition(auditorAwareRef));
@@ -123,10 +123,10 @@ public class AuditingHandlerBeanDefinitionParser extends AbstractSingleBeanDefin
private BeanDefinition createLazyInitTargetSourceBeanDefinition(String auditorAwareRef) {
BeanDefinitionBuilder targetSourceBuilder = rootBeanDefinition(LazyInitTargetSource.class);
var targetSourceBuilder = rootBeanDefinition(LazyInitTargetSource.class);
targetSourceBuilder.addPropertyValue("targetBeanName", auditorAwareRef);
BeanDefinitionBuilder builder = rootBeanDefinition(ProxyFactoryBean.class);
var builder = rootBeanDefinition(ProxyFactoryBean.class);
builder.addPropertyValue("targetSource", targetSourceBuilder.getBeanDefinition());
return builder.getBeanDefinition();