DATACMNS-1035 - Moved CustomConversions to Spring Data Commons.

Extracted CustomConversions — whose code has largely been duplicated between the MongoDB, Couchbase and Cassandra modules — into Spring Data Commons. Store-specific extensions can now be contributed via a StoreConversions value type that carries both, store-specific default converters as well as a store-specific SimpleTypeHolder to augment the default list of simple types.

Removed SimpleTypeHolders public default constructor in favour of a protected one and a static DEFAULT instance for plain references.

Original pull request: #210.
This commit is contained in:
Oliver Gierke
2017-04-20 18:01:22 +02:00
parent 713976d2a6
commit 233fde36b5
6 changed files with 828 additions and 51 deletions

View File

@@ -44,14 +44,14 @@ public class SimpleTypeHolderUnitTests {
@Test(expected = IllegalArgumentException.class) // DATACMNS-31
public void rejectsNullTypeForIsSimpleTypeCall() {
SimpleTypeHolder holder = new SimpleTypeHolder();
SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT;
holder.isSimpleType(null);
}
@Test
public void addsDefaultTypes() {
SimpleTypeHolder holder = new SimpleTypeHolder();
SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT;
assertThat(holder.isSimpleType(String.class)).isTrue();
}
@@ -87,28 +87,28 @@ public class SimpleTypeHolderUnitTests {
@Test
public void considersObjectToBeSimpleType() {
SimpleTypeHolder holder = new SimpleTypeHolder();
SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT;
assertThat(holder.isSimpleType(Object.class)).isTrue();
}
@Test
public void considersSimpleEnumAsSimple() {
SimpleTypeHolder holder = new SimpleTypeHolder();
SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT;
assertThat(holder.isSimpleType(SimpleEnum.FOO.getClass())).isTrue();
}
@Test
public void considersComplexEnumAsSimple() {
SimpleTypeHolder holder = new SimpleTypeHolder();
SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT;
assertThat(holder.isSimpleType(ComplexEnum.FOO.getClass())).isTrue();
}
@Test // DATACMNS-1006
public void considersJavaLangTypesSimple() {
SimpleTypeHolder holder = new SimpleTypeHolder();
SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT;
assertThat(holder.isSimpleType(Type.class)).isTrue();
}

View File

@@ -48,7 +48,7 @@ import org.springframework.util.StringUtils;
*/
public class AbstractMappingContextUnitTests {
final SimpleTypeHolder holder = new SimpleTypeHolder();
final SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT;
SampleMappingContext context;
@Before
@@ -153,7 +153,9 @@ public class AbstractMappingContextUnitTests {
PersistentEntity<Object, SamplePersistentProperty> entity = mappingContext
.getRequiredPersistentEntity(Sample.class);
assertThat(entity.getPersistentProperty("persons")).hasValueSatisfying(it -> assertThat(mappingContext.getPersistentEntity(it)).hasValueSatisfying(inner -> assertThat(inner.getType()).isEqualTo(Person.class)));
assertThat(entity.getPersistentProperty("persons"))
.hasValueSatisfying(it -> assertThat(mappingContext.getPersistentEntity(it))
.hasValueSatisfying(inner -> assertThat(inner.getType()).isEqualTo(Person.class)));
}
@Test // DATACMNS-380