|
35 | 35 | import org.springframework.beans.factory.BeanFactoryAware;
|
36 | 36 | import org.springframework.core.GenericTypeResolver;
|
37 | 37 | import org.springframework.core.MethodParameter;
|
38 |
| -import org.springframework.core.convert.ConversionService; |
39 | 38 | import org.springframework.core.convert.TypeDescriptor;
|
40 |
| -import org.springframework.core.convert.support.DefaultConversionService; |
41 | 39 | import org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor;
|
42 | 40 | import org.springframework.data.projection.SpelAwareProxyProjectionFactory;
|
43 | 41 | import org.springframework.data.repository.Repository;
|
|
53 | 51 | import org.springframework.data.repository.query.RepositoryQuery;
|
54 | 52 | import org.springframework.data.repository.util.ClassUtils;
|
55 | 53 | import org.springframework.data.repository.util.ReactiveWrapperConverters;
|
| 54 | +import org.springframework.data.repository.util.ReactiveWrappers; |
56 | 55 | import org.springframework.data.util.ReflectionUtils;
|
57 | 56 | import org.springframework.util.Assert;
|
58 | 57 | import org.springframework.util.ObjectUtils;
|
@@ -583,9 +582,6 @@ private boolean isCustomMethodInvocation(MethodInvocation invocation) {
|
583 | 582 | */
|
584 | 583 | public class ConvertingImplementationMethodExecutionInterceptor extends ImplementationMethodExecutionInterceptor {
|
585 | 584 |
|
586 |
| - private final ConversionService conversionService = ReactiveWrapperConverters |
587 |
| - .registerConvertersIn(new DefaultConversionService()); |
588 |
| - |
589 | 585 | /**
|
590 | 586 | * @param repositoryInformation
|
591 | 587 | * @param customImplementation
|
@@ -624,13 +620,12 @@ private Object[] convertParameters(Class<?>[] parameterTypes, Object[] parameter
|
624 | 620 | continue;
|
625 | 621 | }
|
626 | 622 |
|
627 |
| - if (parameterTypes[i].isAssignableFrom(parameters[i].getClass()) |
628 |
| - || !conversionService.canConvert(parameters[i].getClass(), parameterTypes[i])) { |
629 |
| - |
630 |
| - result[i] = parameters[i]; |
| 623 | + if (!parameterTypes[i].isAssignableFrom(parameters[i].getClass()) && ReactiveWrappers.isAvailable() |
| 624 | + && ReactiveWrapperConverters.canConvert(parameters[i].getClass(), parameterTypes[i])) { |
631 | 625 |
|
| 626 | + result[i] = ReactiveWrapperConverters.toWrapper(parameters[i], parameterTypes[i]); |
632 | 627 | } else {
|
633 |
| - result[i] = conversionService.convert(parameters[i], parameterTypes[i]); |
| 628 | + result[i] = parameters[i]; |
634 | 629 | }
|
635 | 630 |
|
636 | 631 | }
|
|
0 commit comments