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

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

commit ea02ac9cd59c816d0f29f6a74c89f5ee2e0aeb9f
Merge: 8ca270e 152237e
Author: Dominik Riemer <[email protected]>
AuthorDate: Wed Jul 7 22:43:59 2021 +0200

    Merge branch 'STREAMPIPES-380' into STREAMPIPES-319

 README.md                                          |   2 +-
 RELEASE_NOTES.md                                   |  95 ++++++++-
 .../pom.xml                                        |   2 +-
 .../src/main/resources/archetype-resources/pom.xml |   9 +-
 .../archetype-resources/src/main/java/Init.java    |   1 +
 .../pom.xml                                        |   2 +-
 .../src/main/resources/archetype-resources/pom.xml |   4 +-
 .../archetype-resources/src/main/java/Init.java    |   1 +
 .../streampipes-archetype-pe-sinks-flink/pom.xml   |   2 +-
 .../src/main/resources/archetype-resources/pom.xml |   9 +-
 .../archetype-resources/src/main/java/Init.java    |   2 +
 .../streampipes-archetype-pe-sinks-jvm/pom.xml     |   2 +-
 .../src/main/resources/archetype-resources/pom.xml |   4 +-
 .../archetype-resources/src/main/java/Init.java    |   2 +
 .../streampipes-archetype-pe-sources/pom.xml       |   2 +-
 .../src/main/resources/archetype-resources/pom.xml |   9 +-
 .../archetype-resources/src/main/java/Init.java    |   3 +-
 .../__classNamePrefix__Stream.java                 |   2 +-
 pom.xml                                            |   2 +-
 streampipes-backend/pom.xml                        |  20 +-
 streampipes-client/pom.xml                         |  20 +-
 streampipes-code-generation/pom.xml                |  10 +-
 streampipes-commons/pom.xml                        |   2 +-
 streampipes-config/pom.xml                         |   4 +-
 streampipes-connect-container-master/pom.xml       |  10 +-
 streampipes-connect-container-worker/pom.xml       |  14 +-
 streampipes-connect/pom.xml                        |  30 +--
 streampipes-container-base/pom.xml                 |   2 +-
 streampipes-container-extensions/pom.xml           |   8 +-
 streampipes-container-standalone/pom.xml           |   6 +-
 streampipes-container/pom.xml                      |  12 +-
 streampipes-data-explorer/pom.xml                  |  12 +-
 streampipes-dataformat-cbor/pom.xml                |   6 +-
 streampipes-dataformat-fst/pom.xml                 |   6 +-
 streampipes-dataformat-json/pom.xml                |   6 +-
 streampipes-dataformat-smile/pom.xml               |   6 +-
 streampipes-dataformat/pom.xml                     |   4 +-
 streampipes-logging/pom.xml                        |   2 +-
 streampipes-maven-plugin/pom.xml                   |   2 +-
 streampipes-measurement-units/pom.xml              |   4 +-
 streampipes-messaging-jms/pom.xml                  |   4 +-
 streampipes-messaging-kafka/pom.xml                |   4 +-
 streampipes-messaging-mqtt/pom.xml                 |   4 +-
 streampipes-messaging/pom.xml                      |   4 +-
 streampipes-model-client/pom.xml                   |   4 +-
 streampipes-model-shared/pom.xml                   |   2 +-
 streampipes-model/pom.xml                          |  10 +-
 .../staticproperty/StaticPropertyAlternative.java  |   2 +-
 streampipes-performance-tests/pom.xml              |  10 +-
 streampipes-pipeline-management/pom.xml            |  36 ++--
 .../streampipes/manager/file/FileManager.java      |  29 +++
 .../streampipes/manager/file/TestFileManager.java  |  64 ++++++
 streampipes-platform-services/pom.xml              |  16 +-
 streampipes-rest-shared/pom.xml                    |   6 +-
 streampipes-rest/pom.xml                           |  24 +--
 .../rest/impl/dashboard/VisualizablePipeline.java  |  16 +-
 streampipes-sdk/pom.xml                            |   8 +-
 .../sdk/extractor/AbstractParameterExtractor.java  |   3 +-
 streampipes-serializers-json/pom.xml               |  10 +-
 streampipes-service-discovery-consul/pom.xml       |  10 +-
 streampipes-sources/pom.xml                        |   4 +-
 streampipes-storage-api/pom.xml                    |   6 +-
 streampipes-storage-couchdb/pom.xml                |  12 +-
 streampipes-storage-management/pom.xml             |   6 +-
 streampipes-test-utils/pom.xml                     |   4 +-
 streampipes-user-management/pom.xml                |   6 +-
 streampipes-vocabulary/pom.xml                     |   2 +-
 streampipes-wrapper-distributed/pom.xml            |  10 +-
 streampipes-wrapper-flink/pom.xml                  |   4 +-
 .../wrapper/flink/sink/MqttFlinkProducer.java      |   2 -
 streampipes-wrapper-kafka-streams/pom.xml          |   4 +-
 streampipes-wrapper-python/pom.xml                 |   2 +-
 streampipes-wrapper-siddhi/pom.xml                 |   4 +-
 streampipes-wrapper-spark/pom.xml                  |   8 +-
 streampipes-wrapper-standalone/pom.xml             |   4 +-
 streampipes-wrapper/pom.xml                        |  10 +-
 ui/cypress.json                                    |   9 +
 ui/cypress/README.md                               |  49 +++++
 ui/cypress/fixtures/fileTest/random.csv            |  11 +
 ui/cypress/fixtures/fileTest/test.csv              |   4 +
 .../filters-jvm/numericalFilter1/description.json  |   8 +
 .../filters-jvm/numericalFilter1/expected.csv      |   6 +
 .../filters-jvm/numericalFilter1/input.csv         |  11 +
 .../filters-jvm/projection1/description.json       |   6 +
 .../filters-jvm/projection1/expected.csv           |   6 +
 .../filters-jvm/projection1/input.csv              |   6 +
 .../filters-jvm/textFilter1/description.json       |   8 +
 .../filters-jvm/textFilter1/expected.csv           |   4 +
 .../filters-jvm/textFilter1/input.csv              |  11 +
 .../booleanCounter1/description.json               |   7 +
 .../booleanCounter1/expected.csv                   |   6 +
 .../transformation-jvm/booleanCounter1/input.csv   |  11 +
 .../booleanInverter1/description.json              |   6 +
 .../booleanInverter1/expected.csv                  |  11 +
 .../transformation-jvm/booleanInverter1/input.csv  |  11 +
 .../countArray1/description.json                   |   6 +
 .../transformation-jvm/countArray1/expected.csv    |   5 +
 .../transformation-jvm/countArray1/input.json      |   4 +
 .../fieldRenamer1/description.json                 |   7 +
 .../transformation-jvm/fieldRenamer1/expected.csv  |  11 +
 .../transformation-jvm/fieldRenamer1/input.csv     |  11 +
 .../signalEdgeFilter1/description.json             |   9 +
 .../signalEdgeFilter1/expected.csv                 |   6 +
 .../transformation-jvm/signalEdgeFilter1/input.csv |  11 +
 .../splitArray1/description.json                   |   7 +
 .../transformation-jvm/splitArray1/expected.csv    |   3 +
 .../transformation-jvm/splitArray1/input.json      |   2 +
 ui/cypress/integration/adapter/fileStream.ts       |  45 ++++
 .../integration/adapter/machineDataSimulator.ts}   |  20 +-
 .../adapter/randomDataSimulatorStream.spec.ts}     |  21 +-
 .../fileManagement/testFileManagement.ts}          |  25 ++-
 .../integration/installation/installation.ts       |  36 ++--
 ui/cypress/integration/pipeline/pipelineTest.ts    |  49 +++++
 .../pipelineElement/AllPipelineElements.ts}        |  38 ++--
 .../pipelineElement/SinglePipelineElement.ts}      |  31 +--
 ui/cypress/plugins/index.ts                        |  70 ++++++
 .../support/builder/GenericAdapterBuilder.ts       |  76 +++++++
 ui/cypress/support/builder/PipelineBuilder.ts      |  56 +++++
 .../support/builder/PipelineElementBuilder.ts      |  50 +++++
 .../support/builder/ProcessorTestBuilder.ts}       |  35 +--
 .../support/builder/SpecificAdapterBuilder.ts      |  61 ++++++
 .../support/general/dataCy.ts}                     |  23 +-
 .../support/general/login.ts}                      |  52 ++---
 .../support/general/logout.ts}                     |  23 +-
 .../support/general/readDir.ts}                    |  39 ++--
 .../support/index.ts}                              |  38 +---
 .../support/model/AdapterInput.ts}                 |  10 +-
 .../support/model/GenericAdapterInput.ts}          |  11 +-
 .../support/model/PipelineElementInput.ts}         |   9 +-
 .../support/model/PipelineInput.ts}                |  14 +-
 .../support/model/ProcessorTest.ts}                |  11 +-
 .../support/model/SpecificAdapterInput.ts}         |   9 +-
 .../support/model/UserInput.ts}                    |  10 +-
 ui/cypress/support/utils/AdapterUtils.ts           | 201 ++++++++++++++++++
 ui/cypress/support/utils/DataLakeUtils.ts          |  52 +++++
 ui/cypress/support/utils/FileManagementUtils.ts    |  49 +++++
 ui/cypress/support/utils/PipelineUtils.ts          | 105 +++++++++
 .../support/utils/ProcessingElementTestUtils.ts    |  89 ++++++++
 .../cypress/support/utils/StaticPropertyUtils.ts   |  32 +--
 .../support/utils/UserUtils.ts}                    |   9 +-
 ui/cypress/tsconfig.json                           |  11 +
 ui/package.json                                    |   6 +-
 .../configuration-group.component.html}            |  25 ++-
 .../configuration-group.component.scss}            |   0
 .../configuration-group.component.ts}              |  28 ++-
 ...nent.css => adapter-description.component.scss} |   0
 .../adapter-description.component.ts               |   2 +-
 .../data-marketplace.component.html                |   2 +-
 ...mponent.css => data-marketplace.component.scss} |   0
 .../data-marketplace/data-marketplace.component.ts |   2 +-
 .../existing-adapters.component.html               |   2 +-
 .../existing-adapters.component.ts                 |  44 ++--
 .../format-configuration.component.html            |  65 ++++++
 .../format-configuration.component.scss}           |   5 +-
 .../format-configuration.component.ts              | 129 ++++++++++++
 .../format-form/format-form.component.ts           |  81 -------
 .../format-item.component.html}                    |   2 +-
 .../format-item.component.scss}                    |   0
 .../format-item.component.ts}                      |  21 +-
 .../format-list.component.html                     |   6 +-
 .../format-list.component.scss}                    |   0
 .../format-list.component.ts                       |  29 ++-
 .../generic-adapter-configuration.component.html}  |  29 ++-
 .../generic-adapter-configuration.component.scss}  |   3 +
 .../generic-adapter-configuration.component.ts     |  83 ++++++++
 .../new-adapter/new-adapter.component.html         | 234 ++++-----------------
 ...er.component.css => new-adapter.component.scss} |   0
 .../new-adapter/new-adapter.component.ts           | 200 ++++--------------
 .../pipeline-element-runtime-info.component.html   |   2 +-
 .../error-message/error-message.component.html     |  39 ++++
 .../error-message.component.scss}                  |   0
 .../error-message/error-message.component.ts}      |  26 ++-
 .../event-property-row.component.html              |   3 +-
 ...onent.css => event-property-row.component.scss} |   0
 .../event-property-row.component.ts                |   2 +-
 .../event-schema-preview.component.scss}           |   0
 .../event-schema-preview.component.ts              |   8 +-
 .../event-schema/event-schema.component.html       | 106 ++++------
 ...a.component.css => event-schema.component.scss} |   3 -
 .../event-schema/event-schema.component.ts         |  96 +++++++--
 .../loading-message.component.html}                |  12 +-
 .../loading-message.component.scss}                |   0
 .../loading-message/loading-message.component.ts}  |  16 +-
 .../schema-editor-header.component.html            |  53 +++++
 .../schema-editor-header.component.scss}           |   3 +
 .../schema-editor-header.component.ts              |  69 ++++++
 .../specific-adapter-configuration.component.html} |  27 ++-
 .../specific-adapter-configuration.component.scss} |   4 +-
 .../specific-adapter-configuration.component.ts    |  69 ++++++
 .../start-adapter-configuration.component.html     | 111 ++++++++++
 .../start-adapter-configuration.component.scss}    |   0
 .../start-adapter-configuration.component.ts       | 150 +++++++++++++
 ui/src/app/connect/connect.component.ts            |   4 +-
 ui/src/app/connect/connect.module.ts               | 126 ++++++-----
 .../adapter-started-dialog.component.html          |   2 +-
 .../delete-adapter-dialog.component.html           |  16 +-
 ...t.scss => delete-adapter-dialog.component.scss} |   0
 .../delete-adapter-dialog.component.ts             |  42 ++--
 ...nt.css => edit-correction-value.component.scss} |   0
 .../edit-correction-value.component.ts             |   2 +-
 ...component.css => edit-data-type.component.scss} |   0
 .../edit-data-type/edit-data-type.component.ts     |   2 +-
 ...css => edit-event-property-list.component.scss} |   0
 .../edit-event-property-list.component.ts          |   2 +-
 ...> edit-event-property-primitive.component.scss} |   0
 .../edit-event-property-primitive.component.ts     |   2 +-
 ....css => edit-timestamp-property.component.scss} |   0
 .../edit-timestamp-property.component.ts           |   2 +-
 ...css => edit-unit-transformation.component.scss} |   0
 .../edit-unit-transformation.component.ts          |   2 +-
 .../edit-event-property.component.html             |  11 +-
 ...nent.css => edit-event-property.component.scss} |   0
 .../edit-event-property.component.ts               |   2 +-
 .../base/UserErrorMessage.ts}                      |  12 +-
 ui/src/app/core-ui/core-ui.module.ts               |   5 +-
 .../confirm-dialog/confirm-dialog.component.html   |   2 +-
 .../core-ui/error-hint/error-hint.component.html   |  46 ++++
 .../error-hint/error-hint.component.scss}          |  10 +-
 .../error-hint/error-hint.component.ts}            |  25 ++-
 .../static-any-input.component.html                |   7 +-
 .../static-file-input.component.html               |  12 +-
 .../static-file-input.component.ts                 |  99 +++++----
 .../static-free-input.component.html               |   3 +-
 .../static-mapping-nary.component.html             |   4 +-
 .../static-mapping-unary.component.html            |   2 +-
 .../static-one-of-input.component.html             |   9 +-
 .../static-property.component.html                 |  11 +-
 .../core/components/toolbar/toolbar.component.html |   6 +-
 ...data-explorer-dashboard-overview.component.html |   2 +-
 ...data-explorer-dashboard-overview.component.scss |   6 +-
 .../property-selection.component.html              |   3 +-
 .../pipeline-assembly.component.html               |  40 ++--
 .../pipeline-assembly.component.ts                 | 146 +++++++------
 .../pipeline-element-options.component.html        |   7 +-
 .../pipeline-element-options.component.ts          |  17 +-
 ...pipeline-element-template-config.component.html |  16 +-
 .../components/pipeline/pipeline.component.html    |   5 +-
 .../compatible-elements.component.html             |   3 +-
 .../compatible-elements.component.ts               |   4 +-
 .../dialog/customize/customize.component.html      |   3 +-
 .../pipeline-element-discovery.component.html}     |  18 +-
 .../pipeline-element-discovery.component.scss}     |   9 +-
 .../pipeline-element-discovery.component.ts        |  98 +++++++++
 .../save-pipeline/save-pipeline.component.html     |  12 +-
 ui/src/app/editor/editor.module.ts                 |   2 +
 .../app/editor/services/jsplumb-bridge.service.ts  |   2 +
 ui/src/app/editor/services/jsplumb.service.ts      | 132 +++++++++---
 .../editor/services/pipeline-validation.service.ts |  78 +++----
 .../file-overview/file-overview.component.html     |   2 +-
 .../file-upload/file-upload-dialog.component.html  |   5 +-
 ui/src/app/files/files.component.html              |   4 +-
 .../login/components/setup/setup.component.html    |   3 +-
 .../pipeline-overview.component.html               |   3 +-
 .../delete-pipeline-dialog.component.html          |   4 +-
 .../pipeline-status-dialog.component.html          |   6 +-
 255 files changed, 3742 insertions(+), 1531 deletions(-)

diff --cc streampipes-config/pom.xml
index 30ca5a3,fe44a3b..026e435
--- a/streampipes-config/pom.xml
+++ b/streampipes-config/pom.xml
@@@ -31,19 -31,9 +31,19 @@@
          <!-- StreamPipes dependencies -->
          <dependency>
              <groupId>org.apache.streampipes</groupId>
 +            <artifactId>streampipes-serializers-json</artifactId>
 +            <version>0.68.0-SNAPSHOT</version>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.apache.streampipes</groupId>
              <artifactId>streampipes-vocabulary</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
+             <version>0.69.0-SNAPSHOT</version>
          </dependency>
 +        <dependency>
 +            <groupId>org.apache.streampipes</groupId>
 +            <artifactId>streampipes-service-discovery</artifactId>
 +            <version>0.68.0-SNAPSHOT</version>
 +        </dependency>
  
          <!-- External dependencies -->
          <dependency>
diff --cc streampipes-connect-container-master/pom.xml
index a83370b,8aa3715..4936982
--- a/streampipes-connect-container-master/pom.xml
+++ b/streampipes-connect-container-master/pom.xml
@@@ -31,8 -31,8 +31,8 @@@
          <!-- StreamPipes dependencies -->
          <dependency>
              <groupId>org.apache.streampipes</groupId>
 -            <artifactId>streampipes-connect-container</artifactId>
 +            <artifactId>streampipes-connect</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
+             <version>0.69.0-SNAPSHOT</version>
          </dependency>
          <dependency>
              <groupId>org.apache.streampipes</groupId>
diff --cc streampipes-connect-container-worker/pom.xml
index 2ab126f,621acd6..abb25ec
--- a/streampipes-connect-container-worker/pom.xml
+++ b/streampipes-connect-container-worker/pom.xml
@@@ -31,34 -31,10 +31,34 @@@
          <!-- StreamPipes dependencies -->
          <dependency>
              <groupId>org.apache.streampipes</groupId>
 -            <artifactId>streampipes-connect-container</artifactId>
 +            <artifactId>streampipes-config</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
++            <version>0.69.0-SNAPSHOT</version>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.apache.streampipes</groupId>
 +            <artifactId>streampipes-connect</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
++            <version>0.69.0-SNAPSHOT</version>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.apache.streampipes</groupId>
 +            <artifactId>streampipes-container</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
++            <version>0.69.0-SNAPSHOT</version>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.apache.streampipes</groupId>
 +            <artifactId>streampipes-service-extensions-base</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
++            <version>0.69.0-SNAPSHOT</version>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.apache.streampipes</groupId>
 +            <artifactId>streampipes-rest-shared</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
++            <version>0.69.0-SNAPSHOT</version>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.apache.streampipes</groupId>
 +            <artifactId>streampipes-serializers-json</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
+             <version>0.69.0-SNAPSHOT</version>
          </dependency>
 -
          <!-- External dependencies -->
  
          <!-- Test dependencies -->
diff --cc streampipes-connect/pom.xml
index 22f04ea,f6162f3..865a2cb
--- a/streampipes-connect/pom.xml
+++ b/streampipes-connect/pom.xml
@@@ -36,8 -36,8 +36,8 @@@
          </dependency>
          <dependency>
              <groupId>org.apache.streampipes</groupId>
 -            <artifactId>streampipes-container</artifactId>
 +            <artifactId>streampipes-connect-api</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
+             <version>0.69.0-SNAPSHOT</version>
          </dependency>
          <dependency>
              <groupId>org.apache.streampipes</groupId>
diff --cc streampipes-container-extensions/pom.xml
index db1d09e,0c4449d..52eb29a
--- a/streampipes-container-extensions/pom.xml
+++ b/streampipes-container-extensions/pom.xml
@@@ -33,18 -31,13 +33,18 @@@
          <!-- StreamPipes dependencies -->
          <dependency>
              <groupId>org.apache.streampipes</groupId>
 -            <artifactId>streampipes-container</artifactId>
 +            <artifactId>streampipes-connect-container-worker</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
++            <version>0.69.0-SNAPSHOT</version>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.apache.streampipes</groupId>
 +            <artifactId>streampipes-container-standalone</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
+             <version>0.69.0-SNAPSHOT</version>
          </dependency>
          <dependency>
              <groupId>org.apache.streampipes</groupId>
 -            <artifactId>streampipes-container-base</artifactId>
 +            <artifactId>streampipes-service-extensions-base</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
+             <version>0.69.0-SNAPSHOT</version>
          </dependency>
  
          <!-- External dependencies -->
diff --cc streampipes-container-standalone/pom.xml
index 0064633,ec206f9..a576e43
--- a/streampipes-container-standalone/pom.xml
+++ b/streampipes-container-standalone/pom.xml
@@@ -36,8 -36,8 +36,8 @@@
          </dependency>
          <dependency>
              <groupId>org.apache.streampipes</groupId>
 -            <artifactId>streampipes-container-base</artifactId>
 +            <artifactId>streampipes-service-extensions-base</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
+             <version>0.69.0-SNAPSHOT</version>
          </dependency>
  
          <!-- External dependencies -->
diff --cc streampipes-container/pom.xml
index e021554,92d2bce..c5dcd88
--- a/streampipes-container/pom.xml
+++ b/streampipes-container/pom.xml
@@@ -32,13 -32,8 +32,13 @@@
                <!-- StreamPipes dependencies -->
                <dependency>
                        <groupId>org.apache.streampipes</groupId>
 +                      <artifactId>streampipes-connect-api</artifactId>
 +                      <version>0.68.0-SNAPSHOT</version>
 +              </dependency>
 +              <dependency>
 +                      <groupId>org.apache.streampipes</groupId>
                        <artifactId>streampipes-dataformat</artifactId>
-                       <version>0.68.0-SNAPSHOT</version>
+                       <version>0.69.0-SNAPSHOT</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.streampipes</groupId>
@@@ -57,19 -52,9 +57,19 @@@
                </dependency>
                <dependency>
                        <groupId>org.apache.streampipes</groupId>
 +                      <artifactId>streampipes-service-discovery</artifactId>
 +                      <version>0.68.0-SNAPSHOT</version>
 +              </dependency>
 +              <dependency>
 +                      <groupId>org.apache.streampipes</groupId>
                        <artifactId>streampipes-rest-shared</artifactId>
-                       <version>0.68.0-SNAPSHOT</version>
+                       <version>0.69.0-SNAPSHOT</version>
                </dependency>
 +<!--          <dependency>-->
 +<!--                  <groupId>org.apache.streampipes</groupId>-->
 +<!--                  
<artifactId>streampipes-connect-container-worker</artifactId>-->
 +<!--                  <version>0.68.0-SNAPSHOT</version>-->
 +<!--          </dependency>-->
  
  
                <!-- External dependencies -->
diff --cc 
streampipes-model/src/main/java/org/apache/streampipes/model/staticproperty/StaticPropertyAlternative.java
index dcc161e,7be00fb..f0a9462
--- 
a/streampipes-model/src/main/java/org/apache/streampipes/model/staticproperty/StaticPropertyAlternative.java
+++ 
b/streampipes-model/src/main/java/org/apache/streampipes/model/staticproperty/StaticPropertyAlternative.java
@@@ -17,12 -17,28 +17,12 @@@
   */
  package org.apache.streampipes.model.staticproperty;
  
 -import io.fogsy.empire.annotations.RdfProperty;
 -import io.fogsy.empire.annotations.RdfsClass;
  import org.apache.streampipes.model.util.Cloner;
 -import org.apache.streampipes.vocabulary.StreamPipes;
  
 -import javax.persistence.CascadeType;
 -import javax.persistence.Entity;
 -import javax.persistence.FetchType;
 -import javax.persistence.OneToOne;
 -
 -@RdfsClass(StreamPipes.STATIC_PROPERTY_ALTERNATIVE)
 -@Entity
  public class StaticPropertyAlternative extends StaticProperty {
  
-   private Boolean selected;
 -  @OneToOne(fetch = FetchType.EAGER,
 -          cascade = {CascadeType.ALL})
 -  @RdfProperty(StreamPipes.IS_SELECTED)
+   private boolean selected;
  
 -  @OneToOne(fetch = FetchType.EAGER,
 -          cascade = {CascadeType.ALL})
 -  @RdfProperty(StreamPipes.HAS_STATIC_PROPERTY)
    private StaticProperty staticProperty;
  
    public StaticPropertyAlternative() {
diff --cc streampipes-pipeline-management/pom.xml
index c354562,b66612a..cf3bcbe
--- a/streampipes-pipeline-management/pom.xml
+++ b/streampipes-pipeline-management/pom.xml
@@@ -99,13 -99,8 +99,13 @@@
          </dependency>
          <dependency>
              <groupId>org.apache.streampipes</groupId>
 +            <artifactId>streampipes-service-discovery</artifactId>
 +            <version>0.68.0-SNAPSHOT</version>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.apache.streampipes</groupId>
              <artifactId>streampipes-storage-management</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
+             <version>0.69.0-SNAPSHOT</version>
          </dependency>
          <dependency>
              <groupId>org.apache.streampipes</groupId>
diff --cc streampipes-rest/pom.xml
index b02816e,7175658..4b6c8fb
--- a/streampipes-rest/pom.xml
+++ b/streampipes-rest/pom.xml
@@@ -82,8 -82,8 +82,8 @@@
          </dependency>
          <dependency>
              <groupId>org.apache.streampipes</groupId>
 -            <artifactId>streampipes-serializers-jsonld</artifactId>
 +            <artifactId>streampipes-service-discovery</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
+             <version>0.69.0-SNAPSHOT</version>
          </dependency>
          <dependency>
              <groupId>org.apache.streampipes</groupId>
diff --cc streampipes-service-discovery-consul/pom.xml
index d062353,6db0cdf..7341c57
--- a/streampipes-service-discovery-consul/pom.xml
+++ b/streampipes-service-discovery-consul/pom.xml
@@@ -27,35 -24,39 +27,33 @@@
      </parent>
      <modelVersion>4.0.0</modelVersion>
  
 -    <artifactId>streampipes-serializers-jsonld</artifactId>
 +    <artifactId>streampipes-service-discovery-consul</artifactId>
  
      <dependencies>
 -        <!-- StreamPipes dependencies -->
          <dependency>
              <groupId>org.apache.streampipes</groupId>
 -            <artifactId>streampipes-model</artifactId>
 +            <artifactId>streampipes-logging</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
+             <version>0.69.0-SNAPSHOT</version>
          </dependency>
          <dependency>
              <groupId>org.apache.streampipes</groupId>
 -            <artifactId>streampipes-model-client</artifactId>
 +            <artifactId>streampipes-serializers-json</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
+             <version>0.69.0-SNAPSHOT</version>
          </dependency>
 -
 -        <!-- External dependencies -->
 -        <dependency>
 -            <groupId>io.fogsy</groupId>
 -            <artifactId>empire-pinto</artifactId>
 -        </dependency>
          <dependency>
 -            <groupId>org.apache.httpcomponents</groupId>
 -            <artifactId>httpclient-osgi</artifactId>
 +            <groupId>org.apache.streampipes</groupId>
 +            <artifactId>streampipes-service-discovery-api</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
++            <version>0.69.0-SNAPSHOT</version>
          </dependency>
 +
 +        <!-- third-party dependencies -->
          <dependency>
 -            <groupId>org.eclipse.rdf4j</groupId>
 -            <artifactId>rdf4j-rio-api</artifactId>
 +            <groupId>com.orbitz.consul</groupId>
 +            <artifactId>consul-client</artifactId>
          </dependency>
          <dependency>
 -            <groupId>org.eclipse.rdf4j</groupId>
 -            <artifactId>rdf4j-model</artifactId>
 +            <groupId>org.apache.httpcomponents</groupId>
 +            <artifactId>fluent-hc</artifactId>
          </dependency>
      </dependencies>
--
--
 -</project>
 +</project>
diff --cc streampipes-storage-api/pom.xml
index 5800ed0,0a4e0b5..4590bc6
--- a/streampipes-storage-api/pom.xml
+++ b/streampipes-storage-api/pom.xml
@@@ -37,7 -37,17 +37,7 @@@
          <dependency>
              <groupId>org.apache.streampipes</groupId>
              <artifactId>streampipes-model-client</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
+             <version>0.69.0-SNAPSHOT</version>
          </dependency>
 -
 -        <!-- External dependencies -->
 -        <dependency>
 -            <groupId>org.eclipse.rdf4j</groupId>
 -            <artifactId>rdf4j-query</artifactId>
 -        </dependency>
 -        <dependency>
 -            <groupId>org.eclipse.rdf4j</groupId>
 -            <artifactId>rdf4j-repository-api</artifactId>
 -        </dependency>
      </dependencies>
 -</project>
 +</project>
diff --cc streampipes-storage-management/pom.xml
index 5d6ea7f,c328143..1f9933b
--- a/streampipes-storage-management/pom.xml
+++ b/streampipes-storage-management/pom.xml
@@@ -37,7 -37,12 +37,7 @@@
          <dependency>
              <groupId>org.apache.streampipes</groupId>
              <artifactId>streampipes-storage-couchdb</artifactId>
-             <version>0.68.0-SNAPSHOT</version>
+             <version>0.69.0-SNAPSHOT</version>
          </dependency>
 -        <dependency>
 -            <groupId>org.apache.streampipes</groupId>
 -            <artifactId>streampipes-storage-rdf4j</artifactId>
 -            <version>0.69.0-SNAPSHOT</version>
 -        </dependency>
      </dependencies>
 -</project>
 +</project>
diff --cc streampipes-wrapper/pom.xml
index 1801bd8,69cfdd9..39be72d
--- a/streampipes-wrapper/pom.xml
+++ b/streampipes-wrapper/pom.xml
@@@ -34,13 -34,8 +34,13 @@@
                </dependency>
                <dependency>
                        <groupId>org.apache.streampipes</groupId>
 +                      <artifactId>streampipes-client</artifactId>
 +                      <version>0.68.0-SNAPSHOT</version>
 +              </dependency>
 +              <dependency>
 +                      <groupId>org.apache.streampipes</groupId>
                        <artifactId>streampipes-dataformat</artifactId>
-                       <version>0.68.0-SNAPSHOT</version>
+                       <version>0.69.0-SNAPSHOT</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.streampipes</groupId>
@@@ -50,7 -45,7 +50,7 @@@
          <dependency>
              <groupId>org.apache.streampipes</groupId>
              <artifactId>streampipes-sdk</artifactId>
-                       <version>0.68.0-SNAPSHOT</version>
+                       <version>0.69.0-SNAPSHOT</version>
          </dependency>
      </dependencies>
 -</project>
 +</project>
diff --cc 
ui/src/app/core-ui/static-properties/static-any-input/static-any-input.component.html
index abe44bb,a51e39a..8e5a2ff
--- 
a/ui/src/app/core-ui/static-properties/static-any-input/static-any-input.component.html
+++ 
b/ui/src/app/core-ui/static-properties/static-any-input/static-any-input.component.html
@@@ -18,14 -18,13 +18,17 @@@
  
  <div id="formWrapper" fxFlex="100" fxLayout="column">
      <div *ngIf="!staticProperty.horizontalRendering" fxLayout="column">
-         <mat-checkbox color="accent" *ngFor="let option of 
staticProperty.options" [(ngModel)]="option.selected" style="margin-left: 
10px;">
 -        <mat-checkbox *ngFor="let option of staticProperty.options" 
[(ngModel)]="option.selected" style="margin-left: 10px;" 
[attr.data-cy]="fieldName">
++        <mat-checkbox color="accent"
++                      *ngFor="let option of staticProperty.options"
++                      [(ngModel)]="option.selected"
++                      style="margin-left: 10px;"
++                      [attr.data-cy]="fieldName">
              {{option.name}}
          </mat-checkbox>
  
      </div>
- 
      <div *ngIf="staticProperty.horizontalRendering">
 -        <mat-form-field style="width: 100%">
 +        <mat-form-field style="width: 100%" color="accent">
              <mat-select multiple>
                  <mat-option *ngFor="let option of staticProperty.options" 
[value]="option.elementId"
                              (click)="select(option.elementId)">
diff --cc 
ui/src/app/core-ui/static-properties/static-file-input/static-file-input.component.html
index c7cf40e,8d6290f..6e3b6e4
--- 
a/ui/src/app/core-ui/static-properties/static-file-input/static-file-input.component.html
+++ 
b/ui/src/app/core-ui/static-properties/static-file-input/static-file-input.component.html
@@@ -16,10 -16,10 +16,10 @@@
    ~
    -->
  
- <div fxFlex="100" fxLayout="column">
+ <div fxFlex="100" fxLayout="column" [formGroup]="parentForm">
      <div fxFlex="100" fxLayout="column">
          <div fxFlex="row">
-             <mat-radio-group [(ngModel)]="chooseExistingFile" color="accent">
 -            <mat-radio-group [formControl]="chooseExistingFileControl" 
color="primary">
++            <mat-radio-group [formControl]="chooseExistingFileControl" 
color="accent">
                  <mat-radio-button style="margin-right:10px;" 
[value]="true">Choose existing file</mat-radio-button>
                  <mat-radio-button [value]="false">Upload new 
file</mat-radio-button>
              </mat-radio-group>
diff --cc 
ui/src/app/core-ui/static-properties/static-one-of-input/static-one-of-input.component.html
index fbbe56c,77223b8..aed2912
--- 
a/ui/src/app/core-ui/static-properties/static-one-of-input/static-one-of-input.component.html
+++ 
b/ui/src/app/core-ui/static-properties/static-one-of-input/static-one-of-input.component.html
@@@ -21,10 -21,12 +21,12 @@@
      <div *ngIf="!staticProperty.horizontalRendering" fxLayout="column">
          <div fxFlex fxLayout="row">
              <div fxLayout="column" style="margin-left: 10px">
 -                <mat-radio-group class="radio-group">
 +                <mat-radio-group class="radio-group" color="accent">
                      <mat-radio-button *ngFor="let option of 
staticProperty.options" style="margin-top: -10px"
-                                       [value]="option" 
(click)="select(option.elementId)" [checked]="option.selected">
+                                       [value]="option"
+                                       (click)="select(option.elementId)"
+                                       [checked]="option.selected"
+                                       
[attr.data-cy]="staticProperty.internalName + option.name">
                          <label style="font-weight: normal">
                              {{option.name}}
                          </label>
@@@ -35,8 -37,8 +37,8 @@@
      </div>
  
      <div *ngIf="staticProperty.horizontalRendering">
 -        <mat-form-field style="width: 100%">
 +        <mat-form-field style="width: 100%" color="accent">
-             <mat-select [(value)]="selectedOption">
+             <mat-select [(value)]="selectedOption" [attr.data-cy]="fieldName">
                  <mat-option *ngFor="let option of staticProperty.options" 
[value]="option.elementId"
                              (click)="select(option.elementId)">
                      <label style="font-weight: normal">
diff --cc ui/src/app/core/components/toolbar/toolbar.component.html
index 21e588d,76f3e77..e550fa4
--- a/ui/src/app/core/components/toolbar/toolbar.component.html
+++ b/ui/src/app/core/components/toolbar/toolbar.component.html
@@@ -57,8 -54,9 +57,9 @@@
                              [ngClass]="accountMenuOpen.menuOpen ? 
'sp-icon-button-no-hover' : 'sp-icon-button'" style="min-width:0px;"
                              [matMenuTriggerFor]="menu"
                              #accountMenuOpen="matMenuTrigger"
-                             matTooltip="User Preferences" 
matTooltipPosition="below">
+                             matTooltip="User Preferences" 
matTooltipPosition="below"
+                             data-cy="sp-user-preferences">
 -                        <i [ngStyle]="accountMenuOpen.menuOpen ? {'color': 
'#39b54a'} : {'color': 'white'}" class="material-icons">account_circle</i>
 +                        <i [ngClass]="accountMenuOpen.menuOpen ? 
'sp-darkblue' : ''" class="material-icons">account_circle</i>
                      </button>
                  </div>
              </div>
diff --cc 
ui/src/app/data-explorer/components/overview/data-explorer-dashboard-overview.component.html
index 3ed2eba,e84fb1f..da323e8
--- 
a/ui/src/app/data-explorer/components/overview/data-explorer-dashboard-overview.component.html
+++ 
b/ui/src/app/data-explorer/components/overview/data-explorer-dashboard-overview.component.html
@@@ -19,10 -19,10 +19,10 @@@
  
  <div fxFlex="100" fxLayout="column" class="m-20">
      <div fxLayout="row wrap">
-         <button mat-button mat-raised-button color="accent" 
(click)="openNewDataViewDialog()">
 -        <button mat-button mat-raised-button color="primary" 
(click)="openNewDataViewDialog()" class="mr-10">
++        <button mat-button mat-raised-button color="accent" 
(click)="openNewDataViewDialog()" class="mr-10">
              New Data View
          </button>
 -        <button mat-button mat-raised-button color="primary" 
(click)="openEditLabelView()">
 +        <button mat-button mat-raised-button color="accent" 
(click)="openEditLabelView()">
              Edit Labels
          </button>
      </div>
diff --cc ui/src/app/editor/dialog/customize/customize.component.html
index 1de29b0,655bb92..7ca6c12
--- a/ui/src/app/editor/dialog/customize/customize.component.html
+++ b/ui/src/app/editor/dialog/customize/customize.component.html
@@@ -102,8 -102,9 +102,9 @@@
      <mat-divider></mat-divider>
      <div class="sp-dialog-actions">
          <div fxLayout="row" *ngIf="!templateMode">
 -            <button mat-button mat-raised-button color="primary" 
(click)="save()" style="margin-right:10px;"
 +            <button mat-button mat-raised-button color="accent" 
(click)="save()" style="margin-right:10px;"
-                     [disabled]="!(formValid)">
+                     [disabled]="!(formValid)"
+             data-cy="sp-element-configuration-save">
                  <i class="material-icons">save</i><span>&nbsp;Save</span>
              </button>
              <button mat-button mat-raised-button class="mat-basic" 
(click)="close()">
diff --cc ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.html
index 95c3707,cf00f4b..6076389
--- a/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.html
+++ b/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.html
@@@ -32,9 -32,11 +32,11 @@@
                  </div>
                  <form [formGroup]="submitPipelineForm">
                  <div fxFlex="100" fxLayout="column" 
*ngIf="!currentModifiedPipelineId || updateMode=='clone'">
 -                    <mat-form-field fxFlex><mat-label>Pipeline 
Name</mat-label>
 -                        <input
 -                                [formControlName]="'pipelineName'"
 +                    <mat-form-field fxFlex color="accent">
 +                        <mat-label>Pipeline Name</mat-label>
-                         <input [formControlName]="'pipelineName'" matInput 
name="pipelineName"/>
++                        <input [formControlName]="'pipelineName'"
+                                 data-cy="sp-editor-pipeline-name"
+                                 matInput name="pipelineName"/>
  <!--                        <span 
ng-show="submitPipelineForm.pipelineName.$touched && 
submitPipelineForm.pipelineName.$error.required">Please provide a pipeline 
name.</span>-->
  <!--                        <span 
ng-show="submitPipelineForm.pipelineName.$error.maxlength">Please provide a 
shorter pipeline name.</span>-->
                      </mat-form-field>
@@@ -45,7 -46,10 +47,10 @@@
                      </mat-form-field>
                  </div>
                  </form>
-                 <mat-checkbox (click)="triggerTutorial()" color="accent" 
[(ngModel)]="startPipelineAfterStorage">
 -                <mat-checkbox color="primary"
 -                              (click)="triggerTutorial()"
++                <mat-checkbox (click)="triggerTutorial()"
+                               [(ngModel)]="startPipelineAfterStorage"
++                              color="accent"
+                               data-cy="sp-editor-checkbox-start-immediately">
                      Start pipeline immediately
                  </mat-checkbox>
              </div>
@@@ -66,10 -70,11 +71,11 @@@
      </div>
      <mat-divider></mat-divider>
      <div class="sp-dialog-actions">
 -        <button [disabled]="!submitPipelineForm.valid || saving || saved" 
mat-button mat-raised-button color="primary" (click)="savePipeline(false)" 
style="margin-right:10px;">
 +        <button [disabled]="!submitPipelineForm.valid || saving || saved" 
mat-button mat-raised-button color="accent" (click)="savePipeline(false)" 
style="margin-right:10px;">
              Save
          </button>
-         <button [disabled]="!submitPipelineForm.valid || saving || saved" 
mat-button mat-raised-button color="accent" (click)="savePipeline(true)" 
style="margin-right:10px;">
 -        <button [disabled]="!submitPipelineForm.valid || saving || saved" 
mat-button mat-raised-button color="primary" (click)="savePipeline(true)" 
style="margin-right:10px;"
++        <button [disabled]="!submitPipelineForm.valid || saving || saved" 
mat-button mat-raised-button color="accent" (click)="savePipeline(true)" 
style="margin-right:10px;"
+                 data-cy="sp-editor-save">
              Save and go to pipeline view
          </button>
          <button mat-button mat-raised-button class="mat-basic" 
(click)="hide()">
diff --cc ui/src/app/files/components/file-overview/file-overview.component.html
index fcb8c51,858bd68..ea985b3
--- a/ui/src/app/files/components/file-overview/file-overview.component.html
+++ b/ui/src/app/files/components/file-overview/file-overview.component.html
@@@ -40,8 -40,8 +40,8 @@@
          <ng-container matColumnDef="action">
              <th mat-header-cell *matHeaderCellDef> Action</th>
              <td mat-cell *matCellDef="let fileMetadata">
 -                    <button color="primary" mat-button mat-icon-button 
matTooltip="Delete file" matTooltipPosition="above"
 +                    <button color="accent" mat-button mat-icon-button 
matTooltip="Delete file" matTooltipPosition="above"
-                             (click)="deleteFile(fileMetadata)">
+                             (click)="deleteFile(fileMetadata)" 
data-cy="delete">
                          <i class="material-icons">delete</i>
                      </button>
              </td>
diff --cc ui/src/app/files/dialog/file-upload/file-upload-dialog.component.html
index 1fbcffa,ad951dc..f5961a6
--- a/ui/src/app/files/dialog/file-upload/file-upload-dialog.component.html
+++ b/ui/src/app/files/dialog/file-upload/file-upload-dialog.component.html
@@@ -21,15 -21,16 +21,16 @@@
      <div class="sp-dialog-content p-15">
          <div fxFlex="100">
              <div fxFlex="100" style="margin:5px;width:100%">
 -                <mat-form-field style="width: 95%" 
(click)="fileInput.click();">
 +                <mat-form-field style="width: 95%" 
(click)="fileInput.click();" color="accent">
                      <input matInput placeholder="File" disabled 
(value)="fileName">
                      <input #fileInput type="file" style="display:none;"
-                            (change)="handleFileInput($event.target.files)">
+                            (change)="handleFileInput($event.target.files)"
+                            data-cy="sp-file-management-file-input">
                      <div>
                          {{fileName}}
 -                        <mat-progress-bar mode="determinate" 
value="{{uploadStatus}}" *ngIf="uploadStatus > 0"></mat-progress-bar>
 +                        <mat-progress-bar mode="determinate" 
value="{{uploadStatus}}" *ngIf="uploadStatus > 0" 
color="accent"></mat-progress-bar>
                      </div>
 -                    <button color="primary" matSuffix
 +                    <button color="accent" matSuffix
                              mat-button style="min-width: 0px">
                          <mat-icon *ngIf="uploadStatus < 
99">insert_drive_file</mat-icon>
                          <mat-icon *ngIf="uploadStatus == 100" 
class="green-icon">check_circle</mat-icon>
@@@ -43,7 -44,7 +44,7 @@@
      </div>
      <mat-divider></mat-divider>
      <div class="sp-dialog-actions">
-         <button mat-button mat-raised-button color="accent" (click)="store()" 
style="margin-right:10px;">
 -        <button mat-button mat-raised-button color="primary" 
(click)="store()" data-cy="sp-file-management-store-file" 
style="margin-right:10px;">
++        <button mat-button mat-raised-button color="accent" (click)="store()" 
data-cy="sp-file-management-store-file" style="margin-right:10px;">
              Store file
          </button>
          <button mat-button mat-raised-button class="mat-basic" 
(click)="cancel()" style="margin-right:10px;">
diff --cc ui/src/app/files/files.component.html
index 6dba0c4,4cb736d..9a0a0d7
--- a/ui/src/app/files/files.component.html
+++ b/ui/src/app/files/files.component.html
@@@ -28,11 -28,13 +28,13 @@@
              </div>
          </div>
      </div>
 -    <div fxLayout="row" class="fixed-height add-options">
 +    <div fxLayout="row" class="fixed-height add-options sp-tab-bg">
          <div class="add-options-item" fxLayoutAlign="start center" 
fxLayout="row" style="padding-left:5px;">
              <div fxFlex="100" fxLayout="row">
 -                <button mat-button mat-raised-button color="primary"
 +                <button mat-button mat-raised-button color="accent"
-                         (click)="openFileUploadDialog()" class="mr-10">
+                         (click)="openFileUploadDialog()"
+                         data-cy="sp-open-file-upload-dialog"
+                         class="mr-10">
                      <i class="material-icons">cloud_upload</i>
                      &nbsp;Upload new file
                  </button>
diff --cc ui/src/app/login/components/setup/setup.component.html
index 39eb033,9c6dcb7..15c3943
--- a/ui/src/app/login/components/setup/setup.component.html
+++ b/ui/src/app/login/components/setup/setup.component.html
@@@ -79,8 -79,9 +79,9 @@@
                                  (click)="configure(0)" 
*ngIf="!installationFinished">
                              <span>{{!installationRunning ? 'Install' : 
'Installing...'}}</span>
                          </button>
 -                        <button mat-button mat-raised-button color="primary"
 +                        <button mat-button mat-raised-button color="accent"
-                                 (click)="openLoginPage()" 
*ngIf="installationFinished">
+                                 (click)="openLoginPage()" 
*ngIf="installationFinished"
+                                 data-cy="sp-button-finish-installation">
                              <mat-icon>arrow_forward</mat-icon>
                              <span>Go to login page</span>
                          </button>
diff --cc 
ui/src/app/pipelines/components/pipeline-overview/pipeline-overview.component.html
index d34b5d1,e516b7e..d243744
--- 
a/ui/src/app/pipelines/components/pipeline-overview/pipeline-overview.component.html
+++ 
b/ui/src/app/pipelines/components/pipeline-overview/pipeline-overview.component.html
@@@ -86,8 -86,9 +86,9 @@@
                      </button>
                  </span>
                      <span fxFlex fxFlexOrder="3" fxLayout="row" 
fxLayoutAlign="center center">
 -                    <button color="primary" mat-button mat-icon-button 
matTooltip="Delete pipeline" matTooltipPosition="above"
 +                    <button color="accent" mat-button mat-icon-button 
matTooltip="Delete pipeline" matTooltipPosition="above"
-                             
(click)="pipelineOperationsService.showDeleteDialog(pipeline, 
refreshPipelinesEmitter)">
+                             
(click)="pipelineOperationsService.showDeleteDialog(pipeline, 
refreshPipelinesEmitter)"
+                             data-cy="delete" >
                          <i class="material-icons">delete</i>
                      </button>
                  </span>
diff --cc 
ui/src/app/pipelines/dialog/delete-pipeline/delete-pipeline-dialog.component.html
index ca2f304,6c8a00f..db72c6a
--- 
a/ui/src/app/pipelines/dialog/delete-pipeline/delete-pipeline-dialog.component.html
+++ 
b/ui/src/app/pipelines/dialog/delete-pipeline/delete-pipeline-dialog.component.html
@@@ -30,8 -30,10 +30,10 @@@
                          (click)="deletePipeline()">Delete
                      pipeline
                  </button>
 -                <button mat-button mat-raised-button color="primary" 
*ngIf="pipeline.running"
 +                <button mat-button mat-raised-button color="accent" 
*ngIf="pipeline.running"
-                         (click)="stopAndDeletePipeline()">Stop and
+                         (click)="stopAndDeletePipeline()"
+                         data-cy="sp-pipeline-stop-and-delete">
+                     Stop and
                      delete pipeline
                  </button>
              </div>

Reply via email to