From 6937bb519b89f782bf74c60424c06f5caa460033 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Fri, 16 Sep 2022 11:11:06 +0200 Subject: [PATCH] Polishing. Move off more deprecated API. See #4164 Original pull request: #4165. --- .../core/convert/DocumentPointerFactory.java | 5 ++++- .../core/convert/MappingMongoConverter.java | 20 ++++++++++++++----- .../data/mongodb/core/geo/Sphere.java | 4 ++-- .../UnwrappedMongoPersistentEntity.java | 3 ++- .../gridfs/ReactiveGridFsTemplate.java | 2 +- .../query/AbstractReactiveMongoQuery.java | 17 ---------------- 6 files changed, 24 insertions(+), 27 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/DocumentPointerFactory.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/DocumentPointerFactory.java index 5695b5dc0..264b1c12d 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/DocumentPointerFactory.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/DocumentPointerFactory.java @@ -29,6 +29,7 @@ import org.springframework.dao.InvalidDataAccessApiUsageException; import org.springframework.data.annotation.Reference; import org.springframework.data.mapping.PersistentPropertyAccessor; import org.springframework.data.mapping.PersistentPropertyPath; +import org.springframework.data.mapping.PersistentPropertyPathAccessor; import org.springframework.data.mapping.PropertyPath; import org.springframework.data.mapping.context.MappingContext; import org.springframework.data.mapping.model.BeanWrapperPropertyAccessorFactory; @@ -239,9 +240,11 @@ class DocumentPointerFactory { continue; } + PersistentPropertyPathAccessor propertyPathAccessor = persistentEntity + .getPropertyPathAccessor(propertyAccessor.getBean()); PersistentPropertyPath path = mappingContext .getPersistentPropertyPath(PropertyPath.from(fieldName, persistentEntity.getTypeInformation())); - Object targetValue = propertyAccessor.getProperty(path); + Object targetValue = propertyPathAccessor.getProperty(path); target.put(attribute, targetValue); continue; } diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/MappingMongoConverter.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/MappingMongoConverter.java index cccdab986..fa0175adf 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/MappingMongoConverter.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/MappingMongoConverter.java @@ -39,6 +39,7 @@ import org.bson.codecs.configuration.CodecRegistry; import org.bson.conversions.Bson; import org.bson.json.JsonReader; import org.bson.types.ObjectId; + import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanClassLoaderAware; import org.springframework.context.ApplicationContext; @@ -50,7 +51,16 @@ import org.springframework.core.convert.support.DefaultConversionService; import org.springframework.data.annotation.Reference; import org.springframework.data.convert.CustomConversions; import org.springframework.data.convert.TypeMapper; -import org.springframework.data.mapping.*; +import org.springframework.data.mapping.AccessOptions; +import org.springframework.data.mapping.Association; +import org.springframework.data.mapping.InstanceCreatorMetadata; +import org.springframework.data.mapping.MappingException; +import org.springframework.data.mapping.Parameter; +import org.springframework.data.mapping.PersistentEntity; +import org.springframework.data.mapping.PersistentProperty; +import org.springframework.data.mapping.PersistentPropertyAccessor; +import org.springframework.data.mapping.PersistentPropertyPath; +import org.springframework.data.mapping.PersistentPropertyPathAccessor; import org.springframework.data.mapping.callback.EntityCallbacks; import org.springframework.data.mapping.context.MappingContext; import org.springframework.data.mapping.model.ConvertingPropertyAccessor; @@ -344,7 +354,8 @@ public class MappingMongoConverter extends AbstractMongoConverter implements App } }; - InstanceCreatorMetadata instanceCreatorMetadata = mappedEntity.getInstanceCreatorMetadata(); + InstanceCreatorMetadata instanceCreatorMetadata = mappedEntity + .getInstanceCreatorMetadata(); ParameterValueProvider provider = instanceCreatorMetadata != null && instanceCreatorMetadata.hasParameters() ? getParameterProvider(context, mappedEntity, documentAccessor, evaluator) @@ -989,8 +1000,7 @@ public class MappingMongoConverter extends AbstractMongoConverter implements App .getPointer(); }).collect(Collectors.toList()); - return writeCollectionInternal(targetCollection, TypeInformation.of(DocumentPointer.class), - new ArrayList<>()); + return writeCollectionInternal(targetCollection, TypeInformation.of(DocumentPointer.class), new ArrayList<>()); } if (property.hasExplicitWriteTarget()) { @@ -2091,7 +2101,7 @@ public class MappingMongoConverter extends AbstractMongoConverter implements App } @Override - public org.springframework.data.util.TypeInformation specialize(ClassTypeInformation type) { + public org.springframework.data.util.TypeInformation specialize(TypeInformation type) { return delegate.specialize(type); } diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/geo/Sphere.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/geo/Sphere.java index e0bdcd4a8..44a1f3b04 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/geo/Sphere.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/geo/Sphere.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core.geo; import java.util.Arrays; import java.util.List; -import org.springframework.data.annotation.PersistenceConstructor; +import org.springframework.data.annotation.PersistenceCreator; import org.springframework.data.geo.Circle; import org.springframework.data.geo.Distance; import org.springframework.data.geo.Point; @@ -44,7 +44,7 @@ public class Sphere implements Shape { * @param center must not be {@literal null}. * @param radius must not be {@literal null}. */ - @PersistenceConstructor + @PersistenceCreator public Sphere(Point center, Distance radius) { Assert.notNull(center, "Center point must not be null"); diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/UnwrappedMongoPersistentEntity.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/UnwrappedMongoPersistentEntity.java index bcc599512..2b7102070 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/UnwrappedMongoPersistentEntity.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/UnwrappedMongoPersistentEntity.java @@ -99,6 +99,7 @@ class UnwrappedMongoPersistentEntity implements MongoPersistentEntity { @Override @Nullable + @Deprecated public PreferredConstructor getPersistenceConstructor() { return delegate.getPersistenceConstructor(); } @@ -110,7 +111,7 @@ class UnwrappedMongoPersistentEntity implements MongoPersistentEntity { @Override public boolean isCreatorArgument(PersistentProperty property) { - return delegate.isConstructorArgument(property); + return delegate.isCreatorArgument(property); } @Override diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/gridfs/ReactiveGridFsTemplate.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/gridfs/ReactiveGridFsTemplate.java index 2d3a6cb99..c5e32872f 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/gridfs/ReactiveGridFsTemplate.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/gridfs/ReactiveGridFsTemplate.java @@ -127,7 +127,7 @@ public class ReactiveGridFsTemplate extends GridFsOperationsSupport implements R } String filename = upload.getFilename(); - Flux source = Flux.from(upload.getContent()).map(DataBuffer::asByteBuffer); + Flux source = Flux.from(upload.getContent()).map(DataBuffer::toByteBuffer); T fileId = upload.getFileId(); if (fileId == null) { diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractReactiveMongoQuery.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractReactiveMongoQuery.java index d0e065384..f9972f1aa 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractReactiveMongoQuery.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractReactiveMongoQuery.java @@ -369,23 +369,6 @@ public abstract class AbstractReactiveMongoQuery implements RepositoryQuery { return getCodecRegistry().map(ParameterBindingDocumentCodec::new); } - /** - * Obtain a {@link Mono publisher} emitting the {@link SpELExpressionEvaluator} suitable to evaluate expressions - * backed by the given dependencies. - * - * @param dependencies must not be {@literal null}. - * @param accessor must not be {@literal null}. - * @return a {@link Mono} emitting the {@link SpELExpressionEvaluator} when ready. - * @since 2.4 - * @deprecated in favor of {@link #getSpelEvaluatorFor(ExpressionDependencies, MongoParameterAccessor)} - */ - @Deprecated - protected Mono getSpelEvaluatorFor(ExpressionDependencies dependencies, - ConvertingParameterAccessor accessor) { - - return getSpelEvaluatorFor(dependencies, (MongoParameterAccessor) accessor); - } - /** * Obtain a {@link Mono publisher} emitting the {@link SpELExpressionEvaluator} suitable to evaluate expressions * backed by the given dependencies.