You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ri...@apache.org on 2022/08/08 11:57:45 UTC

[incubator-streampipes] 02/03: [STREAMPIPES-565] Properly import data view widgets

This is an automated email from the ASF dual-hosted git repository.

riemer pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git

commit 189e6c2b6273b02fac5a3952a7632d9fb2a47f44
Author: Dominik Riemer <do...@gmail.com>
AuthorDate: Mon Aug 8 13:57:18 2022 +0200

    [STREAMPIPES-565] Properly import data view widgets
---
 .../streampipes/export/resolver/AbstractResolver.java    |  4 +++-
 .../streampipes/export/resolver/AdapterResolver.java     |  4 ++--
 .../streampipes/export/resolver/DashboardResolver.java   |  4 ++--
 .../export/resolver/DashboardWidgetResolver.java         |  4 ++--
 .../streampipes/export/resolver/DataSourceResolver.java  |  4 ++--
 .../streampipes/export/resolver/DataViewResolver.java    |  4 ++--
 .../export/resolver/DataViewWidgetResolver.java          |  7 ++++---
 .../streampipes/export/resolver/MeasurementResolver.java |  4 ++--
 .../streampipes/export/resolver/PipelineResolver.java    |  4 ++--
 .../streampipes/rest/impl/admin/DataImportResource.java  | 16 +++++++++++++---
 10 files changed, 34 insertions(+), 21 deletions(-)

diff --git a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/AbstractResolver.java b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/AbstractResolver.java
index 6b9689abd..8e085240f 100644
--- a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/AbstractResolver.java
+++ b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/AbstractResolver.java
@@ -32,9 +32,11 @@ import java.util.stream.Collectors;
 public abstract class AbstractResolver<T> {
 
   protected ObjectMapper spMapper;
+  protected ObjectMapper defaultMapper;
 
   public AbstractResolver() {
     this.spMapper = SerializationUtils.getSpObjectMapper();
+    this.defaultMapper = SerializationUtils.getDefaultObjectMapper();
   }
 
   public Set<ExportItem> resolve(Set<AssetLink> assetLinks) {
@@ -61,5 +63,5 @@ public abstract class AbstractResolver<T> {
 
   public abstract void writeDocument(String document) throws JsonProcessingException;
 
-  protected abstract T serializeDocument(String document) throws JsonProcessingException;
+  protected abstract T deserializeDocument(String document) throws JsonProcessingException;
 }
diff --git a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/AdapterResolver.java b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/AdapterResolver.java
index 2ad74c035..2598d9dc3 100644
--- a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/AdapterResolver.java
+++ b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/AdapterResolver.java
@@ -49,11 +49,11 @@ public class AdapterResolver extends AbstractResolver<AdapterDescription> {
 
   @Override
   public void writeDocument(String document) throws JsonProcessingException {
-    getNoSqlStore().getAdapterInstanceStorage().storeAdapter(serializeDocument(document));
+    getNoSqlStore().getAdapterInstanceStorage().storeAdapter(deserializeDocument(document));
   }
 
   @Override
-  protected AdapterDescription serializeDocument(String document) throws JsonProcessingException {
+  protected AdapterDescription deserializeDocument(String document) throws JsonProcessingException {
     return this.spMapper.readValue(document, AdapterDescription.class);
   }
 }
diff --git a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DashboardResolver.java b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DashboardResolver.java
index 1b3ea1348..467c8aa07 100644
--- a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DashboardResolver.java
+++ b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DashboardResolver.java
@@ -48,11 +48,11 @@ public class DashboardResolver extends AbstractResolver<DashboardModel> {
 
   @Override
   public void writeDocument(String document) throws JsonProcessingException {
-    getNoSqlStore().getDashboardStorage().storeDashboard(serializeDocument(document));
+    getNoSqlStore().getDashboardStorage().storeDashboard(deserializeDocument(document));
   }
 
   @Override
-  protected DashboardModel serializeDocument(String document) throws JsonProcessingException {
+  protected DashboardModel deserializeDocument(String document) throws JsonProcessingException {
     return this.spMapper.readValue(document, DashboardModel.class);
   }
 
diff --git a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DashboardWidgetResolver.java b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DashboardWidgetResolver.java
index 5740b6230..b8eb3b867 100644
--- a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DashboardWidgetResolver.java
+++ b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DashboardWidgetResolver.java
@@ -44,11 +44,11 @@ public class DashboardWidgetResolver extends AbstractResolver<DashboardWidgetMod
 
   @Override
   public void writeDocument(String document) throws JsonProcessingException {
-    getNoSqlStore().getDashboardWidgetStorage().storeDashboardWidget(serializeDocument(document));
+    getNoSqlStore().getDashboardWidgetStorage().storeDashboardWidget(deserializeDocument(document));
   }
 
   @Override
-  protected DashboardWidgetModel serializeDocument(String document) throws JsonProcessingException {
+  protected DashboardWidgetModel deserializeDocument(String document) throws JsonProcessingException {
     return this.spMapper.readValue(document, DashboardWidgetModel.class);
   }
 }
diff --git a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DataSourceResolver.java b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DataSourceResolver.java
index a218e1d93..6a79f3d7c 100644
--- a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DataSourceResolver.java
+++ b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DataSourceResolver.java
@@ -44,11 +44,11 @@ public class DataSourceResolver extends AbstractResolver<SpDataStream> {
 
   @Override
   public void writeDocument(String document) throws JsonProcessingException {
-    getNoSqlStore().getDataStreamStorage().createElement(serializeDocument(document));
+    getNoSqlStore().getDataStreamStorage().createElement(deserializeDocument(document));
   }
 
   @Override
-  protected SpDataStream serializeDocument(String document) throws JsonProcessingException {
+  protected SpDataStream deserializeDocument(String document) throws JsonProcessingException {
     return this.spMapper.readValue(document, SpDataStream.class);
   }
 }
diff --git a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DataViewResolver.java b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DataViewResolver.java
index ecaaa3e2e..47e946d3e 100644
--- a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DataViewResolver.java
+++ b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DataViewResolver.java
@@ -49,11 +49,11 @@ public class DataViewResolver extends AbstractResolver<DashboardModel> {
 
   @Override
   public void writeDocument(String document) throws JsonProcessingException {
-    getNoSqlStore().getDataExplorerDashboardStorage().storeDashboard(serializeDocument(document));
+    getNoSqlStore().getDataExplorerDashboardStorage().storeDashboard(deserializeDocument(document));
   }
 
   @Override
-  protected DashboardModel serializeDocument(String document) throws JsonProcessingException {
+  protected DashboardModel deserializeDocument(String document) throws JsonProcessingException {
     return this.spMapper.readValue(document, DashboardModel.class);
   }
 
diff --git a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DataViewWidgetResolver.java b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DataViewWidgetResolver.java
index bf46c0e3f..969312517 100644
--- a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DataViewWidgetResolver.java
+++ b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/DataViewWidgetResolver.java
@@ -44,11 +44,12 @@ public class DataViewWidgetResolver extends AbstractResolver<DataExplorerWidgetM
 
   @Override
   public void writeDocument(String document) throws JsonProcessingException {
-    getNoSqlStore().getDataExplorerWidgetStorage().storeDataExplorerWidget(serializeDocument(document));
+    getNoSqlStore().getDataExplorerWidgetStorage().storeDataExplorerWidget(deserializeDocument(document));
   }
 
   @Override
-  protected DataExplorerWidgetModel serializeDocument(String document) throws JsonProcessingException {
-    return this.spMapper.readValue(document, DataExplorerWidgetModel.class);
+  protected DataExplorerWidgetModel deserializeDocument(String document) throws JsonProcessingException {
+    return this.defaultMapper.readValue(document, DataExplorerWidgetModel.class);
   }
+
 }
diff --git a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/MeasurementResolver.java b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/MeasurementResolver.java
index f44b21741..ecde1338c 100644
--- a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/MeasurementResolver.java
+++ b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/MeasurementResolver.java
@@ -44,11 +44,11 @@ public class MeasurementResolver extends AbstractResolver<DataLakeMeasure> {
 
   @Override
   public void writeDocument(String document) throws JsonProcessingException {
-    getNoSqlStore().getDataLakeStorage().storeDataLakeMeasure(serializeDocument(document));
+    getNoSqlStore().getDataLakeStorage().storeDataLakeMeasure(deserializeDocument(document));
   }
 
   @Override
-  protected DataLakeMeasure serializeDocument(String document) throws JsonProcessingException {
+  protected DataLakeMeasure deserializeDocument(String document) throws JsonProcessingException {
     return this.spMapper.readValue(document, DataLakeMeasure.class);
   }
 }
diff --git a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/PipelineResolver.java b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/PipelineResolver.java
index 326278dcc..5ca897458 100644
--- a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/PipelineResolver.java
+++ b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/PipelineResolver.java
@@ -46,11 +46,11 @@ public class PipelineResolver extends AbstractResolver<Pipeline> {
 
   @Override
   public void writeDocument(String document) throws JsonProcessingException {
-    getNoSqlStore().getPipelineStorageAPI().storePipeline(serializeDocument(document));
+    getNoSqlStore().getPipelineStorageAPI().storePipeline(deserializeDocument(document));
   }
 
   @Override
-  protected Pipeline serializeDocument(String document) throws JsonProcessingException {
+  protected Pipeline deserializeDocument(String document) throws JsonProcessingException {
     return this.spMapper.readValue(document, Pipeline.class);
   }
 }
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/DataImportResource.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/DataImportResource.java
index 72feeb8d6..61b8b4f5b 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/DataImportResource.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/DataImportResource.java
@@ -24,6 +24,8 @@ import org.apache.streampipes.rest.core.base.impl.AbstractAuthGuardedRestResourc
 import org.apache.streampipes.rest.security.AuthConstants;
 import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
 import org.glassfish.jersey.media.multipart.FormDataParam;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Component;
 
@@ -41,6 +43,8 @@ import java.io.InputStream;
 @PreAuthorize(AuthConstants.IS_ADMIN_ROLE)
 public class DataImportResource extends AbstractAuthGuardedRestResource {
 
+  private static final Logger LOG = LoggerFactory.getLogger(DataImportResource.class);
+
   @Path("/preview")
   @POST
   @Consumes(MediaType.MULTIPART_FORM_DATA)
@@ -56,8 +60,14 @@ public class DataImportResource extends AbstractAuthGuardedRestResource {
   @Produces(MediaType.APPLICATION_JSON)
   public Response importData(@FormDataParam("file_upload") InputStream uploadedInputStream,
                              @FormDataParam("file_upload") FormDataContentDisposition fileDetail,
-                             @FormDataParam("configuration") AssetExportConfiguration exportConfiguration) throws IOException {
-    ImportManager.performImport(uploadedInputStream, exportConfiguration, getAuthenticatedUserSid());
-    return ok();
+                             @FormDataParam("configuration") AssetExportConfiguration exportConfiguration) {
+    try {
+      ImportManager.performImport(uploadedInputStream, exportConfiguration, getAuthenticatedUserSid());
+      return ok();
+    } catch (IOException e) {
+      LOG.error("An error occurred while importing resources", e);
+      return fail();
+    }
+
   }
 }