You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ze...@apache.org on 2021/10/05 19:38:53 UTC

[incubator-streampipes] 01/02: [STEAMPIPES-438] Remove adapter Id form backend

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

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

commit 0e89350e8b45de2651dac95045f468381d596d93
Author: Philipp Zehnder <ze...@fzi.de>
AuthorDate: Tue Oct 5 12:23:35 2021 +0200

    [STEAMPIPES-438] Remove adapter Id form backend
---
 .../master/management/AdapterMasterManagement.java |  29 +-
 .../AdapterTemplateMasterManagement.java           |   4 +-
 .../master/management/SourcesManagement.java       |  10 +-
 .../management/WorkerAdministrationManagement.java |   6 +-
 .../master/management/WorkerRestClient.java        |   8 +-
 .../management/AdapterMasterManagementTest.java    |   1 -
 .../master/management/SourcesManagementTest.java   |   4 +-
 .../master/management/WorkerRestClientTest.java    |  10 +-
 .../worker/init/AdapterWorkerContainer.java        |   1 +
 .../init/ConnectWorkerRegistrationService.java     |   2 +-
 .../container/worker/rest/GuessResource.java       |   2 +-
 .../connect/container/worker/utils/Utils.java      |   6 +-
 .../model/generic/GenericDataSetAdapter.java       |   4 +-
 .../model/generic/GenericDataStreamAdapter.java    |   4 +-
 .../model/connect/adapter/AdapterDescription.java  |  34 +-
 .../connect/adapter/AdapterStreamDescription.java  |   5 +-
 .../adapter/GenericAdapterSetDescription.java      |   2 +-
 .../adapter/GenericAdapterStreamDescription.java   |   1 -
 .../apache/streampipes/rest/ResetManagement.java   |   4 +-
 .../rest/impl/connect/AdapterResource.java         |   8 +-
 .../rest/impl/connect/WelcomePageMaster.java       |   2 +-
 .../builder/adapter/AdapterDescriptionBuilder.java |   4 +-
 .../serializers/json/AdapterSerializer.java        |   4 +-
 .../storage/couchdb/impl/AdapterStorageImpl.java   |   2 +-
 .../couchdb/impl/AdapterTemplateStorageImpl.java   |   2 +-
 ui/cypress/tests/adapter/machineDataSimulator.ts   |   4 +-
 ui/cypress/tests/adapter/persistInDataLake.ts      |   2 +-
 .../adapter-description.component.ts               |  81 ++--
 .../data-marketplace/data-marketplace.component.ts | 443 +++++++++++----------
 .../connect/services/data-marketplace.service.ts   | 146 +++----
 ui/src/app/core-model/gen/streampipes-model.ts     |   8 +-
 31 files changed, 408 insertions(+), 435 deletions(-)

diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/AdapterMasterManagement.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/AdapterMasterManagement.java
index c1c40ad..993a88b 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/AdapterMasterManagement.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/AdapterMasterManagement.java
@@ -97,6 +97,7 @@ public class AdapterMasterManagement {
 
     AdapterDescription encryptedAdapterDescription =
             new AdapterEncryptionService(new Cloner().adapterDescription(ad)).encrypt();
+
     // store in db
     String adapterId = adapterStorage.storeAdapter(encryptedAdapterDescription);
 
@@ -107,7 +108,7 @@ public class AdapterMasterManagement {
     }
 
     LOG.info("Install source (source URL: {} in backend", ad.getElementId());
-    SpDataStream storedDescription = new SourcesManagement().getAdapterDataStream(ad.getAdapterId());
+    SpDataStream storedDescription = new SourcesManagement().getAdapterDataStream(ad.getElementId());
     storedDescription.setCorrespondingAdapterId(adapterId);
     installDataSource(storedDescription, username);
 
@@ -128,7 +129,7 @@ public class AdapterMasterManagement {
 
     if (allAdapters != null && id != null) {
       for (AdapterDescription ad : allAdapters) {
-        if (id.equals(ad.getId())) {
+        if (id.equals(ad.getElementId())) {
           return ad;
         }
       }
@@ -137,24 +138,24 @@ public class AdapterMasterManagement {
     throw new AdapterException("Could not find adapter with id: " + id);
   }
 
-  public void deleteAdapter(String id) throws AdapterException {
-    //        // IF Stream adapter delete it
-    boolean isStreamAdapter = isStreamAdapter(id);
-    AdapterDescription ad = adapterStorage.getAdapter(id);
+  public void deleteAdapter(String elementId) throws AdapterException {
+    // IF Stream adapter delete it
+    boolean isStreamAdapter = isStreamAdapter(elementId);
+    AdapterDescription ad = adapterStorage.getAdapter(elementId);
 
     if (isStreamAdapter) {
       try {
-        stopStreamAdapter(id, ad.getSelectedEndpointUrl());
+        stopStreamAdapter(elementId, ad.getSelectedEndpointUrl());
       } catch (AdapterException e) {
-        LOG.info("Could not stop adapter: " + id);
+        LOG.info("Could not stop adapter: " + elementId);
         LOG.info(e.toString());
       }
     }
 
     String username = ad.getUserName();
 
-    adapterStorage.deleteAdapter(id);
-    LOG.info("Successfully deleted adapter: " + id);
+    adapterStorage.deleteAdapter(elementId);
+    LOG.info("Successfully deleted adapter: " + elementId);
 
     UserService userService = getUserService();
     IPipelineElementDescriptionStorageCache requestor = StorageManager.INSTANCE.getPipelineElementStorage();
@@ -184,11 +185,11 @@ public class AdapterMasterManagement {
     WorkerRestClient.stopSetAdapter(baseUrl, ad);
   }
 
-  public void stopStreamAdapter(String adapterId, String baseUrl) throws AdapterException {
-    AdapterDescription ad = adapterStorage.getAdapter(adapterId);
+  public void stopStreamAdapter(String elementId, String baseUrl) throws AdapterException {
+    AdapterDescription ad = adapterStorage.getAdapter(elementId);
 
-    if (!isStreamAdapter(adapterId)) {
-      throw new AdapterException("Adapter " + adapterId + "is not a stream adapter.");
+    if (!isStreamAdapter(elementId)) {
+      throw new AdapterException("Adapter " + elementId + "is not a stream adapter.");
     } else {
       WorkerRestClient.stopStreamAdapter(baseUrl, (AdapterStreamDescription) ad);
     }
diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/AdapterTemplateMasterManagement.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/AdapterTemplateMasterManagement.java
index e8bf239..b3df802 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/AdapterTemplateMasterManagement.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/AdapterTemplateMasterManagement.java
@@ -52,8 +52,6 @@ public class AdapterTemplateMasterManagement {
         String uri = adapterDescription.getUri() + UUID.randomUUID().toString();
         adapterDescription.setUri(uri);
         adapterDescription.setElementId(uri);
-        adapterDescription.setAdapterId(uri);
-
 
         if (adapterDescription instanceof GenericAdapterSetDescription) {
             String id = ((GenericAdapterSetDescription) adapterDescription).getFormatDescription().getElementId();
@@ -84,7 +82,7 @@ public class AdapterTemplateMasterManagement {
         }
 
         this.adapterTemplateStorage.storeAdapterTemplate(adapterDescription);
-        return adapterDescription.getId();
+        return adapterDescription.getElementId();
     }
 
 
diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/SourcesManagement.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/SourcesManagement.java
index b731aab..e48520e 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/SourcesManagement.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/SourcesManagement.java
@@ -68,8 +68,7 @@ public class SourcesManagement {
         adapterDescription.setDataSet(dataSet);
 
         String newId = adapterDescription.getUri() + "/streams/" + dataSet.getDatasetInvocationId();
-        adapterDescription.setUri(newId);
-        adapterDescription.setId(newId);
+        adapterDescription.setElementId(newId);
 
         AdapterSetDescription decryptedAdapterDescription =
                 (AdapterSetDescription) new Cloner().adapterDescription(adapterDescription);
@@ -81,8 +80,7 @@ public class SourcesManagement {
         AdapterSetDescription adapterDescription = (AdapterSetDescription) getAdapterDescriptionById(streamId);
 
         String newId = adapterDescription.getUri() + "/streams/" + runningInstanceId;
-        adapterDescription.setUri(newId);
-        adapterDescription.setId(newId);
+        adapterDescription.setElementId(newId);
 
         String newUrl = getAdapterUrl(streamId);
         WorkerRestClient.stopSetAdapter(newUrl, adapterDescription);
@@ -124,7 +122,7 @@ public class SourcesManagement {
             d.setType("set");
             streams.add(d);
             DataSourceDescriptionHtml dsd = new DataSourceDescriptionHtml("Adapter Stream",
-                    "This stream is generated by an StreamPipes Connect adapter. ID of adapter: " + ad.getId(), uri.toString(), streams);
+                    "This stream is generated by an StreamPipes Connect adapter. ID of adapter: " + ad.getElementId(), uri.toString(), streams);
             dsd.setType("source");
             dsd.setAppId(ad.getAppId());
             dsd.setEditable(!(ad.isInternallyManaged()));
@@ -140,7 +138,7 @@ public class SourcesManagement {
         AdapterDescription adapterDescription = null;
         List<AdapterDescription> allAdapters = adapterStorage.getAllAdapters();
         for (AdapterDescription a : allAdapters) {
-            if (a.getAdapterId().equals(id)) {
+            if (a.getElementId().equals(id)) {
                 adapterDescription = a;
             }
         }
diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/WorkerAdministrationManagement.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/WorkerAdministrationManagement.java
index 74d627e..097a0f4 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/WorkerAdministrationManagement.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/WorkerAdministrationManagement.java
@@ -41,6 +41,7 @@ public class WorkerAdministrationManagement {
         this.adapterMasterManagement = new AdapterMasterManagement();
     }
 
+    // TODO refactor and test this function
     public void register(ConnectWorkerContainer connectWorker) {
         // Check if already registered
 
@@ -48,12 +49,14 @@ public class WorkerAdministrationManagement {
                 this.connectionWorkerContainerStorage.getAllConnectWorkerContainers();
 
         boolean alreadyRegistered = false;
+
+        // Delete old description if it was registred before
         for (ConnectWorkerContainer c : allConnectWorkerContainers) {
             if (c.getServiceGroup().equals(connectWorker.getServiceGroup())) {
                 boolean adaptersChanged = false;
 
                 for (AdapterDescription a : c.getAdapters()) {
-                    if (connectWorker.getAdapters().stream().noneMatch(ad -> ad.getAdapterId().equals(a.getAdapterId()))) {
+                    if (connectWorker.getAdapters().stream().noneMatch(ad -> ad.getElementId().equals(a.getElementId()))) {
                         adaptersChanged = true;
                     }
                 }
@@ -73,6 +76,7 @@ public class WorkerAdministrationManagement {
             }
         }
 
+        // TODO I am not sure if this is correct
         // IF NOT REGISTERED
         // Store Connect Worker in DB
         if (!alreadyRegistered) {
diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/WorkerRestClient.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/WorkerRestClient.java
index 04d33d0..2043732 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/WorkerRestClient.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/WorkerRestClient.java
@@ -54,16 +54,16 @@ public class WorkerRestClient {
         String url = endpointUrl + WorkerPaths.getStreamInvokePath();
 
         startAdapter(url, adapterStreamDescription);
-        updateStreamAdapterStatus(adapterStreamDescription.getId(), true);
+        updateStreamAdapterStatus(adapterStreamDescription.getElementId(), true);
     }
 
     public static void stopStreamAdapter(String baseUrl, AdapterStreamDescription adapterStreamDescription) throws AdapterException {
         String url = baseUrl + WorkerPaths.getStreamStopPath();
 
-        AdapterDescription ad = getAdapterDescriptionById(new AdapterStorageImpl(), adapterStreamDescription.getUri());
+        AdapterDescription ad = getAdapterDescriptionById(new AdapterStorageImpl(), adapterStreamDescription.getElementId());
 
         stopAdapter(ad, url);
-        updateStreamAdapterStatus(adapterStreamDescription.getId(), false);
+        updateStreamAdapterStatus(adapterStreamDescription.getElementId(), false);
     }
 
     public static void invokeSetAdapter(String baseUrl, AdapterSetDescription adapterSetDescription) throws AdapterException {
@@ -200,7 +200,7 @@ public class WorkerRestClient {
         AdapterDescription adapterDescription = null;
         List<AdapterDescription> allAdapters = adapterStorage.getAllAdapters();
         for (AdapterDescription a : allAdapters) {
-            if (a.getUri().endsWith(id)) {
+            if (a.getElementId().endsWith(id)) {
                 adapterDescription = a;
             }
         }
diff --git a/streampipes-connect-container-master/src/test/java/org/apache/streampipes/connect/container/master/management/AdapterMasterManagementTest.java b/streampipes-connect-container-master/src/test/java/org/apache/streampipes/connect/container/master/management/AdapterMasterManagementTest.java
index 19ca5f5..7b6dfb4 100644
--- a/streampipes-connect-container-master/src/test/java/org/apache/streampipes/connect/container/master/management/AdapterMasterManagementTest.java
+++ b/streampipes-connect-container-master/src/test/java/org/apache/streampipes/connect/container/master/management/AdapterMasterManagementTest.java
@@ -49,7 +49,6 @@ public class AdapterMasterManagementTest {
         AdapterStorageImpl adapterStorage = mock(AdapterStorageImpl.class);
         when(adapterStorage.getAllAdapters()).thenReturn(adapterDescriptions);
 
-        String id = "http://t.id";
         AdapterMasterManagement adapterMasterManagement = new AdapterMasterManagement(adapterStorage);
 
         adapterMasterManagement.getAdapter("id2");
diff --git a/streampipes-connect-container-master/src/test/java/org/apache/streampipes/connect/container/master/management/SourcesManagementTest.java b/streampipes-connect-container-master/src/test/java/org/apache/streampipes/connect/container/master/management/SourcesManagementTest.java
index d4af051..b007fcb 100644
--- a/streampipes-connect-container-master/src/test/java/org/apache/streampipes/connect/container/master/management/SourcesManagementTest.java
+++ b/streampipes-connect-container-master/src/test/java/org/apache/streampipes/connect/container/master/management/SourcesManagementTest.java
@@ -138,9 +138,7 @@ public class SourcesManagementTest {
     private List<AdapterDescription> getAdapterDescriptionList() {
         GenericAdapterSetDescription adapterSetDescription = new GenericAdapterSetDescription();
 
-        adapterSetDescription.setUri(ID);
-        adapterSetDescription.setId(ID);
-
+        adapterSetDescription.setElementId(ID);
 
         return Arrays.asList(adapterSetDescription);
     }
diff --git a/streampipes-connect-container-master/src/test/java/org/apache/streampipes/connect/container/master/management/WorkerRestClientTest.java b/streampipes-connect-container-master/src/test/java/org/apache/streampipes/connect/container/master/management/WorkerRestClientTest.java
index 2336f50..401f894 100644
--- a/streampipes-connect-container-master/src/test/java/org/apache/streampipes/connect/container/master/management/WorkerRestClientTest.java
+++ b/streampipes-connect-container-master/src/test/java/org/apache/streampipes/connect/container/master/management/WorkerRestClientTest.java
@@ -58,7 +58,7 @@ public class WorkerRestClientTest {
         when(WorkerRestClient.class, "stopStreamAdapter", anyString(), any()).thenCallRealMethod();
         when(WorkerPaths.class, "getStreamStopPath").thenReturn(expectedUrl);
         GenericAdapterStreamDescription description = new GenericAdapterStreamDescription();
-        description.setId("id1");
+        description.setElementId("id1");
 
         WorkerRestClient.stopStreamAdapter("", description);
 
@@ -73,7 +73,7 @@ public class WorkerRestClientTest {
         when(WorkerRestClient.class, "stopStreamAdapter", anyString(), any()).thenCallRealMethod();
 
         GenericAdapterStreamDescription description = new GenericAdapterStreamDescription();
-        description.setId("id1");
+        description.setElementId("id1");
 
         WorkerRestClient.stopStreamAdapter("", description);
 
@@ -88,7 +88,7 @@ public class WorkerRestClientTest {
         when(WorkerPaths.class, "getSetInvokePath").thenReturn(expectedUrl);
 
         GenericAdapterSetDescription description = new GenericAdapterSetDescription();
-        description.setId("id1");
+        description.setElementId("id1");
         WorkerRestClient.invokeSetAdapter("", description);
 
         verifyStatic(WorkerRestClient.class, times(1));
@@ -113,7 +113,7 @@ public class WorkerRestClientTest {
         when(WorkerPaths.class, "getSetStopPath").thenReturn(expectedUrl);
 
         GenericAdapterSetDescription description = new GenericAdapterSetDescription();
-        description.setId("id1");
+        description.setElementId("id1");
         WorkerRestClient.stopSetAdapter("", description);
 
         verifyStatic(WorkerRestClient.class, times(1));
@@ -127,7 +127,7 @@ public class WorkerRestClientTest {
         when(WorkerRestClient.class, "stopSetAdapter", anyString(), any()).thenCallRealMethod();
 
         GenericAdapterSetDescription description = new GenericAdapterSetDescription();
-        description.setId("id1");
+        description.setElementId("id1");
         WorkerRestClient.stopSetAdapter("", description);
 
     }
diff --git a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/init/AdapterWorkerContainer.java b/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/init/AdapterWorkerContainer.java
index 9b88cc9..6f868dd 100644
--- a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/init/AdapterWorkerContainer.java
+++ b/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/init/AdapterWorkerContainer.java
@@ -33,6 +33,7 @@ import java.util.List;
 @Configuration
 @EnableAutoConfiguration
 @Import({AdapterWorkerContainerResourceConfig.class})
+@Deprecated
 public abstract class AdapterWorkerContainer extends StreamPipesExtensionsServiceBase {
 
   private static final Logger LOG = LoggerFactory.getLogger(AdapterWorkerContainer.class);
diff --git a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/init/ConnectWorkerRegistrationService.java b/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/init/ConnectWorkerRegistrationService.java
index 7ecf3e5..44a242e 100644
--- a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/init/ConnectWorkerRegistrationService.java
+++ b/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/init/ConnectWorkerRegistrationService.java
@@ -36,7 +36,7 @@ public class ConnectWorkerRegistrationService {
     while (!connected) {
       List<String> coreServices = getConnectMasterUrl();
       if (coreServices.size() > 0) {
-        String masterUrl = getConnectMasterUrl().get(0) + "/streampipes-backend";
+        String masterUrl = coreServices.get(0) + "/streampipes-backend";
         LOG.info("Trying to connect to master: " + masterUrl);
         connected = MasterRestClient.register(masterUrl,
                 new ConnectWorkerDescriptionProvider().getContainerDescription(serviceGroup));
diff --git a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/GuessResource.java b/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/GuessResource.java
index 228dac8..ed51a40 100644
--- a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/GuessResource.java
+++ b/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/GuessResource.java
@@ -65,7 +65,7 @@ public class GuessResource extends AbstractSharedRestInterface {
           logger.error("Error while parsing events: ", e);
           return serverError(Notifications.error(e.getMessage()));
       } catch (Exception e) {
-          logger.error("Error while guess schema for AdapterDescription: " + adapterDescription.getAdapterId(), e);
+          logger.error("Error while guess schema for AdapterDescription: " + adapterDescription.getElementId(), e);
           return serverError(Notifications.error(e.getMessage()));
       }
 
diff --git a/streampipes-connect-container-worker/src/test/java/org/apache/streampipes/connect/container/worker/utils/Utils.java b/streampipes-connect-container-worker/src/test/java/org/apache/streampipes/connect/container/worker/utils/Utils.java
index 2b2b467..40665f8 100644
--- a/streampipes-connect-container-worker/src/test/java/org/apache/streampipes/connect/container/worker/utils/Utils.java
+++ b/streampipes-connect-container-worker/src/test/java/org/apache/streampipes/connect/container/worker/utils/Utils.java
@@ -30,8 +30,7 @@ public class Utils {
     public static AdapterStreamDescription getMinimalStreamAdapter() {
         AdapterStreamDescription result = new GenericAdapterStreamDescription();
         String id = "http://t.de/";
-        result.setUri(id);
-        result.setId(id);
+        result.setElementId(id);
         result.setRules(new ArrayList<>());
 
         return result;
@@ -40,8 +39,7 @@ public class Utils {
     public static AdapterSetDescription getMinimalSetAdapter() {
         AdapterSetDescription result = new GenericAdapterSetDescription();
         String id = "http://t.de/";
-        result.setUri(id);
-        result.setId(id);
+        result.setElementId(id);
 
         return result;
     }
diff --git a/streampipes-connect/src/main/java/org/apache/streampipes/connect/adapter/model/generic/GenericDataSetAdapter.java b/streampipes-connect/src/main/java/org/apache/streampipes/connect/adapter/model/generic/GenericDataSetAdapter.java
index 88c3172..70acd19 100644
--- a/streampipes-connect/src/main/java/org/apache/streampipes/connect/adapter/model/generic/GenericDataSetAdapter.java
+++ b/streampipes-connect/src/main/java/org/apache/streampipes/connect/adapter/model/generic/GenericDataSetAdapter.java
@@ -47,8 +47,8 @@ public class GenericDataSetAdapter extends GenericAdapter<GenericAdapterSetDescr
     @Override
     public GenericAdapterSetDescription declareModel() {
         GenericAdapterSetDescription adapterDescription = new GenericAdapterSetDescription();
-        adapterDescription.setAdapterId(GenericAdapterSetDescription.ID);
-        adapterDescription.setUri(GenericAdapterSetDescription.ID);
+//        adapterDescription.setAdapterId(GenericAdapterSetDescription.ID);
+//        adapterDescription.setUri(GenericAdapterSetDescription.ID);
         adapterDescription.setAppId(GenericAdapterSetDescription.ID);
         return adapterDescription;
     }
diff --git a/streampipes-connect/src/main/java/org/apache/streampipes/connect/adapter/model/generic/GenericDataStreamAdapter.java b/streampipes-connect/src/main/java/org/apache/streampipes/connect/adapter/model/generic/GenericDataStreamAdapter.java
index a2efade..87588e6 100644
--- a/streampipes-connect/src/main/java/org/apache/streampipes/connect/adapter/model/generic/GenericDataStreamAdapter.java
+++ b/streampipes-connect/src/main/java/org/apache/streampipes/connect/adapter/model/generic/GenericDataStreamAdapter.java
@@ -46,8 +46,8 @@ public class GenericDataStreamAdapter extends GenericAdapter<GenericAdapterStrea
     @Override
     public GenericAdapterStreamDescription declareModel() {
         GenericAdapterStreamDescription adapterDescription = new GenericAdapterStreamDescription();
-        adapterDescription.setAdapterId(GenericAdapterStreamDescription.ID);
-        adapterDescription.setUri(GenericAdapterStreamDescription.ID);
+//        adapterDescription.setAdapterId(GenericAdapterStreamDescription.ID);
+//        adapterDescription.setUri(GenericAdapterStreamDescription.ID);
         adapterDescription.setAppId(GenericAdapterStreamDescription.ID);
         return adapterDescription;
     }
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/AdapterDescription.java b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/AdapterDescription.java
index 5f88c8b..e76574d 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/AdapterDescription.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/AdapterDescription.java
@@ -42,14 +42,7 @@ import java.util.List;
 @TsModel
 public abstract class AdapterDescription extends NamedStreamPipesEntity {
 
-//    @RdfProperty("sp:couchDBId")
-//    @JsonProperty("couchDBId")
-//    private @SerializedName("_id") String id;
-//
-//    @JsonProperty("_rev")
-//    private @SerializedName("_rev") String rev;
-
-    private String adapterId;
+//    private String adapterId;
 
     private String userName;
 
@@ -88,8 +81,8 @@ public abstract class AdapterDescription extends NamedStreamPipesEntity {
         this.eventGrounding.setTransportProtocols(Arrays.asList(tpKafka,tpJms,tpMqtt));
     }
 
-    public AdapterDescription(String uri, String name, String description) {
-        super(uri, name, description);
+    public AdapterDescription(String elementId, String name, String description) {
+        super(elementId, name, description);
         this.rules = new ArrayList<>();
         this.category = new ArrayList<>();
     }
@@ -97,7 +90,7 @@ public abstract class AdapterDescription extends NamedStreamPipesEntity {
 
     public AdapterDescription(AdapterDescription other) {
         super(other);
-        this.adapterId = other.getAdapterId();
+//        this.adapterId = other.getAdapterId();
         //this.id = other.getId();
         //this.rev = other.getRev();
         this.config = new Cloner().staticProperties(other.getConfig());
@@ -112,16 +105,7 @@ public abstract class AdapterDescription extends NamedStreamPipesEntity {
         if (other.getEventGrounding() != null) this.eventGrounding = new EventGrounding(other.getEventGrounding());
     }
 
-
-
-    public String getId() {
-        return this.elementId;
-    }
-
-    public void setId(String id) {
-        this.elementId = id;
-    }
-
+    // TODO check if it can be deleted
     public String getRev() {
         return this.rev;
     }
@@ -130,14 +114,6 @@ public abstract class AdapterDescription extends NamedStreamPipesEntity {
         this.rev = rev;
     }
 
-    public String getAdapterId() {
-        return adapterId;
-    }
-
-    public void setAdapterId(String adapterId) {
-        this.adapterId = adapterId;
-    }
-
     public String getUserName() {
         return userName;
     }
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/AdapterStreamDescription.java b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/AdapterStreamDescription.java
index 7713ff8..ac098c9 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/AdapterStreamDescription.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/AdapterStreamDescription.java
@@ -34,9 +34,8 @@ public abstract class AdapterStreamDescription extends AdapterDescription {
         super();
     }
 
-    public AdapterStreamDescription(String uri, String name, String description) {
-        super(uri, name, description);
-        setAdapterId(uri);
+    public AdapterStreamDescription(String elementId, String name, String description) {
+        super(elementId, name, description);
     }
 
     public AdapterStreamDescription(AdapterStreamDescription other) {
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/GenericAdapterSetDescription.java b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/GenericAdapterSetDescription.java
index e195459..2acd048 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/GenericAdapterSetDescription.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/GenericAdapterSetDescription.java
@@ -39,7 +39,7 @@ public class GenericAdapterSetDescription extends AdapterSetDescription implemen
 
     public GenericAdapterSetDescription() {
         super(ID, "GenericAdapterSetDescription", "");
-        setAdapterId(ID);
+//        setAdapterId(ID);
     }
 
 
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/GenericAdapterStreamDescription.java b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/GenericAdapterStreamDescription.java
index 1a8239b..98aea2c 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/GenericAdapterStreamDescription.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/GenericAdapterStreamDescription.java
@@ -36,7 +36,6 @@ public class GenericAdapterStreamDescription extends AdapterStreamDescription im
 
     public GenericAdapterStreamDescription() {
         super(ID, "GenericAdapterStreamDescription", "");
-        setAdapterId(ID);
     }
 
     public GenericAdapterStreamDescription(FormatDescription formatDescription, ProtocolStreamDescription protocolDescription) {
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/ResetManagement.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/ResetManagement.java
index d0b77ed..52721d9 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/ResetManagement.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/ResetManagement.java
@@ -71,9 +71,9 @@ public class ResetManagement {
             List<AdapterDescription> allAdapters = adapterMasterManagement.getAllAdapters();
             allAdapters.forEach(adapterDescription -> {
                 try {
-                    adapterMasterManagement.deleteAdapter(adapterDescription.getId());
+                    adapterMasterManagement.deleteAdapter(adapterDescription.getElementId());
                 } catch (AdapterException e) {
-                    logger.error("Failed to delete adapter with id: " + adapterDescription.getAdapterId(), e);
+                    logger.error("Failed to delete adapter with id: " + adapterDescription.getElementId(), e);
                 }
             });
         } catch (AdapterException e) {
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/AdapterResource.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/AdapterResource.java
index e1009e0..bbebb2e 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/AdapterResource.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/AdapterResource.java
@@ -51,7 +51,7 @@ public class AdapterResource extends AbstractAdapterResource<AdapterMasterManage
     public Response addAdapter(AdapterDescription adapterDescription) {
         String username = getAuthenticatedUsername();
         String adapterId;
-        LOG.info("User: " + username + " starts adapter " + adapterDescription.getAdapterId());
+        LOG.info("User: " + username + " starts adapter " + adapterDescription.getElementId());
 
         try {
             String workerBaseUrl = workerUrlProvider.getWorkerBaseUrl(adapterDescription.getAppId());
@@ -116,13 +116,13 @@ public class AdapterResource extends AbstractAdapterResource<AdapterMasterManage
     @JacksonSerialized
     @Path("/{id}")
     @Produces(MediaType.APPLICATION_JSON)
-    public Response deleteAdapter(@PathParam("id") String adapterId) {
+    public Response deleteAdapter(@PathParam("id") String elementId) {
 
         try {
-            managementService.deleteAdapter(adapterId);
+            managementService.deleteAdapter(elementId);
             return ok(Notifications.success("Adapter deleted."));
         } catch (AdapterException e) {
-            LOG.error("Error while deleting adapter with id " + adapterId, e);
+            LOG.error("Error while deleting adapter with id " + elementId, e);
             return ok(Notifications.error(e.getMessage()));
         }
     }
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/WelcomePageMaster.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/WelcomePageMaster.java
index 1dd5b12..46e82e1 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/WelcomePageMaster.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/WelcomePageMaster.java
@@ -78,7 +78,7 @@ public class WelcomePageMaster extends AbstractAdapterResource<AdapterMasterMana
 
 		try {
 			for (AdapterDescription ad : managementService.getAllAdapters()) {
-				canvas.li().write(ad.getAdapterId())._li();
+				canvas.li().write(ad.getElementId())._li();
 				canvas.ul().li().write("Kafka Topic: " + GroundingService.extractTopic(ad))._li()._ul();
 			}
 		} catch (AdapterException e) {
diff --git a/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/builder/adapter/AdapterDescriptionBuilder.java b/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/builder/adapter/AdapterDescriptionBuilder.java
index d6792f6..7df2e40 100644
--- a/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/builder/adapter/AdapterDescriptionBuilder.java
+++ b/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/builder/adapter/AdapterDescriptionBuilder.java
@@ -30,13 +30,13 @@ public abstract class AdapterDescriptionBuilder<BU extends
 
   protected AdapterDescriptionBuilder(String id, T element) {
     super(id, element);
-    this.elementDescription.setAdapterId(id);
+//    this.elementDescription.setAdapterId(id);
   }
 
   protected AdapterDescriptionBuilder(String id, String label, String description,
                                    T adapterTypeInstance) {
     super(id, label, description, adapterTypeInstance);
-    this.elementDescription.setAdapterId(id);
+//    this.elementDescription.setAdapterId(id);
   }
 
   public AdapterDescriptionBuilder<BU, T> category(AdapterType... categories) {
diff --git a/streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/AdapterSerializer.java b/streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/AdapterSerializer.java
index b13cdd8..b5fd815 100644
--- a/streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/AdapterSerializer.java
+++ b/streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/AdapterSerializer.java
@@ -54,8 +54,8 @@ public class AdapterSerializer implements JsonSerializer<AdapterDescription>, Js
       result.add("type", new JsonPrimitive(src.getClass().getCanonicalName()));
       result.add("field_type", new JsonPrimitive(src.getClass().getCanonicalName()));
       result.add("properties", GsonSerializer.getGson().toJsonTree(src));
-      if (src.getId() != null) {
-        result.add("_id", new JsonPrimitive(src.getId()));
+      if (src.getElementId() != null) {
+        result.add("_id", new JsonPrimitive(src.getElementId()));
       }
       if (src.getRev() != null) {
         result.add("_rev", new JsonPrimitive(src.getRev()));
diff --git a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/AdapterStorageImpl.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/AdapterStorageImpl.java
index 1970a09..8dd1fec 100644
--- a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/AdapterStorageImpl.java
+++ b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/AdapterStorageImpl.java
@@ -65,7 +65,7 @@ public class AdapterStorageImpl extends AbstractDao<AdapterDescription> implemen
     public void deleteAdapter(String adapterId) {
 
         AdapterDescription adapterDescription = getAdapter(adapterId);
-        couchDbClientSupplier.get().remove(adapterDescription.getId(), adapterDescription.getRev());
+        couchDbClientSupplier.get().remove(adapterDescription.getElementId(), adapterDescription.getRev());
 
     }
 }
diff --git a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/AdapterTemplateStorageImpl.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/AdapterTemplateStorageImpl.java
index c93f7c7..99d5373 100644
--- a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/AdapterTemplateStorageImpl.java
+++ b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/AdapterTemplateStorageImpl.java
@@ -65,6 +65,6 @@ public class AdapterTemplateStorageImpl extends AbstractDao<AdapterDescription>
   @Override
   public void deleteAdapterTemplate(String adapterId) {
     AdapterDescription adapterDescription = getAdapterTemplate(adapterId);
-    couchDbClientSupplier.get().remove(adapterDescription.getId(), adapterDescription.getRev());
+    couchDbClientSupplier.get().remove(adapterDescription.getElementId(), adapterDescription.getRev());
   }
 }
diff --git a/ui/cypress/tests/adapter/machineDataSimulator.ts b/ui/cypress/tests/adapter/machineDataSimulator.ts
index 41137f2..f2849f6 100644
--- a/ui/cypress/tests/adapter/machineDataSimulator.ts
+++ b/ui/cypress/tests/adapter/machineDataSimulator.ts
@@ -29,8 +29,8 @@ describe('Test Random Data Simulator Stream Adapter', () => {
       .create('Machine_Data_Simulator')
       .setName('Machine Data Simulator Test')
       .addInput('input', 'wait-time-ms', '1000')
-      .setTimestampProperty('timestamp')
-      .setStoreInDataLake()
+      // .setTimestampProperty('Timestamp')
+      // .setStoreInDataLake()
       .build();
 
     AdapterUtils.testSpecificStreamAdapter(adapterInput);
diff --git a/ui/cypress/tests/adapter/persistInDataLake.ts b/ui/cypress/tests/adapter/persistInDataLake.ts
index 031595f..6745cf4 100644
--- a/ui/cypress/tests/adapter/persistInDataLake.ts
+++ b/ui/cypress/tests/adapter/persistInDataLake.ts
@@ -31,7 +31,7 @@ describe('Test File Stream Adapter', () => {
       .create('Machine_Data_Simulator')
       .setName('Machine Data Simulator Test')
       .addInput('input', 'wait-time-ms', '1000')
-      .setTimestampProperty('timestamp')
+      .setTimestampProperty('Timestamp')
       .setStoreInDataLake()
       .build();
 
diff --git a/ui/src/app/connect/components/data-marketplace/adapter-description/adapter-description.component.ts b/ui/src/app/connect/components/data-marketplace/adapter-description/adapter-description.component.ts
index e059169..799d78c 100644
--- a/ui/src/app/connect/components/data-marketplace/adapter-description/adapter-description.component.ts
+++ b/ui/src/app/connect/components/data-marketplace/adapter-description/adapter-description.component.ts
@@ -16,21 +16,21 @@
  *
  */
 
-import {Component, EventEmitter, Input, Output} from '@angular/core';
-import {ConnectService} from '../../../services/connect.service';
-import {DataMarketplaceService} from "../../../services/data-marketplace.service";
-import {AdapterExportDialog} from '../../../dialog/adapter-export/adapter-export-dialog.component';
-import {MatDialog} from '@angular/material/dialog';
-import {AdapterDescription} from "../../../../core-model/gen/streampipes-model";
-import {PanelType} from "../../../../core-ui/dialog/base-dialog/base-dialog.model";
-import {DialogService} from "../../../../core-ui/dialog/base-dialog/base-dialog.service";
+import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
+import { ConnectService } from '../../../services/connect.service';
+import { DataMarketplaceService } from '../../../services/data-marketplace.service';
+import { AdapterExportDialog } from '../../../dialog/adapter-export/adapter-export-dialog.component';
+import { MatDialog } from '@angular/material/dialog';
+import { AdapterDescription } from '../../../../core-model/gen/streampipes-model';
+import { PanelType } from '../../../../core-ui/dialog/base-dialog/base-dialog.model';
+import { DialogService } from '../../../../core-ui/dialog/base-dialog/base-dialog.service';
 
 @Component({
   selector: 'sp-adapter-description',
   templateUrl: './adapter-description.component.html',
-  styleUrls: ['./adapter-description.component.scss'],
+  styleUrls: ['./adapter-description.component.scss']
 })
-export class AdapterDescriptionComponent {
+export class AdapterDescriptionComponent implements OnInit {
 
   @Input()
   adapter: AdapterDescription;
@@ -42,25 +42,28 @@ export class AdapterDescriptionComponent {
   createTemplateEmitter: EventEmitter<AdapterDescription> = new EventEmitter<AdapterDescription>();
 
   adapterToDelete: string;
-  deleting: boolean = false;
-  className: string = "";
-  isDataSetDescription: boolean = false;
-  isDataStreamDescription: boolean = false;
-  isRunningAdapter: boolean = false;
+  deleting = false;
+  className = '';
+  isDataSetDescription = false;
+  isDataStreamDescription = false;
+  isRunningAdapter = false;
   adapterLabel: string;
 
   constructor(private connectService: ConnectService,
               private dataMarketplaceService: DataMarketplaceService,
               private dialogService: DialogService,
-              public dialog: MatDialog) {}
+              public dialog: MatDialog) {
+  }
 
   ngOnInit() {
-    if (this.adapter.name == null) this.adapter.name = "";
-      this.isDataSetDescription = this.connectService.isDataSetDescription(this.adapter);
-      this.isDataStreamDescription = this.connectService.isDataStreamDescription(this.adapter);
-      this.isRunningAdapter = (this.adapter.id != undefined && !(this.adapter as any).isTemplate);
-      this.adapterLabel = this.adapter.name.split(' ').join('_');
-      this.className = this.getClassName();
+    if (this.adapter.name == null) {
+      this.adapter.name = '';
+    }
+    this.isDataSetDescription = this.connectService.isDataSetDescription(this.adapter);
+    this.isDataStreamDescription = this.connectService.isDataStreamDescription(this.adapter);
+    this.isRunningAdapter = (this.adapter.elementId !== undefined && !(this.adapter as any).isTemplate);
+    this.adapterLabel = this.adapter.name.split(' ').join('_');
+    this.className = this.getClassName();
   }
 
   isGenericDescription(): boolean {
@@ -72,36 +75,36 @@ export class AdapterDescriptionComponent {
   }
 
   shareAdapterTemplate(adapter: AdapterDescription): void {
-    this.dialogService.open(AdapterExportDialog,{
+    this.dialogService.open(AdapterExportDialog, {
       panelType: PanelType.STANDARD_PANEL,
-      title: "Export adapter template",
-      width: "50vw",
+      title: 'Export adapter template',
+      width: '50vw',
       data: {
-        "adapter": adapter
+        'adapter': adapter
       }
     });
   }
 
   deleteAdapterTemplate(adapter: AdapterDescription): void {
-      this.adapterToDelete = adapter.id;
-      this.dataMarketplaceService.deleteAdapterTemplate(adapter).subscribe(res => {
-          this.adapterToDelete = undefined;
-          this.updateAdapterEmitter.emit();
-          this.deleting = false;
-      });
+    this.adapterToDelete = adapter.elementId;
+    this.dataMarketplaceService.deleteAdapterTemplate(adapter).subscribe(res => {
+      this.adapterToDelete = undefined;
+      this.updateAdapterEmitter.emit();
+      this.deleting = false;
+    });
   }
 
   createTemplate(adapter: AdapterDescription): void {
-      this.createTemplateEmitter.emit(adapter);
+    this.createTemplateEmitter.emit(adapter);
   }
 
   getClassName() {
-    let className = this.isRunningAdapter ? "adapter-box" : "adapter-description-box";
+    let className = this.isRunningAdapter ? 'adapter-box' : 'adapter-description-box';
 
     if (this.isDataSetDescription) {
-      className += " adapter-box-set";
+      className += ' adapter-box-set';
     } else {
-      className +=" adapter-box-stream";
+      className += ' adapter-box-stream';
     }
 
     return className;
@@ -112,11 +115,11 @@ export class AdapterDescriptionComponent {
   }
 
   getIconUrl() {
-    //TODO Use "this.adapter.includesAssets" if boolean demoralizing is working
+    // TODO Use "this.adapter.includesAssets" if boolean demoralizing is working
     if (this.adapter.includedAssets.length > 0) {
-      return this.dataMarketplaceService.getAssetUrl(this.adapter.appId) + "/icon";
+      return this.dataMarketplaceService.getAssetUrl(this.adapter.appId) + '/icon';
     } else {
-      return 'assets/img/connect/' + this.adapter.iconUrl;
+      return `assets/img/connect/${this.adapter.iconUrl}`;
     }
   }
 }
diff --git a/ui/src/app/connect/components/data-marketplace/data-marketplace.component.ts b/ui/src/app/connect/components/data-marketplace/data-marketplace.component.ts
index f11f6ca..2d0a49e 100644
--- a/ui/src/app/connect/components/data-marketplace/data-marketplace.component.ts
+++ b/ui/src/app/connect/components/data-marketplace/data-marketplace.component.ts
@@ -16,230 +16,233 @@
  *
  */
 
-import {Component, EventEmitter, OnInit, Output} from '@angular/core';
-import {DataMarketplaceService} from '../../services/data-marketplace.service';
-import {ShepherdService} from "../../../services/tour/shepherd.service";
-import {ConnectService} from '../../services/connect.service';
-import {FilterPipe} from '../../filter/filter.pipe';
-import {AdapterUploadDialog} from '../../dialog/adapter-upload/adapter-upload-dialog.component';
+import { Component, EventEmitter, OnInit, Output } from '@angular/core';
+import { DataMarketplaceService } from '../../services/data-marketplace.service';
+import { ShepherdService } from '../../../services/tour/shepherd.service';
+import { ConnectService } from '../../services/connect.service';
+import { FilterPipe } from '../../filter/filter.pipe';
+import { AdapterUploadDialog } from '../../dialog/adapter-upload/adapter-upload-dialog.component';
 import {
-    AdapterDescription,
-    AdapterDescriptionUnion,
-    AdapterSetDescription,
-    AdapterStreamDescription,
-    EventSchema,
-    SpDataSet,
-    SpDataStream
-} from "../../../core-model/gen/streampipes-model";
-import {PanelType} from "../../../core-ui/dialog/base-dialog/base-dialog.model";
-import {DialogService} from "../../../core-ui/dialog/base-dialog/base-dialog.service";
+  AdapterDescription,
+  AdapterDescriptionUnion,
+  AdapterSetDescription,
+  AdapterStreamDescription,
+  EventSchema,
+  SpDataSet,
+  SpDataStream
+} from '../../../core-model/gen/streampipes-model';
+import { PanelType } from '../../../core-ui/dialog/base-dialog/base-dialog.model';
+import { DialogService } from '../../../core-ui/dialog/base-dialog/base-dialog.service';
 
 @Component({
-    selector: 'sp-data-marketplace',
-    templateUrl: './data-marketplace.component.html',
-    styleUrls: ['./data-marketplace.component.scss']
+  selector: 'sp-data-marketplace',
+  templateUrl: './data-marketplace.component.html',
+  styleUrls: ['./data-marketplace.component.scss']
 })
 export class DataMarketplaceComponent implements OnInit {
-    adapterDescriptions: AdapterDescriptionUnion[];
-    newAdapterFromDescription: AdapterDescriptionUnion;
-    filteredAdapterDescriptions: AdapterDescriptionUnion[];
-    adapters: AdapterDescriptionUnion[];
-    filteredAdapters: AdapterDescriptionUnion[];
-    visibleAdapters: AdapterDescriptionUnion[];
-
-    @Output()
-    selectAdapterEmitter: EventEmitter<AdapterDescriptionUnion> = new EventEmitter<AdapterDescriptionUnion>();
-
-    selectedIndex: number = 0;
-    filterTerm: string = "";
-    pipe: FilterPipe = new FilterPipe();
-    adapterTypes: string[] = ['All types', 'Data Set', 'Data Stream'];
-    selectedType: string = "All types";
-
-    adapterCategories: any;
-    selectedCategory: any = "All";
-
-    adaptersLoading: boolean = true;
-    adapterLoadingError: boolean = false;
-
-    constructor(private dataMarketplaceService: DataMarketplaceService,
-                private ShepherdService: ShepherdService,
-                private connectService: ConnectService,
-                private dialogService: DialogService) {
-    }
-
-    ngOnInit() {
-        this.updateDescriptionsAndRunningAdatpers();
-        this.loadAvailableTypeCategories();
-        this.visibleAdapters = this.adapters;
-    }
-
-    loadAvailableTypeCategories() {
-        this.dataMarketplaceService.getAdapterCategories().subscribe(res => {
-            this.adapterCategories = res;
-            this.adapterCategories.unshift({label: "All categories", description: "", code: "All"});
-        });
-    }
-
-    updateDescriptionsAndRunningAdatpers() {
-        this.getAdapterDescriptions();
-        this.getAdaptersRunning();
-    }
-
-    getAdapterDescriptions(): void {
-        this.adaptersLoading = true;
-        this.adapterDescriptions = [];
-
-        this.dataMarketplaceService
-            .getGenericAndSpecificAdapterDescriptions()
-            .subscribe((allAdapters) => {
-                this.adapterDescriptions = this.adapterDescriptions.concat(allAdapters[0]);
-                this.adapterDescriptions = this.adapterDescriptions.concat(allAdapters[1]);
-                this.adapterDescriptions
-                    .sort((a, b) => a.name.localeCompare(b.name));
-                this.filteredAdapterDescriptions = this.adapterDescriptions;
-                this.adaptersLoading = false;
-            }, error => {
-                console.log(error);
-                this.adaptersLoading = false;
-                this.adapterLoadingError = true;
-            });
-
-        this.dataMarketplaceService.getAdapterTemplates().subscribe(adapterTemplates => {
-            adapterTemplates.forEach(function (adapterTemplate) {
-                (adapterTemplate as any).isTemplate = true;
-            });
-
-            this.adapterDescriptions = this.adapterDescriptions.concat(adapterTemplates);
-            this.adapterDescriptions
-                .sort((a, b) => a.name.localeCompare(b.name));
-            this.filteredAdapterDescriptions = this.adapterDescriptions;
-        });
-    }
-
-    getAdaptersRunning(): void {
-        this.dataMarketplaceService.getAdapters().subscribe(adapters => {
-            this.adapters = adapters;
-            this.filteredAdapters = this.adapters;
-        });
-    }
-
-    selectedIndexChange(index: number) {
-        this.selectedIndex = index;
-    }
-
-    startAdapterTutorial() {
-        this.ShepherdService.startAdapterTour();
-    }
-
-    startAdapterTutorial2() {
-        this.ShepherdService.startAdapterTour2();
-    }
-
-    startAdapterTutorial3() {
-        this.ShepherdService.startAdapterTour3();
-    }
-
-    selectAdapter(adapterDescription: AdapterDescriptionUnion) {
-        this.newAdapterFromDescription = this.dataMarketplaceService.cloneAdapterDescription(adapterDescription);
-        (this.newAdapterFromDescription as any).templateTitle = this.newAdapterFromDescription.name;
-        this.newAdapterFromDescription.name = "";
-        this.newAdapterFromDescription.description = "";
-        if (this.newAdapterFromDescription instanceof AdapterStreamDescription) {
-
-            // Create new SpDataStream and EventSchema if not already exists, e.g. in adapter template
-            if (this.newAdapterFromDescription.dataStream == undefined) {
-                this.newAdapterFromDescription.dataStream = new SpDataStream();
-                this.newAdapterFromDescription.dataStream["@class"] = "org.apache.streampipes.model.SpDataStream";
-                this.newAdapterFromDescription.dataStream.eventSchema = new EventSchema();
-                this.newAdapterFromDescription.dataStream.eventSchema["@class"] = "org.apache.streampipes.model.schema.EventSchema";
-            }
-        }
-        if (this.newAdapterFromDescription instanceof AdapterSetDescription) {
-
-            // Create new SpDataSet and EventSchema if not already exists, e.g. in adapter template
-            if (this.newAdapterFromDescription.dataSet == undefined || this.newAdapterFromDescription.dataSet["@class"] == undefined    ) {
-                this.newAdapterFromDescription.dataSet = new SpDataSet();
-                this.newAdapterFromDescription.dataSet["@class"] = "org.apache.streampipes.model.SpDataSet";
-                this.newAdapterFromDescription.dataSet.eventSchema = new EventSchema();
-                this.newAdapterFromDescription.dataSet.eventSchema["@class"] = "org.apache.streampipes.model.schema.EventSchema";
-            }
-        }
-        this.ShepherdService.trigger("select-adapter");
-    }
-
-    templateFromRunningAdapter(adapter: AdapterDescriptionUnion) {
-        adapter.id = undefined;
-        adapter._rev = undefined;
-        this.selectedIndexChange(0);
-        this.selectAdapter(adapter);
-
-    }
-
-    removeSelection() {
-        this.newAdapterFromDescription = undefined;
-    }
-
-    updateFilterTerm(inputValue) {
-        this.filterTerm = inputValue;
-    }
-
-    downloadAllAdapterTemplates() {
-        var adapterTemplates: AdapterDescription[] = [];
-        this.adapterDescriptions.forEach(function (adapterTemplate) {
-            if ((adapterTemplate as any).isTemplate) {
-                delete adapterTemplate['userName'];
-                adapterTemplates.push(adapterTemplate);
-            }
-        });
-
-        let data = "data:text/json;charset=utf-8," +encodeURIComponent(JSON.stringify(adapterTemplates, null, 2));
-        let downloader = document.createElement('a');
-
-        downloader.setAttribute('href', data);
-        downloader.setAttribute('download', 'all-adapter-templates.json');
-        downloader.click();
-    }
-
-    uploadAdapterTemplates() {
-        let dialogRef = this.dialogService.open(AdapterUploadDialog,{
-            panelType: PanelType.STANDARD_PANEL,
-            title: "Upload adapter templates",
-            width: "50vw"
-        });
-
-        dialogRef.afterClosed().subscribe(result => {
-            this.getAdapterDescriptions()
-        });
-    }
-
-    filterAdapter(event) {
-        let filteredAdapterTypes = this.filterAdapterType(this.adapterDescriptions);
-        let filteredAdapterTemplateTypes = this.filterAdapterType(this.adapters);
-
-        let filteredAdapterCategories = this.filterAdapterCategory(filteredAdapterTypes);
-        let filteredAdapterTemplateCategories = this.filterAdapterCategory(filteredAdapterTemplateTypes);
-
-        this.filteredAdapterDescriptions = filteredAdapterCategories;
-        this.filteredAdapters = filteredAdapterTemplateCategories;
-    }
-
-    filterAdapterCategory(currentElements: AdapterDescriptionUnion[]): AdapterDescriptionUnion[] {
-        if (this.selectedCategory == this.adapterCategories[0].code) {
-            return currentElements;
-        } else {
-            return currentElements.filter(adapterDescription => adapterDescription.category.indexOf(this.selectedCategory) != -1);
-        }
-    }
-
-    filterAdapterType(currentElements: AdapterDescriptionUnion[]): AdapterDescriptionUnion[] {
-        if (this.selectedType == this.adapterTypes[0]) {
-            return currentElements;
-        } else if (this.selectedType == this.adapterTypes[1]) {
-            return currentElements.filter(adapterDescription => this.connectService.isDataSetDescription(adapterDescription));
-        } else if (this.selectedType == this.adapterTypes[2]) {
-            return currentElements.filter(adapterDescription => !this.connectService.isDataSetDescription(adapterDescription));
-        }
-    }
+  adapterDescriptions: AdapterDescriptionUnion[];
+  newAdapterFromDescription: AdapterDescriptionUnion;
+  filteredAdapterDescriptions: AdapterDescriptionUnion[];
+  adapters: AdapterDescriptionUnion[];
+  filteredAdapters: AdapterDescriptionUnion[];
+  visibleAdapters: AdapterDescriptionUnion[];
+
+  @Output()
+  selectAdapterEmitter: EventEmitter<AdapterDescriptionUnion> = new EventEmitter<AdapterDescriptionUnion>();
+
+  selectedIndex = 0;
+  filterTerm = '';
+  pipe: FilterPipe = new FilterPipe();
+  adapterTypes: string[] = ['All types', 'Data Set', 'Data Stream'];
+  selectedType = 'All types';
+
+  adapterCategories: any;
+  selectedCategory: any = 'All';
+
+  adaptersLoading = true;
+  adapterLoadingError = false;
+
+  constructor(private dataMarketplaceService: DataMarketplaceService,
+              private shepherdService: ShepherdService,
+              private connectService: ConnectService,
+              private dialogService: DialogService) {
+  }
+
+  ngOnInit() {
+    this.updateDescriptionsAndRunningAdatpers();
+    this.loadAvailableTypeCategories();
+    this.visibleAdapters = this.adapters;
+  }
+
+  loadAvailableTypeCategories() {
+    this.dataMarketplaceService.getAdapterCategories().subscribe(res => {
+      this.adapterCategories = res;
+      this.adapterCategories.unshift({ label: 'All categories', description: '', code: 'All' });
+    });
+  }
+
+  updateDescriptionsAndRunningAdatpers() {
+    this.getAdapterDescriptions();
+    this.getAdaptersRunning();
+  }
+
+  getAdapterDescriptions(): void {
+    this.adaptersLoading = true;
+    this.adapterDescriptions = [];
+
+    this.dataMarketplaceService
+      .getGenericAndSpecificAdapterDescriptions()
+      .subscribe((allAdapters) => {
+        this.adapterDescriptions = this.adapterDescriptions.concat(allAdapters[0]);
+        this.adapterDescriptions = this.adapterDescriptions.concat(allAdapters[1]);
+        this.adapterDescriptions
+          .sort((a, b) => a.name.localeCompare(b.name));
+        this.filteredAdapterDescriptions = this.adapterDescriptions;
+        this.adaptersLoading = false;
+      }, error => {
+        console.log(error);
+        this.adaptersLoading = false;
+        this.adapterLoadingError = true;
+      });
+
+    this.dataMarketplaceService.getAdapterTemplates().subscribe(adapterTemplates => {
+      adapterTemplates.forEach((adapterTemplate) => {
+        (adapterTemplate as any).isTemplate = true;
+      });
+
+      this.adapterDescriptions = this.adapterDescriptions.concat(adapterTemplates);
+      this.adapterDescriptions
+        .sort((a, b) => a.name.localeCompare(b.name));
+      this.filteredAdapterDescriptions = this.adapterDescriptions;
+    });
+  }
+
+  getAdaptersRunning(): void {
+    this.dataMarketplaceService.getAdapters().subscribe(adapters => {
+      this.adapters = adapters;
+      this.filteredAdapters = this.adapters;
+    });
+  }
+
+  selectedIndexChange(index: number) {
+    this.selectedIndex = index;
+  }
+
+  startAdapterTutorial() {
+    this.shepherdService.startAdapterTour();
+  }
+
+  startAdapterTutorial2() {
+    this.shepherdService.startAdapterTour2();
+  }
+
+  startAdapterTutorial3() {
+    this.shepherdService.startAdapterTour3();
+  }
+
+  selectAdapter(adapterDescription: AdapterDescriptionUnion) {
+    this.newAdapterFromDescription = this.dataMarketplaceService.cloneAdapterDescription(adapterDescription);
+    (this.newAdapterFromDescription as any).templateTitle = this.newAdapterFromDescription.name;
+    this.newAdapterFromDescription.name = '';
+    this.newAdapterFromDescription.description = '';
+    if (this.newAdapterFromDescription instanceof AdapterStreamDescription) {
+
+      // Create new SpDataStream and EventSchema if not already exists, e.g. in adapter template
+      // tslint:disable-next-line:triple-equals
+      if (this.newAdapterFromDescription.dataStream == undefined) {
+        this.newAdapterFromDescription.dataStream = new SpDataStream();
+        this.newAdapterFromDescription.dataStream['@class'] = 'org.apache.streampipes.model.SpDataStream';
+        this.newAdapterFromDescription.dataStream.eventSchema = new EventSchema();
+        this.newAdapterFromDescription.dataStream.eventSchema['@class'] = 'org.apache.streampipes.model.schema.EventSchema';
+      }
+    }
+    if (this.newAdapterFromDescription instanceof AdapterSetDescription) {
+
+      // Create new SpDataSet and EventSchema if not already exists, e.g. in adapter template
+      // tslint:disable-next-line:triple-equals
+      if (this.newAdapterFromDescription.dataSet == undefined ||
+        this.newAdapterFromDescription.dataSet['@class'] === undefined) {
+        this.newAdapterFromDescription.dataSet = new SpDataSet();
+        this.newAdapterFromDescription.dataSet['@class'] = 'org.apache.streampipes.model.SpDataSet';
+        this.newAdapterFromDescription.dataSet.eventSchema = new EventSchema();
+        this.newAdapterFromDescription.dataSet.eventSchema['@class'] = 'org.apache.streampipes.model.schema.EventSchema';
+      }
+    }
+    this.shepherdService.trigger('select-adapter');
+  }
+
+  templateFromRunningAdapter(adapter: AdapterDescriptionUnion) {
+    adapter.elementId = undefined;
+    adapter._rev = undefined;
+    this.selectedIndexChange(0);
+    this.selectAdapter(adapter);
+
+  }
+
+  removeSelection() {
+    this.newAdapterFromDescription = undefined;
+  }
+
+  updateFilterTerm(inputValue) {
+    this.filterTerm = inputValue;
+  }
+
+  downloadAllAdapterTemplates() {
+    const adapterTemplates: AdapterDescription[] = [];
+    this.adapterDescriptions.forEach((adapterTemplate) => {
+      if ((adapterTemplate as any).isTemplate) {
+        delete adapterTemplate['userName'];
+        adapterTemplates.push(adapterTemplate);
+      }
+    });
+
+    const data = 'data:text/json;charset=utf-8,' + encodeURIComponent(JSON.stringify(adapterTemplates, null, 2));
+    const downloader = document.createElement('a');
+
+    downloader.setAttribute('href', data);
+    downloader.setAttribute('download', 'all-adapter-templates.json');
+    downloader.click();
+  }
+
+  uploadAdapterTemplates() {
+    const dialogRef = this.dialogService.open(AdapterUploadDialog, {
+      panelType: PanelType.STANDARD_PANEL,
+      title: 'Upload adapter templates',
+      width: '50vw'
+    });
+
+    dialogRef.afterClosed().subscribe(result => {
+      this.getAdapterDescriptions();
+    });
+  }
+
+  filterAdapter(event) {
+    const filteredAdapterTypes = this.filterAdapterType(this.adapterDescriptions);
+    const filteredAdapterTemplateTypes = this.filterAdapterType(this.adapters);
+
+    const filteredAdapterCategories = this.filterAdapterCategory(filteredAdapterTypes);
+    const filteredAdapterTemplateCategories = this.filterAdapterCategory(filteredAdapterTemplateTypes);
+
+    this.filteredAdapterDescriptions = filteredAdapterCategories;
+    this.filteredAdapters = filteredAdapterTemplateCategories;
+  }
+
+  filterAdapterCategory(currentElements: AdapterDescriptionUnion[]): AdapterDescriptionUnion[] {
+    if (this.selectedCategory === this.adapterCategories[0].code) {
+      return currentElements;
+    } else {
+      return currentElements.filter(adapterDescription => adapterDescription.category.indexOf(this.selectedCategory) != -1);
+    }
+  }
+
+  filterAdapterType(currentElements: AdapterDescriptionUnion[]): AdapterDescriptionUnion[] {
+    if (this.selectedType === this.adapterTypes[0]) {
+      return currentElements;
+    } else if (this.selectedType === this.adapterTypes[1]) {
+      return currentElements.filter(adapterDescription => this.connectService.isDataSetDescription(adapterDescription));
+    } else if (this.selectedType === this.adapterTypes[2]) {
+      return currentElements.filter(adapterDescription => !this.connectService.isDataSetDescription(adapterDescription));
+    }
+  }
 
 }
diff --git a/ui/src/app/connect/services/data-marketplace.service.ts b/ui/src/app/connect/services/data-marketplace.service.ts
index 8df76ab..9f1a9b7 100644
--- a/ui/src/app/connect/services/data-marketplace.service.ts
+++ b/ui/src/app/connect/services/data-marketplace.service.ts
@@ -27,7 +27,8 @@ import {
   AdapterDescriptionUnion,
   EventSchema,
   GenericAdapterSetDescription,
-  GenericAdapterStreamDescription, Message,
+  GenericAdapterStreamDescription,
+  Message,
   ProtocolDescription,
   ProtocolDescriptionList,
   SpDataSet,
@@ -42,19 +43,21 @@ import { PlatformServicesCommons } from '../../platform-services/apis/commons.se
 export class DataMarketplaceService {
 
   constructor(
-      private http: HttpClient,
-      private authStatusService: AuthStatusService,
-      private connectService: ConnectService,
-      private platformServicesCommons: PlatformServicesCommons) {
+    private http: HttpClient,
+    private authStatusService: AuthStatusService,
+    private connectService: ConnectService,
+    private platformServicesCommons: PlatformServicesCommons) {
   }
 
   get connectPath() {
-    return this.platformServicesCommons.apiBasePath() + '/connect';
+    return `${this.platformServicesCommons.apiBasePath()}/connect`;
   }
 
   getAdapterDescriptions(): Observable<AdapterDescriptionUnion[]> {
     return this.requestAdapterDescriptions('/master/description/adapters').pipe(map(response => {
-      return (response as any[]).map(resp => AdapterDescription.fromDataUnion(resp)).filter(ad => this.connectService.isSpecificDescription(ad));
+      return (response as any[])
+        .map(resp => AdapterDescription.fromDataUnion(resp))
+        .filter(ad => this.connectService.isSpecificDescription(ad));
     }));
   }
 
@@ -68,101 +71,98 @@ export class DataMarketplaceService {
 
   requestAdapterDescriptions(path: string): Observable<AdapterDescriptionUnion[]> {
     return this.http
-        .get(
-            this.connectPath +
-            path
-        )
-        .pipe(map(response => {
-          const adapterDescriptionList: AdapterDescriptionList = AdapterDescriptionList.fromData(response as AdapterDescriptionList);
-          return adapterDescriptionList.list;
-        }));
+      .get(
+        this.connectPath +
+        path
+      )
+      .pipe(map(response => {
+        const adapterDescriptionList: AdapterDescriptionList = AdapterDescriptionList.fromData(response as AdapterDescriptionList);
+        return adapterDescriptionList.list;
+      }));
   }
 
   stopAdapter(adapter: AdapterDescriptionUnion): Observable<Message> {
     return this.http.post(this.adapterMasterUrl
-        + adapter.id
-        + '/stop', {})
-        .pipe(map(response => Message.fromData(response as any)));
+      + adapter.elementId
+      + '/stop', {})
+      .pipe(map(response => Message.fromData(response as any)));
   }
 
   startAdapter(adapter: AdapterDescriptionUnion): Observable<Message> {
     return this.http.post(this.adapterMasterUrl
-        + adapter.id
-        + '/start', {})
-        .pipe(map(response => Message.fromData(response as any)));
+      + adapter.elementId
+      + '/start', {})
+      .pipe(map(response => Message.fromData(response as any)));
   }
 
   get adapterMasterUrl() {
-    return this.connectPath
-        + '/master/adapters/';
+    return `${this.connectPath}/master/adapters/`;
   }
 
-  deleteAdapter(adapter: AdapterDescription): Observable<Object> {
+  deleteAdapter(adapter: AdapterDescription): Observable<any> {
     return this.deleteRequest(adapter, '/master/adapters/');
   }
 
-  deleteAdapterTemplate(adapter: AdapterDescription): Observable<Object> {
+  deleteAdapterTemplate(adapter: AdapterDescription): Observable<any> {
     return this.deleteRequest(adapter, '/master/adapters/template/');
   }
 
-  getAdapterCategories(): Observable<Object> {
+  getAdapterCategories(): Observable<any> {
     return this.http.get(
-        this.baseUrl +
-        '/api/v2/categories/adapter');
+      `${this.baseUrl}/api/v2/categories/adapter`);
   }
 
   private deleteRequest(adapter: AdapterDescription, url: string) {
     return this.http.delete(
-        this.connectPath +
-        url +
-        adapter.id
+      this.connectPath +
+      url +
+      adapter.elementId
     );
   }
 
   getProtocols(): Observable<AdapterDescriptionUnion[]> {
     return this.http
-        .get(
-            this.connectPath +
-            '/master/description/protocols'
-        )
-        .pipe(map(response => {
-          const adapterDescriptions: AdapterDescriptionUnion[] = [];
-          const protocols: ProtocolDescription[] = (ProtocolDescriptionList.fromData(response as ProtocolDescriptionList)).list;
-
-          for (const protocol of protocols) {
-            let newAdapterDescription: AdapterDescriptionUnion;
-            if (protocol.sourceType === 'SET') {
-              newAdapterDescription = new GenericAdapterSetDescription();
-              newAdapterDescription['@class'] = 'org.apache.streampipes.model.connect.adapter.GenericAdapterSetDescription';
-              newAdapterDescription.dataSet = new SpDataSet();
-              newAdapterDescription.dataSet.eventSchema = new EventSchema();
-            } else if (protocol.sourceType === 'STREAM') {
-              newAdapterDescription = new GenericAdapterStreamDescription();
-              newAdapterDescription['@class'] = 'org.apache.streampipes.model.connect.adapter.GenericAdapterStreamDescription';
-              newAdapterDescription.dataStream = new SpDataStream();
-              newAdapterDescription.dataStream.eventSchema = new EventSchema();
-            }
-            newAdapterDescription.appId = protocol.appId;
-            newAdapterDescription.name = protocol.name;
-            newAdapterDescription.description = protocol.description;
-            newAdapterDescription.iconUrl = protocol.iconUrl;
-            newAdapterDescription.uri = newAdapterDescription.elementId;
-            newAdapterDescription.category = protocol.category;
-            newAdapterDescription.includedAssets = protocol.includedAssets;
-            newAdapterDescription.includesAssets = protocol.includesAssets;
-            newAdapterDescription.includedLocales = protocol.includedLocales;
-            newAdapterDescription.includesLocales = protocol.includesLocales;
-
-            if (
-                newAdapterDescription instanceof GenericAdapterSetDescription ||
-                newAdapterDescription instanceof GenericAdapterStreamDescription
-            ) {
-              newAdapterDescription.protocolDescription = protocol;
-            }
-            adapterDescriptions.push(newAdapterDescription);
+      .get(
+        `${this.connectPath}/master/description/protocols`
+      )
+      .pipe(map(response => {
+        const adapterDescriptions: AdapterDescriptionUnion[] = [];
+        const protocols: ProtocolDescription[] = (ProtocolDescriptionList.fromData(response as ProtocolDescriptionList)).list;
+
+        for (const protocol of protocols) {
+          let newAdapterDescription: AdapterDescriptionUnion;
+          if (protocol.sourceType === 'SET') {
+            newAdapterDescription = new GenericAdapterSetDescription();
+            newAdapterDescription['@class'] = 'org.apache.streampipes.model.connect.adapter.GenericAdapterSetDescription';
+            newAdapterDescription.dataSet = new SpDataSet();
+            newAdapterDescription.dataSet.eventSchema = new EventSchema();
+          } else if (protocol.sourceType === 'STREAM') {
+            newAdapterDescription = new GenericAdapterStreamDescription();
+            newAdapterDescription['@class'] = 'org.apache.streampipes.model.connect.adapter.GenericAdapterStreamDescription';
+            newAdapterDescription.dataStream = new SpDataStream();
+            newAdapterDescription.dataStream.eventSchema = new EventSchema();
+          }
+          newAdapterDescription.appId = protocol.appId;
+          newAdapterDescription.name = protocol.name;
+          newAdapterDescription.description = protocol.description;
+          newAdapterDescription.iconUrl = protocol.iconUrl;
+          newAdapterDescription.uri = newAdapterDescription.elementId;
+          newAdapterDescription.category = protocol.category;
+          newAdapterDescription.includedAssets = protocol.includedAssets;
+          newAdapterDescription.includesAssets = protocol.includesAssets;
+          newAdapterDescription.includedLocales = protocol.includedLocales;
+          newAdapterDescription.includesLocales = protocol.includesLocales;
+
+          if (
+            newAdapterDescription instanceof GenericAdapterSetDescription ||
+            newAdapterDescription instanceof GenericAdapterStreamDescription
+          ) {
+            newAdapterDescription.protocolDescription = protocol;
           }
-          return adapterDescriptions;
-        }));
+          adapterDescriptions.push(newAdapterDescription);
+        }
+        return adapterDescriptions;
+      }));
   }
 
   // sortStaticProperties(sp: StaticProperty) {
@@ -207,7 +207,7 @@ export class DataMarketplaceService {
   }
 
   getAssetUrl(appId) {
-    return this.connectPath + '/master/description/' + appId + '/assets';
+    return `${this.connectPath}/master/description/${appId}/assets`;
   }
 
   private get baseUrl() {
diff --git a/ui/src/app/core-model/gen/streampipes-model.ts b/ui/src/app/core-model/gen/streampipes-model.ts
index 4579813..b7093ff 100644
--- a/ui/src/app/core-model/gen/streampipes-model.ts
+++ b/ui/src/app/core-model/gen/streampipes-model.ts
@@ -19,7 +19,7 @@
 /* tslint:disable */
 /* eslint-disable */
 // @ts-nocheck
-// Generated using typescript-generator version 2.27.744 on 2021-09-29 21:19:14.
+// Generated using typescript-generator version 2.27.744 on 2021-10-05 11:54:22.
 
 export class AbstractStreamPipesEntity {
   '@class': 'org.apache.streampipes.model.base.AbstractStreamPipesEntity' | 'org.apache.streampipes.model.base.NamedStreamPipesEntity' | 'org.apache.streampipes.model.connect.adapter.AdapterDescription' | 'org.apache.streampipes.model.connect.adapter.AdapterSetDescription' | 'org.apache.streampipes.model.connect.adapter.GenericAdapterSetDescription' | 'org.apache.streampipes.model.connect.adapter.SpecificAdapterSetDescription' | 'org.apache.streampipes.model.connect.adapter.AdapterStream [...]
@@ -161,7 +161,6 @@ export class NamedStreamPipesEntity extends AbstractStreamPipesEntity {
 
 export class AdapterDescription extends NamedStreamPipesEntity {
   '@class': 'org.apache.streampipes.model.connect.adapter.AdapterDescription' | 'org.apache.streampipes.model.connect.adapter.AdapterSetDescription' | 'org.apache.streampipes.model.connect.adapter.GenericAdapterSetDescription' | 'org.apache.streampipes.model.connect.adapter.SpecificAdapterSetDescription' | 'org.apache.streampipes.model.connect.adapter.AdapterStreamDescription' | 'org.apache.streampipes.model.connect.adapter.GenericAdapterStreamDescription' | 'org.apache.streampipes.model [...]
-  adapterId: string;
   adapterType: string;
   category: string[];
   config: StaticPropertyUnion[];
@@ -169,7 +168,6 @@ export class AdapterDescription extends NamedStreamPipesEntity {
   createdAt: number;
   eventGrounding: EventGrounding;
   icon: string;
-  id: string;
   rules: TransformationRuleDescriptionUnion[];
   schemaRules: any[];
   selectedEndpointUrl: string;
@@ -183,7 +181,6 @@ export class AdapterDescription extends NamedStreamPipesEntity {
     }
     const instance = target || new AdapterDescription();
     super.fromData(data, instance);
-    instance.adapterId = data.adapterId;
     instance.userName = data.userName;
     instance.eventGrounding = EventGrounding.fromData(data.eventGrounding);
     instance.adapterType = data.adapterType;
@@ -194,7 +191,6 @@ export class AdapterDescription extends NamedStreamPipesEntity {
     instance.createdAt = data.createdAt;
     instance.selectedEndpointUrl = data.selectedEndpointUrl;
     instance.correspondingServiceGroup = data.correspondingServiceGroup;
-    instance.id = data.id;
     instance.valueRules = __getCopyArrayFn(__identity<any>())(data.valueRules);
     instance.streamRules = __getCopyArrayFn(__identity<any>())(data.streamRules);
     instance.schemaRules = __getCopyArrayFn(__identity<any>())(data.schemaRules);
@@ -2865,8 +2861,8 @@ export class SpDataSet extends SpDataStream {
     instance.datasetInvocationId = data.datasetInvocationId;
     instance.correspondingPipeline = data.correspondingPipeline;
     instance.selectedEndpointUrl = data.selectedEndpointUrl;
-    instance.actualTopicName = data.actualTopicName;
     instance.brokerHostname = data.brokerHostname;
+    instance.actualTopicName = data.actualTopicName;
     return instance;
   }
 }