You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ri...@apache.org on 2022/12/30 21:58:14 UTC

[streampipes] branch SP-958 updated: Extract rest interfaces from extensions services into new module streampipes-rest-extensions

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

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


The following commit(s) were added to refs/heads/SP-958 by this push:
     new dec2a3176 Extract rest interfaces from extensions services into new module streampipes-rest-extensions
dec2a3176 is described below

commit dec2a3176d25344cc6248c6a61137177d2656680
Author: Dominik Riemer <do...@gmail.com>
AuthorDate: Fri Dec 30 22:58:00 2022 +0100

    Extract rest interfaces from extensions services into new module streampipes-rest-extensions
---
 pom.xml                                            |  1 +
 .../backend/StreamPipesResourceConfig.java         |  2 -
 streampipes-container-extensions/pom.xml           | 10 +--
 .../extensions/ExtensionsResourceConfig.java       | 23 +++---
 streampipes-container/pom.xml                      | 23 ------
 .../manager/endpoint/EndpointItemFetcher.java      |  5 +-
 .../manager/endpoint/EndpointItemParser.java       |  5 +-
 .../pom.xml                                        | 53 ++++++++-----
 .../extensions}/AbstractExtensionsResource.java    |  2 +-
 .../AbstractPipelineElementResource.java           |  2 +-
 .../streampipes/rest/extensions}/WelcomePage.java  |  8 +-
 .../extensions/connect}/AdapterAssetResource.java  |  2 +-
 .../extensions/connect}/AdapterWorkerResource.java |  2 +-
 .../rest/extensions/connect}/GuessResource.java    |  2 +-
 .../connect}/HttpServerAdapterResource.java        |  2 +-
 .../connect}/RuntimeResolvableResource.java        |  2 +-
 .../rest/extensions}/html/HTMLGenerator.java       |  6 +-
 .../rest/extensions}/html/JSONGenerator.java       |  6 +-
 .../html/model/DataSourceDescriptionHtml.java      |  2 +-
 .../rest/extensions}/html/model/Description.java   |  2 +-
 .../html/page/WelcomePageGenerator.java            |  4 +-
 .../extensions/monitoring}/MonitoringResource.java |  3 +-
 .../pe}/DataProcessorPipelineElementResource.java  |  2 +-
 .../pe}/DataSinkPipelineElementResource.java       |  2 +-
 .../pe}/DataStreamPipelineElementResource.java     |  3 +-
 .../pe}/InvocablePipelineElementResource.java      |  7 +-
 .../extensions/pe}/PipelineTemplateResource.java   |  3 +-
 .../rest/impl/connect/WelcomePageMaster.java       | 91 ----------------------
 28 files changed, 88 insertions(+), 187 deletions(-)

diff --git a/pom.xml b/pom.xml
index dc19cca3e..57b71930f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1422,6 +1422,7 @@ IoT data streams.
 			<module>streampipes-data-export</module>
 			<module>streampipes-messaging-nats</module>
 			<module>streampipes-integration-tests</module>
+			<module>streampipes-rest-extensions</module>
 		</modules>
 
 	<profiles>
diff --git a/streampipes-backend/src/main/java/org/apache/streampipes/backend/StreamPipesResourceConfig.java b/streampipes-backend/src/main/java/org/apache/streampipes/backend/StreamPipesResourceConfig.java
index 206522c85..671bdb829 100644
--- a/streampipes-backend/src/main/java/org/apache/streampipes/backend/StreamPipesResourceConfig.java
+++ b/streampipes-backend/src/main/java/org/apache/streampipes/backend/StreamPipesResourceConfig.java
@@ -72,7 +72,6 @@ import org.apache.streampipes.rest.impl.connect.GuessResource;
 import org.apache.streampipes.rest.impl.connect.RuntimeResolvableResource;
 import org.apache.streampipes.rest.impl.connect.SourcesResource;
 import org.apache.streampipes.rest.impl.connect.UnitResource;
-import org.apache.streampipes.rest.impl.connect.WelcomePageMaster;
 import org.apache.streampipes.rest.impl.connect.WorkerAdministrationResource;
 import org.apache.streampipes.rest.impl.dashboard.Dashboard;
 import org.apache.streampipes.rest.impl.dashboard.DashboardWidget;
@@ -174,7 +173,6 @@ public class StreamPipesResourceConfig extends ResourceConfig {
 
 
     // Connect Master
-    register(WelcomePageMaster.class);
     register(AdapterResource.class);
     register(DescriptionResource.class);
     register(SourcesResource.class);
diff --git a/streampipes-container-extensions/pom.xml b/streampipes-container-extensions/pom.xml
index e4e993fad..6c9970ab4 100644
--- a/streampipes-container-extensions/pom.xml
+++ b/streampipes-container-extensions/pom.xml
@@ -31,17 +31,13 @@
         <!-- StreamPipes dependencies -->
         <dependency>
             <groupId>org.apache.streampipes</groupId>
-            <artifactId>streampipes-connect-container-worker</artifactId>
-            <version>0.91.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.streampipes</groupId>
-            <artifactId>streampipes-container-standalone</artifactId>
+            <artifactId>streampipes-service-extensions-base</artifactId>
             <version>0.91.0-SNAPSHOT</version>
         </dependency>
+
         <dependency>
             <groupId>org.apache.streampipes</groupId>
-            <artifactId>streampipes-service-extensions-base</artifactId>
+            <artifactId>streampipes-rest-extensions</artifactId>
             <version>0.91.0-SNAPSHOT</version>
         </dependency>
 
diff --git a/streampipes-container-extensions/src/main/java/org/apache/streampipes/container/extensions/ExtensionsResourceConfig.java b/streampipes-container-extensions/src/main/java/org/apache/streampipes/container/extensions/ExtensionsResourceConfig.java
index c0d63688c..981cc818d 100644
--- a/streampipes-container-extensions/src/main/java/org/apache/streampipes/container/extensions/ExtensionsResourceConfig.java
+++ b/streampipes-container-extensions/src/main/java/org/apache/streampipes/container/extensions/ExtensionsResourceConfig.java
@@ -17,17 +17,18 @@
  */
 package org.apache.streampipes.container.extensions;
 
-import org.apache.streampipes.connect.container.worker.rest.AdapterAssetResource;
-import org.apache.streampipes.connect.container.worker.rest.AdapterWorkerResource;
-import org.apache.streampipes.connect.container.worker.rest.GuessResource;
-import org.apache.streampipes.connect.container.worker.rest.HttpServerAdapterResource;
-import org.apache.streampipes.connect.container.worker.rest.RuntimeResolvableResource;
-import org.apache.streampipes.container.api.DataProcessorPipelineElementResource;
-import org.apache.streampipes.container.api.DataSinkPipelineElementResource;
-import org.apache.streampipes.container.api.DataStreamPipelineElementResource;
-import org.apache.streampipes.container.api.MonitoringResource;
-import org.apache.streampipes.container.api.PipelineTemplateResource;
-import org.apache.streampipes.container.api.WelcomePage;
+
+import org.apache.streampipes.rest.extensions.WelcomePage;
+import org.apache.streampipes.rest.extensions.connect.AdapterAssetResource;
+import org.apache.streampipes.rest.extensions.connect.AdapterWorkerResource;
+import org.apache.streampipes.rest.extensions.connect.GuessResource;
+import org.apache.streampipes.rest.extensions.connect.HttpServerAdapterResource;
+import org.apache.streampipes.rest.extensions.connect.RuntimeResolvableResource;
+import org.apache.streampipes.rest.extensions.monitoring.MonitoringResource;
+import org.apache.streampipes.rest.extensions.pe.DataProcessorPipelineElementResource;
+import org.apache.streampipes.rest.extensions.pe.DataSinkPipelineElementResource;
+import org.apache.streampipes.rest.extensions.pe.DataStreamPipelineElementResource;
+import org.apache.streampipes.rest.extensions.pe.PipelineTemplateResource;
 import org.apache.streampipes.rest.shared.serializer.JacksonSerializationProvider;
 import org.apache.streampipes.service.base.rest.BaseResourceConfig;
 
diff --git a/streampipes-container/pom.xml b/streampipes-container/pom.xml
index 4321e7788..2b0f4feab 100644
--- a/streampipes-container/pom.xml
+++ b/streampipes-container/pom.xml
@@ -61,35 +61,12 @@
             <artifactId>streampipes-service-discovery</artifactId>
             <version>0.91.0-SNAPSHOT</version>
         </dependency>
-        <dependency>
-            <groupId>org.apache.streampipes</groupId>
-            <artifactId>streampipes-rest-shared</artifactId>
-            <version>0.91.0-SNAPSHOT</version>
-        </dependency>
 
         <!-- External dependencies -->
-        <dependency>
-            <groupId>javax.ws.rs</groupId>
-            <artifactId>javax.ws.rs-api</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.apache.httpcomponents</groupId>
             <artifactId>fluent-hc</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.rendersnake</groupId>
-            <artifactId>rendersnake</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>javax.servlet</groupId>
-                    <artifactId>servlet-api</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.springframework</groupId>
-                    <artifactId>spring-webmvc</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
 
         <!-- Test dependencies -->
         <dependency>
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/EndpointItemFetcher.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/EndpointItemFetcher.java
index 3cc0ae4c8..0c103e699 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/EndpointItemFetcher.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/EndpointItemFetcher.java
@@ -27,8 +27,7 @@ import org.apache.http.client.fluent.Request;
 import org.apache.http.message.BasicHeader;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-
-import javax.ws.rs.core.MediaType;
+import org.springframework.http.MediaType;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -52,7 +51,7 @@ public class EndpointItemFetcher {
   private List<ExtensionsServiceEndpointItem> getEndpointItems(ExtensionsServiceEndpoint e) {
     try {
       String result = Request.Get(e.getEndpointUrl())
-          .addHeader(new BasicHeader("Accept", MediaType.APPLICATION_JSON))
+          .addHeader(new BasicHeader("Accept", MediaType.APPLICATION_JSON_VALUE))
           .connectTimeout(1000)
           .execute()
           .returnContent()
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/EndpointItemParser.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/EndpointItemParser.java
index d019561c8..24eab2689 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/EndpointItemParser.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/EndpointItemParser.java
@@ -23,8 +23,7 @@ import org.apache.streampipes.model.message.NotificationType;
 import org.apache.streampipes.model.message.Notifications;
 
 import org.apache.http.client.fluent.Request;
-
-import javax.ws.rs.core.MediaType;
+import org.springframework.http.MediaType;
 
 import java.io.IOException;
 import java.net.URLDecoder;
@@ -48,7 +47,7 @@ public class EndpointItemParser {
   private String parseURIContent(String url) throws IOException {
     return Request
         .Get(url)
-        .addHeader("Accept", MediaType.APPLICATION_JSON)
+        .addHeader("Accept", MediaType.APPLICATION_JSON_VALUE)
         .execute()
         .returnContent()
         .asString();
diff --git a/streampipes-container-extensions/pom.xml b/streampipes-rest-extensions/pom.xml
similarity index 58%
copy from streampipes-container-extensions/pom.xml
copy to streampipes-rest-extensions/pom.xml
index e4e993fad..2e95d2366 100644
--- a/streampipes-container-extensions/pom.xml
+++ b/streampipes-rest-extensions/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
   ~ Licensed to the Apache Software Foundation (ASF) under one or more
   ~ contributor license agreements.  See the NOTICE file distributed with
@@ -16,48 +17,60 @@
   ~
   -->
 
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>streampipes-parent</artifactId>
         <groupId>org.apache.streampipes</groupId>
+        <artifactId>streampipes-parent</artifactId>
         <version>0.91.0-SNAPSHOT</version>
     </parent>
-    <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>streampipes-container-extensions</artifactId>
+    <artifactId>streampipes-rest-extensions</artifactId>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
 
     <dependencies>
-        <!-- StreamPipes dependencies -->
         <dependency>
             <groupId>org.apache.streampipes</groupId>
-            <artifactId>streampipes-connect-container-worker</artifactId>
+            <artifactId>streampipes-rest-shared</artifactId>
             <version>0.91.0-SNAPSHOT</version>
         </dependency>
+
         <dependency>
             <groupId>org.apache.streampipes</groupId>
-            <artifactId>streampipes-container-standalone</artifactId>
+            <artifactId>streampipes-container</artifactId>
             <version>0.91.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.apache.streampipes</groupId>
-            <artifactId>streampipes-service-extensions-base</artifactId>
+            <artifactId>streampipes-connect-container-worker</artifactId>
             <version>0.91.0-SNAPSHOT</version>
         </dependency>
 
         <!-- External dependencies -->
         <dependency>
-            <groupId>com.fasterxml.jackson.datatype</groupId>
-            <artifactId>jackson-datatype-jdk8</artifactId>
+            <groupId>javax.ws.rs</groupId>
+            <artifactId>javax.ws.rs-api</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.rendersnake</groupId>
+            <artifactId>rendersnake</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>javax.servlet</groupId>
+                    <artifactId>servlet-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.springframework</groupId>
+                    <artifactId>spring-webmvc</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
-        <!-- Test dependencies -->
     </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-checkstyle-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
+
 </project>
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/api/AbstractExtensionsResource.java b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/AbstractExtensionsResource.java
similarity index 96%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/api/AbstractExtensionsResource.java
rename to streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/AbstractExtensionsResource.java
index 95115c95d..6390abb11 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/api/AbstractExtensionsResource.java
+++ b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/AbstractExtensionsResource.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.container.api;
+package org.apache.streampipes.rest.extensions;
 
 import javax.ws.rs.core.Response;
 
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/api/AbstractPipelineElementResource.java b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/AbstractPipelineElementResource.java
similarity index 99%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/api/AbstractPipelineElementResource.java
rename to streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/AbstractPipelineElementResource.java
index 859c317d3..f53c08ca5 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/api/AbstractPipelineElementResource.java
+++ b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/AbstractPipelineElementResource.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.container.api;
+package org.apache.streampipes.rest.extensions;
 
 import org.apache.streampipes.commons.constants.GlobalStreamPipesConstants;
 import org.apache.streampipes.container.assets.AssetZipGenerator;
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/api/WelcomePage.java b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/WelcomePage.java
similarity index 87%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/api/WelcomePage.java
rename to streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/WelcomePage.java
index 5f1e7babd..d05fa5f91 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/api/WelcomePage.java
+++ b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/WelcomePage.java
@@ -16,11 +16,11 @@
  *
  */
 
-package org.apache.streampipes.container.api;
+package org.apache.streampipes.rest.extensions;
 
-import org.apache.streampipes.container.html.HTMLGenerator;
-import org.apache.streampipes.container.html.JSONGenerator;
-import org.apache.streampipes.container.html.page.WelcomePageGenerator;
+import org.apache.streampipes.rest.extensions.html.HTMLGenerator;
+import org.apache.streampipes.rest.extensions.html.JSONGenerator;
+import org.apache.streampipes.rest.extensions.html.page.WelcomePageGenerator;
 import org.apache.streampipes.container.init.DeclarersSingleton;
 
 import javax.ws.rs.GET;
diff --git a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/AdapterAssetResource.java b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/connect/AdapterAssetResource.java
similarity index 97%
rename from streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/AdapterAssetResource.java
rename to streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/connect/AdapterAssetResource.java
index 5c7d448bb..a87282acd 100644
--- a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/AdapterAssetResource.java
+++ b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/connect/AdapterAssetResource.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.connect.container.worker.rest;
+package org.apache.streampipes.rest.extensions.connect;
 
 import org.apache.streampipes.connect.container.worker.init.ConnectWorkerDescriptionProvider;
 import org.apache.streampipes.container.assets.AssetZipGenerator;
diff --git a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/AdapterWorkerResource.java b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/connect/AdapterWorkerResource.java
similarity index 98%
rename from streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/AdapterWorkerResource.java
rename to streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/connect/AdapterWorkerResource.java
index c000f8d52..3f18bb996 100644
--- a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/AdapterWorkerResource.java
+++ b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/connect/AdapterWorkerResource.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.connect.container.worker.rest;
+package org.apache.streampipes.rest.extensions.connect;
 
 import org.apache.streampipes.connect.api.exception.AdapterException;
 import org.apache.streampipes.connect.container.worker.management.AdapterWorkerManagement;
diff --git a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/GuessResource.java b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/connect/GuessResource.java
similarity index 97%
rename from streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/GuessResource.java
rename to streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/connect/GuessResource.java
index dd2e4d7fc..434ac533e 100644
--- a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/GuessResource.java
+++ b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/connect/GuessResource.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.connect.container.worker.rest;
+package org.apache.streampipes.rest.extensions.connect;
 
 import org.apache.streampipes.connect.api.exception.AdapterException;
 import org.apache.streampipes.connect.api.exception.ParseException;
diff --git a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/HttpServerAdapterResource.java b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/connect/HttpServerAdapterResource.java
similarity index 95%
rename from streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/HttpServerAdapterResource.java
rename to streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/connect/HttpServerAdapterResource.java
index 7a4f1b367..98a6e7810 100644
--- a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/HttpServerAdapterResource.java
+++ b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/connect/HttpServerAdapterResource.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  *
  */
-package org.apache.streampipes.connect.container.worker.rest;
+package org.apache.streampipes.rest.extensions.connect;
 
 import org.apache.streampipes.connect.container.worker.management.HttpServerAdapterManagement;
 
diff --git a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/RuntimeResolvableResource.java b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/connect/RuntimeResolvableResource.java
similarity index 98%
rename from streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/RuntimeResolvableResource.java
rename to streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/connect/RuntimeResolvableResource.java
index 1d485eec0..64bbe3f3a 100644
--- a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/RuntimeResolvableResource.java
+++ b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/connect/RuntimeResolvableResource.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.connect.container.worker.rest;
+package org.apache.streampipes.rest.extensions.connect;
 
 import org.apache.streampipes.commons.exceptions.SpConfigurationException;
 import org.apache.streampipes.commons.exceptions.SpRuntimeException;
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/html/HTMLGenerator.java b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/html/HTMLGenerator.java
similarity index 94%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/html/HTMLGenerator.java
rename to streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/html/HTMLGenerator.java
index e916afdf0..bb26d9d72 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/html/HTMLGenerator.java
+++ b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/html/HTMLGenerator.java
@@ -16,10 +16,10 @@
  *
  */
 
-package org.apache.streampipes.container.html;
+package org.apache.streampipes.rest.extensions.html;
 
-import org.apache.streampipes.container.html.model.DataSourceDescriptionHtml;
-import org.apache.streampipes.container.html.model.Description;
+import org.apache.streampipes.rest.extensions.html.model.DataSourceDescriptionHtml;
+import org.apache.streampipes.rest.extensions.html.model.Description;
 
 import org.rendersnake.HtmlCanvas;
 
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/html/JSONGenerator.java b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/html/JSONGenerator.java
similarity index 92%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/html/JSONGenerator.java
rename to streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/html/JSONGenerator.java
index 861b226c7..bbb7b0ebf 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/html/JSONGenerator.java
+++ b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/html/JSONGenerator.java
@@ -16,10 +16,10 @@
  *
  */
 
-package org.apache.streampipes.container.html;
+package org.apache.streampipes.rest.extensions.html;
 
-import org.apache.streampipes.container.html.model.DataSourceDescriptionHtml;
-import org.apache.streampipes.container.html.model.Description;
+import org.apache.streampipes.rest.extensions.html.model.DataSourceDescriptionHtml;
+import org.apache.streampipes.rest.extensions.html.model.Description;
 
 import com.google.gson.JsonArray;
 import com.google.gson.JsonObject;
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/html/model/DataSourceDescriptionHtml.java b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/html/model/DataSourceDescriptionHtml.java
similarity index 95%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/html/model/DataSourceDescriptionHtml.java
rename to streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/html/model/DataSourceDescriptionHtml.java
index 195f4069c..f549b634e 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/html/model/DataSourceDescriptionHtml.java
+++ b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/html/model/DataSourceDescriptionHtml.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.container.html.model;
+package org.apache.streampipes.rest.extensions.html.model;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/html/model/Description.java b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/html/model/Description.java
similarity index 98%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/html/model/Description.java
rename to streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/html/model/Description.java
index fc2371462..67bdeba0a 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/html/model/Description.java
+++ b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/html/model/Description.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.container.html.model;
+package org.apache.streampipes.rest.extensions.html.model;
 
 public class Description {
 
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/html/page/WelcomePageGenerator.java b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/html/page/WelcomePageGenerator.java
similarity index 97%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/html/page/WelcomePageGenerator.java
rename to streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/html/page/WelcomePageGenerator.java
index b2664ee65..ca1b8afab 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/html/page/WelcomePageGenerator.java
+++ b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/html/page/WelcomePageGenerator.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.container.html.page;
+package org.apache.streampipes.rest.extensions.html.page;
 
 import org.apache.streampipes.container.declarer.DataStreamDeclarer;
 import org.apache.streampipes.container.declarer.Declarer;
@@ -24,7 +24,7 @@ import org.apache.streampipes.container.declarer.InvocableDeclarer;
 import org.apache.streampipes.container.declarer.PipelineTemplateDeclarer;
 import org.apache.streampipes.container.declarer.SemanticEventConsumerDeclarer;
 import org.apache.streampipes.container.declarer.SemanticEventProcessingAgentDeclarer;
-import org.apache.streampipes.container.html.model.Description;
+import org.apache.streampipes.rest.extensions.html.model.Description;
 import org.apache.streampipes.container.locales.LabelGenerator;
 import org.apache.streampipes.model.SpDataSet;
 import org.apache.streampipes.model.SpDataStream;
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/api/MonitoringResource.java b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/monitoring/MonitoringResource.java
similarity index 91%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/api/MonitoringResource.java
rename to streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/monitoring/MonitoringResource.java
index 0819f13c4..7fff8cbb6 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/api/MonitoringResource.java
+++ b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/monitoring/MonitoringResource.java
@@ -17,9 +17,10 @@
  */
 
 
-package org.apache.streampipes.container.api;
+package org.apache.streampipes.rest.extensions.monitoring;
 
 import org.apache.streampipes.container.monitoring.SpMonitoringManager;
+import org.apache.streampipes.rest.extensions.AbstractExtensionsResource;
 
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/api/DataProcessorPipelineElementResource.java b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/pe/DataProcessorPipelineElementResource.java
similarity index 98%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/api/DataProcessorPipelineElementResource.java
rename to streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/pe/DataProcessorPipelineElementResource.java
index 733b7a6e2..547fdf6dc 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/api/DataProcessorPipelineElementResource.java
+++ b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/pe/DataProcessorPipelineElementResource.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.container.api;
+package org.apache.streampipes.rest.extensions.pe;
 
 import org.apache.streampipes.commons.constants.InstanceIdExtractor;
 import org.apache.streampipes.container.declarer.SemanticEventProcessingAgentDeclarer;
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/api/DataSinkPipelineElementResource.java b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/pe/DataSinkPipelineElementResource.java
similarity index 97%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/api/DataSinkPipelineElementResource.java
rename to streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/pe/DataSinkPipelineElementResource.java
index b43581a69..b6b30d39a 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/api/DataSinkPipelineElementResource.java
+++ b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/pe/DataSinkPipelineElementResource.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.container.api;
+package org.apache.streampipes.rest.extensions.pe;
 
 import org.apache.streampipes.commons.constants.InstanceIdExtractor;
 import org.apache.streampipes.container.declarer.SemanticEventConsumerDeclarer;
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/api/DataStreamPipelineElementResource.java b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/pe/DataStreamPipelineElementResource.java
similarity index 97%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/api/DataStreamPipelineElementResource.java
rename to streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/pe/DataStreamPipelineElementResource.java
index 361e63a8e..b87f1409f 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/api/DataStreamPipelineElementResource.java
+++ b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/pe/DataStreamPipelineElementResource.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.container.api;
+package org.apache.streampipes.rest.extensions.pe;
 
 import org.apache.streampipes.container.assets.AssetZipGenerator;
 import org.apache.streampipes.container.declarer.DataSetDeclarer;
@@ -25,6 +25,7 @@ import org.apache.streampipes.container.init.DeclarersSingleton;
 import org.apache.streampipes.container.init.RunningDatasetInstances;
 import org.apache.streampipes.model.Response;
 import org.apache.streampipes.model.SpDataSet;
+import org.apache.streampipes.rest.extensions.AbstractPipelineElementResource;
 import org.apache.streampipes.serializers.json.JacksonSerializer;
 import org.apache.streampipes.svcdiscovery.api.model.SpServicePathPrefix;
 
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/api/InvocablePipelineElementResource.java b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/pe/InvocablePipelineElementResource.java
similarity index 94%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/api/InvocablePipelineElementResource.java
rename to streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/pe/InvocablePipelineElementResource.java
index d2ef83648..abaec5e98 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/api/InvocablePipelineElementResource.java
+++ b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/pe/InvocablePipelineElementResource.java
@@ -16,11 +16,15 @@
  *
  */
 
-package org.apache.streampipes.container.api;
+package org.apache.streampipes.rest.extensions.pe;
 
 import org.apache.streampipes.commons.constants.Envs;
 import org.apache.streampipes.commons.exceptions.SpConfigurationException;
 import org.apache.streampipes.commons.exceptions.SpRuntimeException;
+import org.apache.streampipes.container.api.ResolvesContainerProvidedOptions;
+import org.apache.streampipes.container.api.ResolvesContainerProvidedOutputStrategy;
+import org.apache.streampipes.container.api.RuntimeResolvableRequestHandler;
+import org.apache.streampipes.container.api.SupportsRuntimeConfig;
 import org.apache.streampipes.container.declarer.Declarer;
 import org.apache.streampipes.container.declarer.InvocableDeclarer;
 import org.apache.streampipes.container.init.DeclarersSingleton;
@@ -29,6 +33,7 @@ import org.apache.streampipes.model.Response;
 import org.apache.streampipes.model.base.InvocableStreamPipesEntity;
 import org.apache.streampipes.model.runtime.RuntimeOptionsRequest;
 import org.apache.streampipes.model.runtime.RuntimeOptionsResponse;
+import org.apache.streampipes.rest.extensions.AbstractPipelineElementResource;
 import org.apache.streampipes.rest.shared.annotation.JacksonSerialized;
 import org.apache.streampipes.sdk.extractor.AbstractParameterExtractor;
 
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/api/PipelineTemplateResource.java b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/pe/PipelineTemplateResource.java
similarity index 90%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/api/PipelineTemplateResource.java
rename to streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/pe/PipelineTemplateResource.java
index 58c8e2919..b355fe570 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/api/PipelineTemplateResource.java
+++ b/streampipes-rest-extensions/src/main/java/org/apache/streampipes/rest/extensions/pe/PipelineTemplateResource.java
@@ -15,10 +15,11 @@
  * limitations under the License.
  *
  */
-package org.apache.streampipes.container.api;
+package org.apache.streampipes.rest.extensions.pe;
 
 import org.apache.streampipes.container.declarer.PipelineTemplateDeclarer;
 import org.apache.streampipes.container.init.DeclarersSingleton;
+import org.apache.streampipes.rest.extensions.AbstractPipelineElementResource;
 
 import javax.ws.rs.Path;
 
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
deleted file mode 100644
index 2504e9df0..000000000
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/WelcomePageMaster.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.streampipes.rest.impl.connect;
-
-
-import org.apache.streampipes.connect.adapter.GroundingService;
-import org.apache.streampipes.connect.api.exception.AdapterException;
-import org.apache.streampipes.connect.container.master.management.AdapterMasterManagement;
-import org.apache.streampipes.model.connect.adapter.AdapterDescription;
-import org.apache.streampipes.storage.couchdb.utils.CouchDbConfig;
-
-import org.rendersnake.HtmlCanvas;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import java.io.IOException;
-
-
-@Path("/v2/connect")
-public class WelcomePageMaster extends AbstractAdapterResource<AdapterMasterManagement> {
-
-  private static final Logger LOG = LoggerFactory.getLogger(WelcomePageMaster.class);
-
-  public WelcomePageMaster() {
-    super(AdapterMasterManagement::new);
-  }
-
-  @GET
-  @Produces(MediaType.TEXT_HTML)
-  public String getWelcomePageHtml() {
-    return buildHtml();
-  }
-
-  private String buildHtml() {
-    HtmlCanvas html = new HtmlCanvas();
-    try {
-      HtmlCanvas tmp = html
-          .head()
-          .title()
-          .content("StreamPipes Connector Master Container")
-          ._head()
-          .body()
-          .h1().write("Connector Master Container")._h1()
-          .h2().write("All Running Adapters")._h2()
-          .ol();
-
-      getAllRunningAdapters(tmp);
-
-      html = tmp._ol()
-          ._body();
-    } catch (IOException e) {
-      LOG.error("Error in SP Connect Master Container: ", e);
-    }
-
-    return html.toHtml();
-  }
-
-  private void getAllRunningAdapters(HtmlCanvas canvas) throws IOException {
-
-    try {
-      for (AdapterDescription ad : managementService.getAllAdapterDescriptions()) {
-        canvas.li().write(ad.getElementId())._li();
-        canvas.ul().li().write("Kafka Topic: " + GroundingService.extractTopic(ad))._li()._ul();
-      }
-    } catch (AdapterException e) {
-      LOG.error("Could not connect to couchdb on URL: " + CouchDbConfig.INSTANCE.getHost(), e);
-      canvas.li().write("Error while connecting to CouchDB on Host: " + CouchDbConfig.INSTANCE.getHost())._li();
-    }
-  }
-}