From 085238b44bf79331fba691ca1fc6594c9df3daf8 Mon Sep 17 00:00:00 2001 From: Tomasz Wysocki Date: Wed, 13 May 2015 12:24:28 +0200 Subject: [PATCH] DATACMNS-693 - AbstractMappingContext now uses Spring's BeanUtils to lookup PropertyDescriptors. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instead of manually using Introspector.getBeanInfo(…) we now use Spring's BeanUtils.getPropertyDescriptors(…) to benefit from some caching of descriptor instances as well as advanced support for fluent setters, default methods etc. Original pull request: #122. --- .../data/mapping/context/AbstractMappingContext.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/springframework/data/mapping/context/AbstractMappingContext.java b/src/main/java/org/springframework/data/mapping/context/AbstractMappingContext.java index d64ff3200..47e9dbd85 100644 --- a/src/main/java/org/springframework/data/mapping/context/AbstractMappingContext.java +++ b/src/main/java/org/springframework/data/mapping/context/AbstractMappingContext.java @@ -15,9 +15,6 @@ */ package org.springframework.data.mapping.context; -import java.beans.BeanInfo; -import java.beans.IntrospectionException; -import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.Field; import java.lang.reflect.Modifier; @@ -34,6 +31,8 @@ import java.util.Set; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantReadWriteLock; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.BeansException; import org.springframework.beans.factory.InitializingBean; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisherAware; @@ -63,6 +62,7 @@ import org.springframework.util.ReflectionUtils.FieldFilter; * @author Oliver Gierke * @author Michael Hunger * @author Thomas Darimont + * @author Tomasz Wysocki */ public abstract class AbstractMappingContext, P extends PersistentProperty

> implements MappingContext, ApplicationEventPublisherAware, InitializingBean { @@ -281,10 +281,10 @@ public abstract class AbstractMappingContext descriptors = new HashMap(); - for (PropertyDescriptor descriptor : info.getPropertyDescriptors()) { + for (PropertyDescriptor descriptor : pds) { descriptors.put(descriptor.getName(), descriptor); } @@ -308,7 +308,7 @@ public abstract class AbstractMappingContext