Restore AbstractPropertyAccessor

Commit 3d86f15 added a lot of new feature in AbstractPropertyAccessor
shared by both DirectFieldAccessor and BeanWrapperImpl. This makes this
abstract class harder to implement for others having simpler use cases.

It turns that Spring Data has such use case; this commit split these new
features in a dedicated new base class, leaving AbstractPropertyAccessor
untouched.

Issue: SPR-12805
This commit is contained in:
Stephane Nicoll 2015-05-21 19:58:57 +02:00
parent 27c435c4ea
commit 2dc674f356
7 changed files with 1081 additions and 1029 deletions

View File

@ -60,7 +60,7 @@ import org.springframework.util.Assert;
* @see BeanWrapper
* @see PropertyEditorRegistrySupport
*/
public class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWrapper {
public class BeanWrapperImpl extends AbstractNestablePropertyAccessor implements BeanWrapper {
/**
* Cached introspections results for this object, to prevent encountering

View File

@ -44,7 +44,7 @@ import org.springframework.util.ReflectionUtils;
* @see org.springframework.validation.DirectFieldBindingResult
* @see org.springframework.validation.DataBinder#initDirectFieldAccess()
*/
public class DirectFieldAccessor extends AbstractPropertyAccessor {
public class DirectFieldAccessor extends AbstractNestablePropertyAccessor {
private final Map<String, FieldPropertyHandler> fieldMap = new HashMap<String, FieldPropertyHandler>();

View File

@ -76,7 +76,7 @@ import static org.junit.Assert.*;
* @author Dave Syer
* @author Stephane Nicoll
*/
public abstract class AbstractConfigurablePropertyAccessorTests {
public abstract class AbstractPropertyAccessorTests {
@Rule
public final ExpectedException thrown = ExpectedException.none();
@ -1035,7 +1035,7 @@ public abstract class AbstractConfigurablePropertyAccessorTests {
@Test
public void setPrimitiveArrayPropertyLargeMatching() {
Assume.group(TestGroup.PERFORMANCE);
Assume.notLogging(LogFactory.getLog(AbstractConfigurablePropertyAccessorTests.class));
Assume.notLogging(LogFactory.getLog(AbstractPropertyAccessorTests.class));
PrimitiveArrayBean target = new PrimitiveArrayBean();
AbstractPropertyAccessor accessor = createAccessor(target);

View File

@ -36,7 +36,7 @@ import static org.junit.Assert.*;
* @author Chris Beams
* @author Dave Syer
*/
public final class BeanWrapperTests extends AbstractConfigurablePropertyAccessorTests {
public final class BeanWrapperTests extends AbstractPropertyAccessorTests {
@Override
protected BeanWrapperImpl createAccessor(Object target) {

View File

@ -29,7 +29,7 @@ import static org.junit.Assert.*;
* @author Chris Beams
* @@author Stephane Nicoll
*/
public class DirectFieldAccessorTests extends AbstractConfigurablePropertyAccessorTests {
public class DirectFieldAccessorTests extends AbstractPropertyAccessorTests {
@Override
protected DirectFieldAccessor createAccessor(Object target) {