From 8bb7013f658714f72d9e6b8de0e49ec11f2e84b2 Mon Sep 17 00:00:00 2001 From: John Blum Date: Thu, 5 May 2016 23:33:15 -0700 Subject: [PATCH] SGF-494 - Fix bug in GemfirePersistentEntity introduced by Spring Data Commons' ClassGeneratingPropertyAccessorFactory. --- .../mapping/GemfirePersistentEntity.java | 6 +- .../DefaultGemfireEntityInformation.java | 12 ++-- .../DefaultGemfireEntityInformationTest.java | 56 ++++++++++--------- 3 files changed, 39 insertions(+), 35 deletions(-) diff --git a/src/main/java/org/springframework/data/gemfire/mapping/GemfirePersistentEntity.java b/src/main/java/org/springframework/data/gemfire/mapping/GemfirePersistentEntity.java index 2012cac1..3ab1d281 100644 --- a/src/main/java/org/springframework/data/gemfire/mapping/GemfirePersistentEntity.java +++ b/src/main/java/org/springframework/data/gemfire/mapping/GemfirePersistentEntity.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.data.gemfire.mapping; import org.springframework.data.mapping.PersistentEntity; @@ -25,6 +26,7 @@ import org.springframework.util.StringUtils; * mapped to etc. * * @author Oliver Gierke + * @author John Blum */ public class GemfirePersistentEntity extends BasicPersistentEntity { @@ -41,9 +43,9 @@ public class GemfirePersistentEntity extends BasicPersistentEntity rawType = information.getType(); Region region = rawType.getAnnotation(Region.class); - String fallbackName = rawType.getSimpleName(); + String defaultRegionName = rawType.getSimpleName(); - this.regionName = region == null || !StringUtils.hasText(region.value()) ? fallbackName : region.value(); + this.regionName = (region != null && StringUtils.hasText(region.value()) ? region.value() : defaultRegionName); } /** diff --git a/src/main/java/org/springframework/data/gemfire/repository/query/DefaultGemfireEntityInformation.java b/src/main/java/org/springframework/data/gemfire/repository/query/DefaultGemfireEntityInformation.java index d95b5975..28debc69 100644 --- a/src/main/java/org/springframework/data/gemfire/repository/query/DefaultGemfireEntityInformation.java +++ b/src/main/java/org/springframework/data/gemfire/repository/query/DefaultGemfireEntityInformation.java @@ -35,16 +35,16 @@ import org.springframework.data.repository.core.support.PersistentEntityInformat public class DefaultGemfireEntityInformation extends PersistentEntityInformation implements GemfireEntityInformation { - private final GemfirePersistentEntity entity; + private final GemfirePersistentEntity persistentEntity; /** * Creates a new {@link DefaultGemfireEntityInformation}. * - * @param entity must not be {@literal null}. + * @param persistentEntity must not be {@literal null}. */ - public DefaultGemfireEntityInformation(GemfirePersistentEntity entity) { - super(entity); - this.entity = entity; + public DefaultGemfireEntityInformation(GemfirePersistentEntity persistentEntity) { + super(persistentEntity); + this.persistentEntity = persistentEntity; } /* @@ -53,7 +53,7 @@ public class DefaultGemfireEntityInformation extends */ @Override public String getRegionName() { - return entity.getRegionName(); + return persistentEntity.getRegionName(); } } diff --git a/src/test/java/org/springframework/data/gemfire/repository/query/DefaultGemfireEntityInformationTest.java b/src/test/java/org/springframework/data/gemfire/repository/query/DefaultGemfireEntityInformationTest.java index edca1118..a0f58613 100644 --- a/src/test/java/org/springframework/data/gemfire/repository/query/DefaultGemfireEntityInformationTest.java +++ b/src/test/java/org/springframework/data/gemfire/repository/query/DefaultGemfireEntityInformationTest.java @@ -50,15 +50,16 @@ public class DefaultGemfireEntityInformationTest { mappingContext = new GemfireMappingContext(); } - protected Algorithm createAlgorithm(final String name) { - return new Algorithm() { + @SuppressWarnings("unchecked") + protected T createAlgorithm(final String name) { + return (T) new Algorithm() { public String getName() { return name; } }; } - protected Animal createAnimal(final Long id, final String name) { + protected Animal createAnimal(Long id, String name) { Animal animal = new Animal(); animal.setId(id); animal.setName(name); @@ -66,17 +67,17 @@ public class DefaultGemfireEntityInformationTest { } protected GemfireEntityInformation createEntityInformation( - final GemfirePersistentEntity persistentEntity) { + GemfirePersistentEntity persistentEntity) { return new DefaultGemfireEntityInformation(persistentEntity); } @SuppressWarnings("unchecked") - protected GemfirePersistentEntity createPersistentEntity(final Class domainEntityType) { + protected GemfirePersistentEntity createPersistentEntity(Class domainEntityType) { return (GemfirePersistentEntity) mappingContext.getPersistentEntity(domainEntityType); } @Test - public void testInterfaceBasedEntity() { + public void interfaceBasedEntity() { GemfireEntityInformation entityInfo = createEntityInformation( createPersistentEntity(Algorithm.class)); @@ -89,7 +90,7 @@ public class DefaultGemfireEntityInformationTest { } @Test - public void testClassBasedEntity() { + public void classBasedEntity() { GemfireEntityInformation entityInfo = createEntityInformation( createPersistentEntity(Animal.class)); @@ -101,45 +102,46 @@ public class DefaultGemfireEntityInformationTest { } @Test - public void testConfusedDomainEntityHavingLongId() { - GemfireEntityInformation entityInfo = createEntityInformation( - createPersistentEntity(MyConfusedDomainEntity.class)); + public void confusedDomainEntityTypedWithLongId() { + GemfireEntityInformation entityInfo = createEntityInformation( + createPersistentEntity(ConfusedDomainEntity.class)); assertNotNull(entityInfo); - assertEquals("MyConfusedDomainEntity", entityInfo.getRegionName()); - assertEquals(MyConfusedDomainEntity.class, entityInfo.getJavaType()); + assertEquals("ConfusedDomainEntity", entityInfo.getRegionName()); + assertEquals(ConfusedDomainEntity.class, entityInfo.getJavaType()); assertEquals(Long.class, entityInfo.getIdType()); - assertEquals(new Long(123l), entityInfo.getId(new MyConfusedDomainEntity(123l))); + assertEquals(new Long(123l), entityInfo.getId(new ConfusedDomainEntity(123l))); } @Test - public void testConfusedDomainEntityHavingStringId() { - GemfireEntityInformation entityInfo = createEntityInformation( - createPersistentEntity(MyConfusedDomainEntity.class)); + @SuppressWarnings("all") + public void confusedDomainEntityTypedStringId() { + GemfireEntityInformation entityInfo = createEntityInformation( + createPersistentEntity(ConfusedDomainEntity.class)); assertNotNull(entityInfo); - assertEquals("MyConfusedDomainEntity", entityInfo.getRegionName()); - assertEquals(MyConfusedDomainEntity.class, entityInfo.getJavaType()); - //assertEquals(String.class, entityInfo.getIdType()); + assertEquals("ConfusedDomainEntity", entityInfo.getRegionName()); + assertEquals(ConfusedDomainEntity.class, entityInfo.getJavaType()); assertTrue(Long.class.equals(entityInfo.getIdType())); - assertEquals(123l, entityInfo.getId(new MyConfusedDomainEntity(123l))); - assertEquals(248l, entityInfo.getId(new MyConfusedDomainEntity("248"))); + assertEquals(123l, entityInfo.getId(new ConfusedDomainEntity(123l))); + assertEquals(248l, entityInfo.getId(new ConfusedDomainEntity("248"))); } @SuppressWarnings("unused") - protected static class MyConfusedDomainEntity { + class ConfusedDomainEntity { - @Id private Long id; + @Id + private Long id; - protected MyConfusedDomainEntity() { + protected ConfusedDomainEntity() { this((Long) null); } - protected MyConfusedDomainEntity(final Long id) { + protected ConfusedDomainEntity(final Long id) { this.id = id; } - protected MyConfusedDomainEntity(final String id) { + protected ConfusedDomainEntity(final String id) { setId(id); } @@ -158,7 +160,7 @@ public class DefaultGemfireEntityInformationTest { } } - protected static class QuickSort implements Algorithm { + class QuickSort implements Algorithm { @Override public String getName() {