DATACMNS-1384 - Support for j.u.Date and j.s.Timestamp in AnnotationRevisionMetadata.

We now properly convert legacy Date instances into Instants to expose the revision date. Support for Timestamp is transparent as it extends Date.
This commit is contained in:
Oliver Gierke
2018-09-01 18:34:56 +02:00
parent 1d4a53dc28
commit 3dacaf64d8
2 changed files with 41 additions and 0 deletions

View File

@@ -19,6 +19,7 @@ import java.lang.annotation.Annotation;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.Date;
import java.util.Optional;
import org.springframework.data.util.AnnotationDetectionFieldCallback;
@@ -128,6 +129,10 @@ public class AnnotationRevisionMetadata<N extends Number & Comparable<N>> implem
return Instant.ofEpochMilli((Long) timestamp);
}
if (Date.class.isInstance(timestamp)) {
return Date.class.cast(timestamp).toInstant();
}
throw new IllegalArgumentException(String.format("Can't convert %s to Instant!", timestamp));
}
}