From 64be8f8ffd6d87123466eb40780416096a50cdb8 Mon Sep 17 00:00:00 2001 From: Bogdan Kostov Date: Thu, 17 Aug 2023 18:37:24 +0200 Subject: [PATCH] [FIX #193] Fix logging of execution in rdf4j repo - add DateUtils to handle conversion of different date classes to java.util.Date. --- .../AdvancedLoggingProgressListener.java | 3 ++- .../java/cz/cvut/spipes/util/DateUtils.java | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 s-pipes-core/src/main/java/cz/cvut/spipes/util/DateUtils.java diff --git a/s-pipes-core/src/main/java/cz/cvut/spipes/logging/AdvancedLoggingProgressListener.java b/s-pipes-core/src/main/java/cz/cvut/spipes/logging/AdvancedLoggingProgressListener.java index d539a4d7..2c945d2b 100644 --- a/s-pipes-core/src/main/java/cz/cvut/spipes/logging/AdvancedLoggingProgressListener.java +++ b/s-pipes-core/src/main/java/cz/cvut/spipes/logging/AdvancedLoggingProgressListener.java @@ -12,6 +12,7 @@ import cz.cvut.spipes.model.Thing; import cz.cvut.spipes.model.Transformation; import cz.cvut.spipes.modules.Module; +import cz.cvut.spipes.util.DateUtils; import cz.cvut.spipes.util.Rdf4jUtils; import cz.cvut.spipes.util.TempFileUtils; import org.apache.jena.rdf.model.Model; @@ -182,7 +183,7 @@ private void persistPipelineExecutionFinished(final EntityManager em, final long em.find(Transformation.class, pipelineExecutionIri, pd); // new - Date startDate = (Date) getSingletonPropertyValue(pipelineExecution, SPIPES.has_pipeline_execution_start_date); + Date startDate = DateUtils.toDate(getSingletonPropertyValue(pipelineExecution, SPIPES.has_pipeline_execution_start_date)); addProperty(pipelineExecution, SPIPES.has_pipeline_execution_finish_date, finishDate); addProperty(pipelineExecution, SPIPES.has_pipeline_execution_finish_date_unix, finishDate.getTime()); addProperty(pipelineExecution, SPIPES.has_pipeline_execution_duration, computeDuration(startDate, finishDate)); diff --git a/s-pipes-core/src/main/java/cz/cvut/spipes/util/DateUtils.java b/s-pipes-core/src/main/java/cz/cvut/spipes/util/DateUtils.java new file mode 100644 index 00000000..58620848 --- /dev/null +++ b/s-pipes-core/src/main/java/cz/cvut/spipes/util/DateUtils.java @@ -0,0 +1,22 @@ +package cz.cvut.spipes.util; + +import java.time.OffsetDateTime; +import java.util.Date; +import java.util.Objects; + +public class DateUtils { + + public static Date toDate(Object objectDate){ + Objects.requireNonNull(objectDate); + + if(objectDate instanceof OffsetDateTime) + return toDate((OffsetDateTime)objectDate); + return (Date)objectDate; + + } + + public static Date toDate(OffsetDateTime objectDate) { + Objects.requireNonNull(objectDate); + return Date.from(objectDate.toInstant()); + } +}