From 3d8bbd1fe701635067b2dbb1d393563cb707c975 Mon Sep 17 00:00:00 2001 From: ksahu Date: Tue, 1 Jun 2021 15:42:00 +0530 Subject: [PATCH 01/10] Global status monitoring classes --- .../common/model/status/DataSetDetails.java | 21 +++++++++++++++ .../core/common/model/status/DataSetType.java | 7 +++++ .../osdu/core/common/model/status/Stage.java | 7 +++++ .../osdu/core/common/model/status/Status.java | 5 ++++ .../common/model/status/StatusDetails.java | 27 +++++++++++++++++++ .../core/common/status/StatusPublisher.java | 9 +++++++ 6 files changed, 76 insertions(+) create mode 100644 src/main/java/org/opengroup/osdu/core/common/model/status/DataSetDetails.java create mode 100644 src/main/java/org/opengroup/osdu/core/common/model/status/DataSetType.java create mode 100644 src/main/java/org/opengroup/osdu/core/common/model/status/Stage.java create mode 100644 src/main/java/org/opengroup/osdu/core/common/model/status/Status.java create mode 100644 src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java create mode 100644 src/main/java/org/opengroup/osdu/core/common/status/StatusPublisher.java diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/DataSetDetails.java b/src/main/java/org/opengroup/osdu/core/common/model/status/DataSetDetails.java new file mode 100644 index 0000000..6a5e28d --- /dev/null +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/DataSetDetails.java @@ -0,0 +1,21 @@ +package org.opengroup.osdu.core.common.model.status; + +import lombok.Data; + +@Data +public class DataSetDetails { + + private String kind; + private Properties properties; + + @Data + class Properties { + private String correlationId; + private String dataSetId; + private String dataSetVersionId; + private DataSetType dataSetType; + private int recordCount; + private String timestamp; + } + +} diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/DataSetType.java b/src/main/java/org/opengroup/osdu/core/common/model/status/DataSetType.java new file mode 100644 index 0000000..1e3de48 --- /dev/null +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/DataSetType.java @@ -0,0 +1,7 @@ +package org.opengroup.osdu.core.common.model.status; + +public enum DataSetType { + + FILE, FILE_COLLECTION, BATCH; + +} diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/Stage.java b/src/main/java/org/opengroup/osdu/core/common/model/status/Stage.java new file mode 100644 index 0000000..a7b5f9f --- /dev/null +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/Stage.java @@ -0,0 +1,7 @@ +package org.opengroup.osdu.core.common.model.status; + +public enum Stage { + + STORAGE_SYNC, DATASET_SYNC, ES_SYNC; + +} diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/Status.java b/src/main/java/org/opengroup/osdu/core/common/model/status/Status.java new file mode 100644 index 0000000..bc52af9 --- /dev/null +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/Status.java @@ -0,0 +1,5 @@ +package org.opengroup.osdu.core.common.model.status; + +public enum Status { + SUCCESS, FAILED, IN_PROGRESS, SKIPPED, PARTIAL_SUCCESS; +} diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java b/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java new file mode 100644 index 0000000..d4d82ea --- /dev/null +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java @@ -0,0 +1,27 @@ +package org.opengroup.osdu.core.common.model.status; + +import java.sql.Timestamp; + +import lombok.Data; + +@Data +public class StatusDetails { + + private String kind; + private Properties properties; + + @Data + class Properties { + + private String correlationId; + private String recordId; + private String recordIdVersion; + private Stage stage; + private Status status; + private String message; + private int errorCode; + private String userEmail; + private String timestamp; + + } +} diff --git a/src/main/java/org/opengroup/osdu/core/common/status/StatusPublisher.java b/src/main/java/org/opengroup/osdu/core/common/status/StatusPublisher.java new file mode 100644 index 0000000..adfc5d4 --- /dev/null +++ b/src/main/java/org/opengroup/osdu/core/common/status/StatusPublisher.java @@ -0,0 +1,9 @@ +package org.opengroup.osdu.core.common.status; + +import org.opengroup.osdu.core.common.model.status.DataSetDetails; +import org.opengroup.osdu.core.common.model.status.StatusDetails; + +public interface StatusPublisher { + void publishStatus(StatusDetails statusDetails); + void publishDataSetDetails(DataSetDetails dataSetDetails); +} -- GitLab From 4a48eacee930f027ef0c8528cb11c975340049ae Mon Sep 17 00:00:00 2001 From: ksahu Date: Thu, 3 Jun 2021 14:40:54 +0530 Subject: [PATCH 02/10] Updated and formatted --- .../common/model/status/DataSetDetails.java | 26 +++++++------- .../core/common/model/status/DataSetType.java | 4 +-- .../osdu/core/common/model/status/Stage.java | 7 ---- .../osdu/core/common/model/status/Status.java | 2 +- .../common/model/status/StatusDetails.java | 36 +++++++++---------- .../core/common/status/StatusPublisher.java | 5 +-- 6 files changed, 36 insertions(+), 44 deletions(-) delete mode 100644 src/main/java/org/opengroup/osdu/core/common/model/status/Stage.java diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/DataSetDetails.java b/src/main/java/org/opengroup/osdu/core/common/model/status/DataSetDetails.java index 6a5e28d..c9e4337 100644 --- a/src/main/java/org/opengroup/osdu/core/common/model/status/DataSetDetails.java +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/DataSetDetails.java @@ -4,18 +4,18 @@ import lombok.Data; @Data public class DataSetDetails { - - private String kind; - private Properties properties; - - @Data - class Properties { - private String correlationId; - private String dataSetId; - private String dataSetVersionId; - private DataSetType dataSetType; - private int recordCount; - private String timestamp; - } + + private String kind; + private Properties properties; + + @Data + class Properties { + private String correlationId; + private String dataSetId; + private String dataSetVersionId; + private DataSetType dataSetType; + private int recordCount; + private String timestamp; + } } diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/DataSetType.java b/src/main/java/org/opengroup/osdu/core/common/model/status/DataSetType.java index 1e3de48..e6bdf43 100644 --- a/src/main/java/org/opengroup/osdu/core/common/model/status/DataSetType.java +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/DataSetType.java @@ -1,7 +1,7 @@ package org.opengroup.osdu.core.common.model.status; public enum DataSetType { - - FILE, FILE_COLLECTION, BATCH; + + FILE, FILE_COLLECTION, BATCH; } diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/Stage.java b/src/main/java/org/opengroup/osdu/core/common/model/status/Stage.java deleted file mode 100644 index a7b5f9f..0000000 --- a/src/main/java/org/opengroup/osdu/core/common/model/status/Stage.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.opengroup.osdu.core.common.model.status; - -public enum Stage { - - STORAGE_SYNC, DATASET_SYNC, ES_SYNC; - -} diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/Status.java b/src/main/java/org/opengroup/osdu/core/common/model/status/Status.java index bc52af9..28fd63c 100644 --- a/src/main/java/org/opengroup/osdu/core/common/model/status/Status.java +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/Status.java @@ -1,5 +1,5 @@ package org.opengroup.osdu.core.common.model.status; public enum Status { - SUCCESS, FAILED, IN_PROGRESS, SKIPPED, PARTIAL_SUCCESS; + SUCCESS, FAILED, IN_PROGRESS, SKIPPED, PARTIAL_SUCCESS; } diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java b/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java index d4d82ea..e4ff056 100644 --- a/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java @@ -1,27 +1,25 @@ package org.opengroup.osdu.core.common.model.status; -import java.sql.Timestamp; - import lombok.Data; @Data public class StatusDetails { - - private String kind; - private Properties properties; - - @Data - class Properties { - - private String correlationId; - private String recordId; - private String recordIdVersion; - private Stage stage; - private Status status; - private String message; - private int errorCode; - private String userEmail; - private String timestamp; - } + private String kind; + private Properties properties; + + @Data + class Properties { + + private String correlationId; + private String recordId; + private String recordIdVersion; + private String stage; + private Status status; + private String message; + private int errorCode; + private String userEmail; + private String timestamp; + + } } diff --git a/src/main/java/org/opengroup/osdu/core/common/status/StatusPublisher.java b/src/main/java/org/opengroup/osdu/core/common/status/StatusPublisher.java index adfc5d4..07778a4 100644 --- a/src/main/java/org/opengroup/osdu/core/common/status/StatusPublisher.java +++ b/src/main/java/org/opengroup/osdu/core/common/status/StatusPublisher.java @@ -4,6 +4,7 @@ import org.opengroup.osdu.core.common.model.status.DataSetDetails; import org.opengroup.osdu.core.common.model.status.StatusDetails; public interface StatusPublisher { - void publishStatus(StatusDetails statusDetails); - void publishDataSetDetails(DataSetDetails dataSetDetails); + void publishStatus(StatusDetails statusDetails); + + void publishDataSetDetails(DataSetDetails dataSetDetails); } -- GitLab From 586ec15956682cc0f5e0cbac3efcb222516a543d Mon Sep 17 00:00:00 2001 From: ksahu Date: Thu, 3 Jun 2021 16:28:17 +0530 Subject: [PATCH 03/10] Divided into 2 interface --- .../osdu/core/common/status/DataSetDetailsPublisher.java | 9 +++++++++ .../osdu/core/common/status/StatusPublisher.java | 7 +++---- 2 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 src/main/java/org/opengroup/osdu/core/common/status/DataSetDetailsPublisher.java diff --git a/src/main/java/org/opengroup/osdu/core/common/status/DataSetDetailsPublisher.java b/src/main/java/org/opengroup/osdu/core/common/status/DataSetDetailsPublisher.java new file mode 100644 index 0000000..d3c5205 --- /dev/null +++ b/src/main/java/org/opengroup/osdu/core/common/status/DataSetDetailsPublisher.java @@ -0,0 +1,9 @@ +package org.opengroup.osdu.core.common.status; + +import java.util.List; + +import org.opengroup.osdu.core.common.model.status.DataSetDetails; + +public interface DataSetDetailsPublisher { + void publishDataSetDetails(List dataSetDetailsList); +} diff --git a/src/main/java/org/opengroup/osdu/core/common/status/StatusPublisher.java b/src/main/java/org/opengroup/osdu/core/common/status/StatusPublisher.java index 07778a4..5e76d3c 100644 --- a/src/main/java/org/opengroup/osdu/core/common/status/StatusPublisher.java +++ b/src/main/java/org/opengroup/osdu/core/common/status/StatusPublisher.java @@ -1,10 +1,9 @@ package org.opengroup.osdu.core.common.status; -import org.opengroup.osdu.core.common.model.status.DataSetDetails; +import java.util.List; + import org.opengroup.osdu.core.common.model.status.StatusDetails; public interface StatusPublisher { - void publishStatus(StatusDetails statusDetails); - - void publishDataSetDetails(DataSetDetails dataSetDetails); + void publishStatus(List statusDetailsList); } -- GitLab From 52b1108e53dec76559eaa549cd76816cbfdcc09f Mon Sep 17 00:00:00 2001 From: ksahu Date: Tue, 15 Jun 2021 21:14:00 +0530 Subject: [PATCH 04/10] Changed file names and refactored --- ...ataSetDetails.java => DatasetDetails.java} | 10 +-- .../{DataSetType.java => DatasetType.java} | 2 +- .../common/model/status/StatusDetails.java | 2 +- .../status/DataSetDetailsPublisher.java | 9 --- .../status/DatasetDetailsRequestBuilder.java | 78 +++++++++++++++++++ .../core/common/status/IEventPublisher.java | 9 +++ .../status/StatusDetailsRequestBuilder.java | 77 ++++++++++++++++++ .../core/common/status/StatusPublisher.java | 9 --- 8 files changed, 171 insertions(+), 25 deletions(-) rename src/main/java/org/opengroup/osdu/core/common/model/status/{DataSetDetails.java => DatasetDetails.java} (60%) rename src/main/java/org/opengroup/osdu/core/common/model/status/{DataSetType.java => DatasetType.java} (77%) delete mode 100644 src/main/java/org/opengroup/osdu/core/common/status/DataSetDetailsPublisher.java create mode 100644 src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java create mode 100644 src/main/java/org/opengroup/osdu/core/common/status/IEventPublisher.java create mode 100644 src/main/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilder.java delete mode 100644 src/main/java/org/opengroup/osdu/core/common/status/StatusPublisher.java diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/DataSetDetails.java b/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetDetails.java similarity index 60% rename from src/main/java/org/opengroup/osdu/core/common/model/status/DataSetDetails.java rename to src/main/java/org/opengroup/osdu/core/common/model/status/DatasetDetails.java index c9e4337..1bad22c 100644 --- a/src/main/java/org/opengroup/osdu/core/common/model/status/DataSetDetails.java +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetDetails.java @@ -3,17 +3,17 @@ package org.opengroup.osdu.core.common.model.status; import lombok.Data; @Data -public class DataSetDetails { +public class DatasetDetails { private String kind; private Properties properties; @Data - class Properties { + public class Properties { private String correlationId; - private String dataSetId; - private String dataSetVersionId; - private DataSetType dataSetType; + private String datasetId; + private String datasetVersionId; + private DatasetType datasetType; private int recordCount; private String timestamp; } diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/DataSetType.java b/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetType.java similarity index 77% rename from src/main/java/org/opengroup/osdu/core/common/model/status/DataSetType.java rename to src/main/java/org/opengroup/osdu/core/common/model/status/DatasetType.java index e6bdf43..331f2cf 100644 --- a/src/main/java/org/opengroup/osdu/core/common/model/status/DataSetType.java +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetType.java @@ -1,6 +1,6 @@ package org.opengroup.osdu.core.common.model.status; -public enum DataSetType { +public enum DatasetType { FILE, FILE_COLLECTION, BATCH; diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java b/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java index e4ff056..17ed5db 100644 --- a/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java @@ -9,7 +9,7 @@ public class StatusDetails { private Properties properties; @Data - class Properties { + public class Properties { private String correlationId; private String recordId; diff --git a/src/main/java/org/opengroup/osdu/core/common/status/DataSetDetailsPublisher.java b/src/main/java/org/opengroup/osdu/core/common/status/DataSetDetailsPublisher.java deleted file mode 100644 index d3c5205..0000000 --- a/src/main/java/org/opengroup/osdu/core/common/status/DataSetDetailsPublisher.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.opengroup.osdu.core.common.status; - -import java.util.List; - -import org.opengroup.osdu.core.common.model.status.DataSetDetails; - -public interface DataSetDetailsPublisher { - void publishDataSetDetails(List dataSetDetailsList); -} diff --git a/src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java b/src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java new file mode 100644 index 0000000..e7c762a --- /dev/null +++ b/src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java @@ -0,0 +1,78 @@ +package org.opengroup.osdu.core.common.status; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.joda.time.DateTime; +import org.opengroup.osdu.core.common.logging.JaxRsDpsLog; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.status.DatasetDetails; +import org.opengroup.osdu.core.common.model.status.DatasetDetails.Properties; +import org.opengroup.osdu.core.common.model.status.DatasetType; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import lombok.RequiredArgsConstructor; + +@Lazy +@Component +@RequiredArgsConstructor +public class DatasetDetailsRequestBuilder { + + private static final String KIND = "status"; + + private final DpsHeaders dpsHeaders; + private final ObjectMapper mapper; + private final JaxRsDpsLog log; + + public DatasetDetails buildDatasetDetails(String datasetId, DatasetType datasetType, String datasetVersionId, + int recordCount) { + Properties properties = buildDatasetDetailsProperties(datasetId, datasetType, datasetVersionId, recordCount); + DatasetDetails datasetDetails = new DatasetDetails(); + datasetDetails.setKind(KIND); + datasetDetails.setProperties(properties); + return datasetDetails; + } + + public String createDatasetDetailsMessage(String datasetId, DatasetType datasetType, String datasetVersionId, + int recordCount) { + List statusDetailsList = new ArrayList<>(); + String message = ""; + DatasetDetails datasetDetails = buildDatasetDetails(datasetId, datasetType, datasetVersionId, recordCount); + statusDetailsList.add(datasetDetails); + + try { + message = mapper.writeValueAsString(statusDetailsList); + } catch (JsonProcessingException e) { + log.warning("Failed to convert Status Details list to String"); + } + return message; + } + + public Map createAttributesMap() { + Map attributesMap = new HashMap<>(); + + attributesMap.put(DpsHeaders.CORRELATION_ID, dpsHeaders.getCorrelationId()); + attributesMap.put(DpsHeaders.DATA_PARTITION_ID, dpsHeaders.getPartitionId()); + + return attributesMap; + } + + private Properties buildDatasetDetailsProperties(String datasetId, DatasetType datasetType, String datasetVersionId, + int recordCount) { + DatasetDetails datasetDetails = new DatasetDetails(); + Properties properties = datasetDetails.new Properties(); + properties.setCorrelationId(dpsHeaders.getCorrelationId()); + properties.setDatasetId(datasetId); + properties.setDatasetType(datasetType); + properties.setDatasetVersionId(datasetVersionId); + properties.setRecordCount(recordCount); + properties.setTimestamp(DateTime.now().toString()); + return properties; + } +} diff --git a/src/main/java/org/opengroup/osdu/core/common/status/IEventPublisher.java b/src/main/java/org/opengroup/osdu/core/common/status/IEventPublisher.java new file mode 100644 index 0000000..a87f6e0 --- /dev/null +++ b/src/main/java/org/opengroup/osdu/core/common/status/IEventPublisher.java @@ -0,0 +1,9 @@ +package org.opengroup.osdu.core.common.status; + +import java.util.Map; + +import org.opengroup.osdu.core.common.exception.CoreException; + +public interface IEventPublisher { + void publish(String message, Map attributesMap) throws CoreException; +} diff --git a/src/main/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilder.java b/src/main/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilder.java new file mode 100644 index 0000000..a179e6f --- /dev/null +++ b/src/main/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilder.java @@ -0,0 +1,77 @@ +package org.opengroup.osdu.core.common.status; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.joda.time.DateTime; +import org.opengroup.osdu.core.common.logging.JaxRsDpsLog; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.status.Status; +import org.opengroup.osdu.core.common.model.status.StatusDetails; +import org.opengroup.osdu.core.common.model.status.StatusDetails.Properties; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import lombok.RequiredArgsConstructor; + +@Lazy +@Component +@RequiredArgsConstructor +public class StatusDetailsRequestBuilder { + + private static final String KIND = "status"; + + private final DpsHeaders dpsHeaders; + private final ObjectMapper mapper; + private final JaxRsDpsLog log; + + public StatusDetails buildStatusDetails(String msg, String recordId, Status status, String stage, int errorCode) { + Properties properties = buildStatusProperties(msg, recordId, status, stage, errorCode); + StatusDetails statusDetails = new StatusDetails(); + statusDetails.setKind(KIND); + statusDetails.setProperties(properties); + return statusDetails; + } + + public String createStatusDetailsMessage(String msg, String recordId, Status status, String stage, int errorCode) { + List statusDetailsList = new ArrayList<>(); + String message = ""; + StatusDetails statusDetails = buildStatusDetails(msg, recordId, status, stage, errorCode); + statusDetailsList.add(statusDetails); + + try { + message = mapper.writeValueAsString(statusDetailsList); + } catch (JsonProcessingException e) { + log.warning("Failed to convert Status Details list to String"); + } + return message; + } + + public Map createAttributesMap() { + Map attributesMap = new HashMap<>(); + + attributesMap.put(DpsHeaders.CORRELATION_ID, dpsHeaders.getCorrelationId()); + attributesMap.put(DpsHeaders.DATA_PARTITION_ID, dpsHeaders.getPartitionId()); + + return attributesMap; + } + + private Properties buildStatusProperties(String msg, String recordId, Status status, String stage, int errorCode) { + StatusDetails statusDetails = new StatusDetails(); + Properties properties = statusDetails.new Properties(); + properties.setCorrelationId(dpsHeaders.getCorrelationId()); + properties.setErrorCode(errorCode); + properties.setMessage(msg); + properties.setRecordId(recordId); + properties.setStage(stage); + properties.setStatus(status); + properties.setTimestamp(DateTime.now().toString()); + properties.setUserEmail(dpsHeaders.getUserEmail()); + return properties; + } +} diff --git a/src/main/java/org/opengroup/osdu/core/common/status/StatusPublisher.java b/src/main/java/org/opengroup/osdu/core/common/status/StatusPublisher.java deleted file mode 100644 index 5e76d3c..0000000 --- a/src/main/java/org/opengroup/osdu/core/common/status/StatusPublisher.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.opengroup.osdu.core.common.status; - -import java.util.List; - -import org.opengroup.osdu.core.common.model.status.StatusDetails; - -public interface StatusPublisher { - void publishStatus(List statusDetailsList); -} -- GitLab From 7d94383141859b5d55b4e07956b2f5b9f373b6d4 Mon Sep 17 00:00:00 2001 From: ksahu Date: Wed, 16 Jun 2021 10:46:00 +0530 Subject: [PATCH 05/10] Corrected kind --- .../osdu/core/common/status/DatasetDetailsRequestBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java b/src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java index e7c762a..4cd90c9 100644 --- a/src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java +++ b/src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java @@ -24,7 +24,7 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class DatasetDetailsRequestBuilder { - private static final String KIND = "status"; + private static final String KIND = "datasetDetails"; private final DpsHeaders dpsHeaders; private final ObjectMapper mapper; -- GitLab From d67e0c6654c39a2254111248bce4a7a195945a46 Mon Sep 17 00:00:00 2001 From: ksahu Date: Thu, 17 Jun 2021 13:01:36 +0530 Subject: [PATCH 06/10] Added unit tests for builder classes --- .../DatasetDetailsRequestBuilderTest.java | 85 ++++++++++++++++++ .../StatusDetailsRequestBuilderTest.java | 86 +++++++++++++++++++ 2 files changed, 171 insertions(+) create mode 100644 src/test/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilderTest.java create mode 100644 src/test/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilderTest.java diff --git a/src/test/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilderTest.java b/src/test/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilderTest.java new file mode 100644 index 0000000..7077c58 --- /dev/null +++ b/src/test/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilderTest.java @@ -0,0 +1,85 @@ +package org.opengroup.osdu.core.common.status; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.mockito.Mockito.when; + +import java.util.Map; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Spy; +import org.mockito.runners.MockitoJUnitRunner; +import org.opengroup.osdu.core.common.logging.JaxRsDpsLog; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.status.DatasetDetails; +import org.opengroup.osdu.core.common.model.status.DatasetType; + +import com.fasterxml.jackson.databind.ObjectMapper; + +@RunWith(MockitoJUnitRunner.class) +public class DatasetDetailsRequestBuilderTest { + + private static final String DATA_PARTITION_ID = "data-partition-id"; + private static final String CORRELATION_ID = "correlation-id"; + private static final int RECORD_COUNT_1 = 1; + private static final String DATASET_VERSION_ID = "v1"; + private static final String DATASET_ID = "abc123"; + private static final String DATASET_DETAILS = "datasetDetails"; + + @Mock + private DpsHeaders dpsHeaders; + + @Spy + private ObjectMapper mapper = new ObjectMapper(); + + @Mock + private JaxRsDpsLog log; + + @InjectMocks + private DatasetDetailsRequestBuilder requestBuilder; + + @Before + public void setup() { + when(dpsHeaders.getCorrelationId()).thenReturn(CORRELATION_ID); + } + + @Test + public void testBuildDatasetDetails() { + DatasetDetails datasetDetails = requestBuilder.buildDatasetDetails(DATASET_ID, DatasetType.FILE, + DATASET_VERSION_ID, RECORD_COUNT_1); + + assertNotNull(datasetDetails); + assertNotNull(datasetDetails.getProperties()); + assertEquals(DATASET_DETAILS, datasetDetails.getKind()); + assertEquals(DATASET_ID, datasetDetails.getProperties().getDatasetId()); + assertEquals(DatasetType.FILE, datasetDetails.getProperties().getDatasetType()); + assertEquals(DATASET_VERSION_ID, datasetDetails.getProperties().getDatasetVersionId()); + assertEquals(RECORD_COUNT_1, datasetDetails.getProperties().getRecordCount()); + } + + @Test + public void testCreateDatasetDetailsMessage() { + String datasetDetailsAsString = requestBuilder.createDatasetDetailsMessage(DATASET_ID, DatasetType.FILE, + DATASET_ID, RECORD_COUNT_1); + + assertNotNull(datasetDetailsAsString); + assertFalse(datasetDetailsAsString.isEmpty()); + } + + @Test + public void testCreateAttributesMap() { + when(dpsHeaders.getPartitionId()).thenReturn(DATA_PARTITION_ID); + + Map attributesMap = requestBuilder.createAttributesMap(); + + assertNotNull(attributesMap); + assertEquals(2, attributesMap.size()); + assertEquals(DATA_PARTITION_ID, attributesMap.get(DpsHeaders.DATA_PARTITION_ID)); + assertEquals(CORRELATION_ID, attributesMap.get(DpsHeaders.CORRELATION_ID)); + } +} diff --git a/src/test/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilderTest.java b/src/test/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilderTest.java new file mode 100644 index 0000000..c3d99d3 --- /dev/null +++ b/src/test/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilderTest.java @@ -0,0 +1,86 @@ +package org.opengroup.osdu.core.common.status; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.mockito.Mockito.when; + +import java.util.Map; + +import org.apache.http.HttpStatus; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Spy; +import org.mockito.runners.MockitoJUnitRunner; +import org.opengroup.osdu.core.common.logging.JaxRsDpsLog; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.status.Status; +import org.opengroup.osdu.core.common.model.status.StatusDetails; + +import com.fasterxml.jackson.databind.ObjectMapper; + +@RunWith(MockitoJUnitRunner.class) +public class StatusDetailsRequestBuilderTest { + + private static final String DATA_PARTITION_ID = "data-partition-id"; + private static final String CORRELATION_ID = "correlation-id"; + private static final String STATUS = "status"; + private static final String STAGE = "STORAGE_SYNC"; + private static final String MSG = "message"; + private static final int BAD_REQUEST_ERROR_CODE = HttpStatus.SC_BAD_REQUEST; + private static final String RECORD_ID = "partition1:abc:1234"; + + @Mock + private DpsHeaders dpsHeaders; + + @Spy + private ObjectMapper mapper = new ObjectMapper(); + + @Mock + private JaxRsDpsLog log; + + @InjectMocks + private StatusDetailsRequestBuilder requestBuilder; + + @Before + public void setup() { + when(dpsHeaders.getCorrelationId()).thenReturn(CORRELATION_ID); + } + + @Test + public void testBuildDatasetDetails() { + StatusDetails statusDetails = requestBuilder.buildStatusDetails(MSG, RECORD_ID, Status.FAILED, STAGE, BAD_REQUEST_ERROR_CODE); + + assertNotNull(statusDetails); + assertNotNull(statusDetails.getProperties()); + assertEquals(STATUS, statusDetails.getKind()); + assertEquals(MSG, statusDetails.getProperties().getMessage()); + assertEquals(RECORD_ID, statusDetails.getProperties().getRecordId()); + assertEquals(Status.FAILED, statusDetails.getProperties().getStatus()); + assertEquals(STAGE, statusDetails.getProperties().getStage()); + assertEquals(BAD_REQUEST_ERROR_CODE, statusDetails.getProperties().getErrorCode()); + } + + @Test + public void testCreateDatasetDetailsMessage() { + String statusDetailsAsString = requestBuilder.createStatusDetailsMessage(MSG, RECORD_ID, Status.FAILED, STAGE, BAD_REQUEST_ERROR_CODE); + + assertNotNull(statusDetailsAsString); + assertFalse(statusDetailsAsString.isEmpty()); + } + + @Test + public void testCreateAttributesMap() { + when(dpsHeaders.getPartitionId()).thenReturn(DATA_PARTITION_ID); + + Map attributesMap = requestBuilder.createAttributesMap(); + + assertNotNull(attributesMap); + assertEquals(2, attributesMap.size()); + assertEquals(DATA_PARTITION_ID, attributesMap.get(DpsHeaders.DATA_PARTITION_ID)); + assertEquals(CORRELATION_ID, attributesMap.get(DpsHeaders.CORRELATION_ID)); + } +} \ No newline at end of file -- GitLab From 2ffdf9b1a8baab1f7537e616f423f33185827e06 Mon Sep 17 00:00:00 2001 From: ksahu Date: Thu, 17 Jun 2021 14:24:18 +0530 Subject: [PATCH 07/10] seperated exception handling logic --- .../common/status/DatasetDetailsRequestBuilder.java | 12 ++---------- .../common/status/StatusDetailsRequestBuilder.java | 13 +++---------- 2 files changed, 5 insertions(+), 20 deletions(-) diff --git a/src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java b/src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java index 4cd90c9..f98e4a8 100644 --- a/src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java +++ b/src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java @@ -6,7 +6,6 @@ import java.util.List; import java.util.Map; import org.joda.time.DateTime; -import org.opengroup.osdu.core.common.logging.JaxRsDpsLog; import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.common.model.status.DatasetDetails; import org.opengroup.osdu.core.common.model.status.DatasetDetails.Properties; @@ -28,7 +27,6 @@ public class DatasetDetailsRequestBuilder { private final DpsHeaders dpsHeaders; private final ObjectMapper mapper; - private final JaxRsDpsLog log; public DatasetDetails buildDatasetDetails(String datasetId, DatasetType datasetType, String datasetVersionId, int recordCount) { @@ -40,18 +38,12 @@ public class DatasetDetailsRequestBuilder { } public String createDatasetDetailsMessage(String datasetId, DatasetType datasetType, String datasetVersionId, - int recordCount) { + int recordCount) throws JsonProcessingException { List statusDetailsList = new ArrayList<>(); - String message = ""; DatasetDetails datasetDetails = buildDatasetDetails(datasetId, datasetType, datasetVersionId, recordCount); statusDetailsList.add(datasetDetails); - try { - message = mapper.writeValueAsString(statusDetailsList); - } catch (JsonProcessingException e) { - log.warning("Failed to convert Status Details list to String"); - } - return message; + return mapper.writeValueAsString(statusDetailsList); } public Map createAttributesMap() { diff --git a/src/main/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilder.java b/src/main/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilder.java index a179e6f..9359930 100644 --- a/src/main/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilder.java +++ b/src/main/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilder.java @@ -6,7 +6,6 @@ import java.util.List; import java.util.Map; import org.joda.time.DateTime; -import org.opengroup.osdu.core.common.logging.JaxRsDpsLog; import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.common.model.status.Status; import org.opengroup.osdu.core.common.model.status.StatusDetails; @@ -28,7 +27,6 @@ public class StatusDetailsRequestBuilder { private final DpsHeaders dpsHeaders; private final ObjectMapper mapper; - private final JaxRsDpsLog log; public StatusDetails buildStatusDetails(String msg, String recordId, Status status, String stage, int errorCode) { Properties properties = buildStatusProperties(msg, recordId, status, stage, errorCode); @@ -38,18 +36,13 @@ public class StatusDetailsRequestBuilder { return statusDetails; } - public String createStatusDetailsMessage(String msg, String recordId, Status status, String stage, int errorCode) { + public String createStatusDetailsMessage(String msg, String recordId, Status status, String stage, int errorCode) + throws JsonProcessingException { List statusDetailsList = new ArrayList<>(); - String message = ""; StatusDetails statusDetails = buildStatusDetails(msg, recordId, status, stage, errorCode); statusDetailsList.add(statusDetails); - try { - message = mapper.writeValueAsString(statusDetailsList); - } catch (JsonProcessingException e) { - log.warning("Failed to convert Status Details list to String"); - } - return message; + return mapper.writeValueAsString(statusDetailsList); } public Map createAttributesMap() { -- GitLab From 9e3ded1ae89e53bf4f5b0917cb61ec881b8b50ef Mon Sep 17 00:00:00 2001 From: ksahu Date: Thu, 17 Jun 2021 16:35:31 +0530 Subject: [PATCH 08/10] Added exception throw to junit test cases --- .../core/common/status/DatasetDetailsRequestBuilderTest.java | 3 ++- .../core/common/status/StatusDetailsRequestBuilderTest.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilderTest.java b/src/test/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilderTest.java index 7077c58..39ee0ff 100644 --- a/src/test/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilderTest.java +++ b/src/test/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilderTest.java @@ -19,6 +19,7 @@ import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.common.model.status.DatasetDetails; import org.opengroup.osdu.core.common.model.status.DatasetType; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @RunWith(MockitoJUnitRunner.class) @@ -63,7 +64,7 @@ public class DatasetDetailsRequestBuilderTest { } @Test - public void testCreateDatasetDetailsMessage() { + public void testCreateDatasetDetailsMessage() throws JsonProcessingException { String datasetDetailsAsString = requestBuilder.createDatasetDetailsMessage(DATASET_ID, DatasetType.FILE, DATASET_ID, RECORD_COUNT_1); diff --git a/src/test/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilderTest.java b/src/test/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilderTest.java index c3d99d3..962f9a1 100644 --- a/src/test/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilderTest.java +++ b/src/test/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilderTest.java @@ -20,6 +20,7 @@ import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.common.model.status.Status; import org.opengroup.osdu.core.common.model.status.StatusDetails; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @RunWith(MockitoJUnitRunner.class) @@ -65,7 +66,7 @@ public class StatusDetailsRequestBuilderTest { } @Test - public void testCreateDatasetDetailsMessage() { + public void testCreateDatasetDetailsMessage() throws JsonProcessingException { String statusDetailsAsString = requestBuilder.createStatusDetailsMessage(MSG, RECORD_ID, Status.FAILED, STAGE, BAD_REQUEST_ERROR_CODE); assertNotNull(statusDetailsAsString); -- GitLab From 0b10d0ddf061bb0173cc4c1c464c46e986d540a7 Mon Sep 17 00:00:00 2001 From: ksahu Date: Fri, 18 Jun 2021 12:33:07 +0530 Subject: [PATCH 09/10] added comments --- .../core/common/status/IEventPublisher.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/main/java/org/opengroup/osdu/core/common/status/IEventPublisher.java b/src/main/java/org/opengroup/osdu/core/common/status/IEventPublisher.java index a87f6e0..345529d 100644 --- a/src/main/java/org/opengroup/osdu/core/common/status/IEventPublisher.java +++ b/src/main/java/org/opengroup/osdu/core/common/status/IEventPublisher.java @@ -4,6 +4,31 @@ import java.util.Map; import org.opengroup.osdu.core.common.exception.CoreException; +/** + * Interface to publish message in event. + * + */ public interface IEventPublisher { + /** + * This method will publish message to the configured event using data partition + * id and correlation id in attributesMap. Message should be in json format. + * Attributes map should consist both data-partition-id and correlation-id. + * + *
+     * {@code
+     * Map attributesMap() = new HashMap<>();
+     * attributesMap.put("data-partition-id", "partitionId");
+     * attributesMap.put("correlation-id", "abc123");
+     *  
+     * String message = { "data": "value" };
+     *  
+     * iEventpublisher.publish(message, attributesMap);
+     * }
+     * 
+ * + * @param message + * @param attributesMap + * @throws CoreException + */ void publish(String message, Map attributesMap) throws CoreException; } -- GitLab From 0923aa59652880f124e3d750874ae85b90051440 Mon Sep 17 00:00:00 2001 From: Paresh Behede Date: Tue, 22 Jun 2021 11:19:13 +0000 Subject: [PATCH 10/10] Removing BATCH as dataset type as its not being accepted by everyone in community --- .../opengroup/osdu/core/common/model/status/DatasetType.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetType.java b/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetType.java index 331f2cf..251ea2c 100644 --- a/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetType.java +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetType.java @@ -2,6 +2,6 @@ package org.opengroup.osdu.core.common.model.status; public enum DatasetType { - FILE, FILE_COLLECTION, BATCH; + FILE, FILE_COLLECTION; } -- GitLab