DATACMNS-638, DATACMNS-643 - Support for JSR-310 and ThreeTen datetime types.

Extend AuditableBeanWrapper to allow access to the last modification date of a target object. Made AuditableBeanWrapperFactory an interface and renamed what’s been previously known under this name as DefaultAuditableBeanWrapperFactory.

The components previously relying on a MappingContext to lookup a PersistentEntity now use PersistentEntities to be able to back a collection of MappingContexts behind that and also avoid unmanaged types to be added to the MappingContext.

We now also register the JSR-310 and ThreeTen back-port converters with the ConversionService to be able to get and set auditing dates as these types.
This commit is contained in:
Oliver Gierke
2015-02-04 19:30:02 +01:00
parent fe49e4cf14
commit 0c65c7bb67
17 changed files with 656 additions and 313 deletions

View File

@@ -24,6 +24,7 @@ import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
@@ -66,6 +67,16 @@ public abstract class Jsr310Converters {
return converters;
}
public static boolean supports(Class<?> type) {
if (!JAVA_8_IS_PRESENT) {
return false;
}
return Arrays.<Class<?>> asList(LocalDateTime.class, LocalDate.class, LocalTime.class, Instant.class)
.contains(type);
}
public static enum DateToLocalDateTimeConverter implements Converter<Date, LocalDateTime> {
INSTANCE;

View File

@@ -21,6 +21,7 @@ import static org.threeten.bp.LocalDateTime.*;
import static org.threeten.bp.ZoneId.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
@@ -70,6 +71,16 @@ public abstract class ThreeTenBackPortConverters {
return converters;
}
public static boolean supports(Class<?> type) {
if (!THREE_TEN_BACK_PORT_IS_PRESENT) {
return false;
}
return Arrays.<Class<?>> asList(LocalDateTime.class, LocalDate.class, LocalTime.class, Instant.class)
.contains(type);
}
public static enum DateToLocalDateTimeConverter implements Converter<Date, LocalDateTime> {
INSTANCE;