You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ze...@apache.org on 2020/11/19 22:30:34 UTC

[incubator-streampipes] 01/01: Started to merger connect master REST api into backed

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

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

commit 3f3233e3ec92a88d05511bad9e7c65d676bc7a8f
Author: Philipp Zehnder <ze...@fzi.de>
AuthorDate: Thu Nov 19 23:29:50 2020 +0100

    Started to merger connect master REST api into backed
---
 streampipes-backend/pom.xml                        |  7 +++++-
 .../backend/StreamPipesResourceConfig.java         | 14 ++++++++++++
 .../master/init/AdapterMasterContainer.java        |  6 +++---
 .../master/management/AdapterMasterManagement.java |  3 ++-
 .../container/master/rest/AdapterResource.java     |  2 +-
 .../master/rest/AdapterTemplateResource.java       |  2 +-
 .../container/master/rest/DescriptionResource.java |  2 +-
 .../container/master/rest/GuessResource.java       |  2 +-
 .../master/rest/RuntimeResolvableResource.java     |  2 +-
 .../container/master/rest/SourcesResource.java     |  9 +-------
 .../container/master/rest/UnitResource.java        |  2 +-
 .../container/master/rest/WelcomePageMaster.java   |  2 +-
 .../master/rest/WorkerAdministrationResource.java  |  2 +-
 .../worker/management/MasterRestClient.java        |  2 +-
 .../streampipes/connect/config/ConfigKeys.java     |  4 ++--
 .../connect/config/ConnectContainerConfig.java     | 17 ++-------------
 .../apache/streampipes/connect/init/Config.java    | 25 ----------------------
 ui/nginx_config/default.conf                       |  8 ++++---
 .../connect/services/data-marketplace.service.ts   |  3 +--
 ui/webpack.partial.dev.js                          |  4 ++--
 20 files changed, 47 insertions(+), 71 deletions(-)

diff --git a/streampipes-backend/pom.xml b/streampipes-backend/pom.xml
index 7bd3afd..ee60bd4 100644
--- a/streampipes-backend/pom.xml
+++ b/streampipes-backend/pom.xml
@@ -56,7 +56,11 @@
             <artifactId>streampipes-rest</artifactId>
             <version>0.68.0-SNAPSHOT</version>
         </dependency>
-
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-connect-container-master</artifactId>
+            <version>0.68.0-SNAPSHOT</version>
+        </dependency>
         <!-- External dependencies -->
         <dependency>
             <groupId>org.apache.logging.log4j</groupId>
@@ -66,6 +70,7 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
         </dependency>
+
     </dependencies>
 
     <build>
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 067cd56..6b921a9 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
@@ -18,6 +18,7 @@
 
 package org.apache.streampipes.backend;
 
+import org.apache.streampipes.connect.container.master.rest.*;
 import org.apache.streampipes.rest.impl.*;
 import org.apache.streampipes.rest.impl.dashboard.Dashboard;
 import org.apache.streampipes.rest.impl.dashboard.DashboardWidget;
@@ -103,6 +104,19 @@ public class StreamPipesResourceConfig extends ResourceConfig {
     register(JsonLdProvider.class);
     register(JacksonSerializationProvider.class);
     register(MultiPartFeature.class);
+
+
+    // Connect Master
+    register(WelcomePageMaster.class);
+    register(AdapterResource.class);
+    register(AdapterTemplateResource.class);
+    register(DescriptionResource.class);
+    register(SourcesResource.class);
+    register(GuessResource.class);
+//    register(MultiPartFeature.class);
+    register(UnitResource.class);
+    register(WorkerAdministrationResource.class);
+    register(RuntimeResolvableResource.class);
   }
 
 }
diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/init/AdapterMasterContainer.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/init/AdapterMasterContainer.java
index b2297cb..cce03ae 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/init/AdapterMasterContainer.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/init/AdapterMasterContainer.java
@@ -37,12 +37,12 @@ public class AdapterMasterContainer {
 
   public static void main(String... args) {
 
-    Integer masterPort = ConnectContainerConfig.INSTANCE.getConnectContainerMasterPort();
+//    Integer masterPort = ConnectContainerConfig.INSTANCE.getConnectContainerMasterPort();
 
     LOG.info("Started StreamPipes Connect Resource in MASTER mode");
 
     SpringApplication app = new SpringApplication(AdapterMasterContainer.class);
-    app.setDefaultProperties(Collections.singletonMap("server.port", masterPort));
-    app.run();
+//    app.setDefaultProperties(Collections.singletonMap("server.port", masterPort));
+//    app.run();
   }
 }
diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/AdapterMasterManagement.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/AdapterMasterManagement.java
index 22a8016..2449044 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/AdapterMasterManagement.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/AdapterMasterManagement.java
@@ -75,7 +75,8 @@ public class AdapterMasterManagement {
 
     String uuid = UUID.randomUUID().toString();
 
-    String newId = ConnectContainerConfig.INSTANCE.getConnectContainerMasterUrl() + "api/v1/" + username + "/master/sources/" + uuid;
+//    String newId = ConnectContainerConfig.INSTANCE.getConnectContainerMasterUrl() + "api/v1/" + username + "/master/sources/" + uuid;
+    String newId = ConnectContainerConfig.INSTANCE.getBackendApiUrl() + "api/v1/" + username + "/master/sources/" + uuid;
 
     ad.setElementId(newId);
 
diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/AdapterResource.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/AdapterResource.java
index a0b03ef..9b08344 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/AdapterResource.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/AdapterResource.java
@@ -35,7 +35,7 @@ import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import java.util.List;
 
-@Path("/api/v1/{username}/master/adapters")
+@Path("/connect/v1/{username}/master/adapters")
 public class AdapterResource extends AbstractContainerResource {
 
     private Logger LOG = LoggerFactory.getLogger(AdapterResource.class);
diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/AdapterTemplateResource.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/AdapterTemplateResource.java
index 0e1b510..e61eac0 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/AdapterTemplateResource.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/AdapterTemplateResource.java
@@ -32,7 +32,7 @@ import javax.ws.rs.*;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
-@Path("/api/v1/{username}/master/adapters/template")
+@Path("/connect/v1/{username}/master/adapters/template")
 public class AdapterTemplateResource extends AbstractContainerResource {
 
     private Logger logger = LoggerFactory.getLogger(AdapterTemplateResource.class);
diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/DescriptionResource.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/DescriptionResource.java
index 44dc78f..2bbc66c 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/DescriptionResource.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/DescriptionResource.java
@@ -38,7 +38,7 @@ import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import java.util.Optional;
 
-@Path("/api/v1/{username}/master/description")
+@Path("/connect/v1/{username}/master/description")
 public class DescriptionResource extends AbstractContainerResource {
 
     private Logger logger = LoggerFactory.getLogger(DescriptionResource.class);
diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/GuessResource.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/GuessResource.java
index 0e78560..394e829 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/GuessResource.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/GuessResource.java
@@ -34,7 +34,7 @@ import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
 
-@Path("/api/v1/{username}/master/guess")
+@Path("/connect/v1/{username}/master/guess")
 public class GuessResource extends AbstractContainerResource {
 
   private static final Logger logger = LoggerFactory.getLogger(GuessResource.class);
diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/RuntimeResolvableResource.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/RuntimeResolvableResource.java
index 60e3566..06f2c30 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/RuntimeResolvableResource.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/RuntimeResolvableResource.java
@@ -30,7 +30,7 @@ import javax.ws.rs.*;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
-@Path("/api/v1/{username}/master/resolvable")
+@Path("/connect/v1/{username}/master/resolvable")
 public class RuntimeResolvableResource extends AbstractContainerResource {
 
     private static final String SP_NS =  "https://streampipes.org/vocabulary/v1/";
diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/SourcesResource.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/SourcesResource.java
index f78d76e..c40d291 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/SourcesResource.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/SourcesResource.java
@@ -43,25 +43,18 @@ import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
-@Path("/api/v1/{username}/master/sources")
+@Path("/connect/v1/{username}/master/sources")
 public class SourcesResource extends AbstractContainerResource {
 
     private Logger logger = LoggerFactory.getLogger(SourcesResource.class);
 
-    private String connectContainerBaseUrl;
 
     private SourcesManagement sourcesManagement;
 
     public SourcesResource() {
-        this.connectContainerBaseUrl = ConnectContainerConfig.INSTANCE.getConnectContainerMasterUrl();
         this.sourcesManagement = new SourcesManagement();
     }
 
-    public SourcesResource(String connectContainerBaseUrl) {
-        this.connectContainerBaseUrl = connectContainerBaseUrl;
-    }
-
-
     @GET
     @Produces(MediaType.APPLICATION_JSON)
     @GsonWithIds
diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/UnitResource.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/UnitResource.java
index 8f5c6e9..6d2bf77 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/UnitResource.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/UnitResource.java
@@ -32,7 +32,7 @@ import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
-@Path("/api/v1/{username}/master/unit")
+@Path("/connect/v1/{username}/master/unit")
 public class UnitResource extends AbstractContainerResource {
 
     private static final Logger logger = LoggerFactory.getLogger(UnitResource.class);
diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/WelcomePageMaster.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/WelcomePageMaster.java
index 15bd29d..14cf4b2 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/WelcomePageMaster.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/WelcomePageMaster.java
@@ -38,7 +38,7 @@ import java.io.IOException;
 import java.util.List;
 
 
-@Path("/")
+@Path("/connect")
 public class WelcomePageMaster extends AbstractContainerResource {
 
 	private Logger logger = LoggerFactory.getLogger(WelcomePageMaster.class);
diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/WorkerAdministrationResource.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/WorkerAdministrationResource.java
index a747504..9d56509 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/WorkerAdministrationResource.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/WorkerAdministrationResource.java
@@ -32,7 +32,7 @@ import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
-@Path("/api/v1/{username}/master/workercontainer")
+@Path("/connect/v1/{username}/master/administration")
 public class WorkerAdministrationResource extends AbstractContainerResource {
 
     private Logger LOG = LoggerFactory.getLogger(WorkerAdministrationResource.class);
diff --git a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/management/MasterRestClient.java b/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/management/MasterRestClient.java
index c53a58d..2e5abbc 100644
--- a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/management/MasterRestClient.java
+++ b/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/management/MasterRestClient.java
@@ -33,7 +33,7 @@ public class MasterRestClient {
 
     public static boolean register(String baseUrl, ConnectWorkerContainer connectWorkerContainer) {
 
-        String url = baseUrl + "api/v1/admin@streampipes.org/master/workercontainer";
+        String url = baseUrl + "/v1/admin@streampipes.org/master/administration";
 
         try {
             String adapterDescription = JacksonSerializer.getObjectMapper().writeValueAsString(connectWorkerContainer);
diff --git a/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/config/ConfigKeys.java b/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/config/ConfigKeys.java
index 600b836..f6148fc 100644
--- a/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/config/ConfigKeys.java
+++ b/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/config/ConfigKeys.java
@@ -25,8 +25,8 @@ public class ConfigKeys {
     final static String BACKEND_HOST = "SP_BACKEND_HOST";
     final static String BACKEND_PORT = "SP_BACKEND_PORT";
 
-    final static String CONNECT_CONTAINER_MASTER_HOST = "SP_CONNECT_CONTAINER_HOST";
-    final static String CONNECT_CONTAINER_MASTER_PORT = "SP_CONNECT_CONTAINER_PORT";
+//    final static String CONNECT_CONTAINER_MASTER_HOST = "SP_CONNECT_CONTAINER_HOST";
+//    final static String CONNECT_CONTAINER_MASTER_PORT = "SP_CONNECT_CONTAINER_PORT";
 
     final static String DATA_LOCATION = "SP_DATA_LOCATION";
 
diff --git a/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/config/ConnectContainerConfig.java b/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/config/ConnectContainerConfig.java
index f407c50..87eb80c 100644
--- a/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/config/ConnectContainerConfig.java
+++ b/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/config/ConnectContainerConfig.java
@@ -19,7 +19,6 @@
 package org.apache.streampipes.connect.config;
 
 import org.apache.streampipes.config.SpConfig;
-import org.apache.streampipes.connect.init.Config;
 
 public enum ConnectContainerConfig {
   INSTANCE;
@@ -35,8 +34,8 @@ public enum ConnectContainerConfig {
     config.register(ConfigKeys.BACKEND_HOST, "backend", "Hostname for backend");
     config.register(ConfigKeys.BACKEND_PORT, 8030, "Port for backend");
 
-    config.register(ConfigKeys.CONNECT_CONTAINER_MASTER_PORT, Config.MASTER_PORT, "The port of the connect container");
-    config.register(ConfigKeys.CONNECT_CONTAINER_MASTER_HOST, "connect-master", "The hostname of the connect container");
+//    config.register(ConfigKeys.CONNECT_CONTAINER_MASTER_PORT, Config.MASTER_PORT, "The port of the connect container");
+//    config.register(ConfigKeys.CONNECT_CONTAINER_MASTER_HOST, "connect-master", "The hostname of the connect container");
 
     config.register(ConfigKeys.DATA_LOCATION,"/data/", "Folder that stores all the uploaded data");
 
@@ -46,10 +45,6 @@ public enum ConnectContainerConfig {
     return config.getString(ConfigKeys.BACKEND_HOST) + ":" + config.getInteger(ConfigKeys.BACKEND_PORT) + "/streampipes-backend/";
   }
 
-  public String getConnectContainerMasterUrl() {
-    return "http://" + getConnectContainerMasterHost() + ":" + getConnectContainerMasterPort() + "/";
-  }
-
   public String getBackendHost() {
     return config.getString(ConfigKeys.BACKEND_HOST);
   }
@@ -58,14 +53,6 @@ public enum ConnectContainerConfig {
     return config.getInteger(ConfigKeys.BACKEND_PORT);
   }
 
-  public String getConnectContainerMasterHost() {
-    return config.getString(ConfigKeys.CONNECT_CONTAINER_MASTER_HOST);
-  }
-
-  public Integer getConnectContainerMasterPort() {
-    return config.getInteger(ConfigKeys.CONNECT_CONTAINER_MASTER_PORT);
-  }
-
   public String getDataLocation() {
     return config.getString(ConfigKeys.DATA_LOCATION);
   }
diff --git a/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/init/Config.java b/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/init/Config.java
deleted file mode 100644
index 0e95b25..0000000
--- a/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/init/Config.java
+++ /dev/null
@@ -1,25 +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.connect.init;
-
-public class Config {
-    public static int MASTER_PORT = 8099;
-    public static String MASTER_HOST = "connect-master";
-    public static int WORKER_PORT = 8098;
-}
diff --git a/ui/nginx_config/default.conf b/ui/nginx_config/default.conf
index 8ec8a65..48fd258 100644
--- a/ui/nginx_config/default.conf
+++ b/ui/nginx_config/default.conf
@@ -58,14 +58,16 @@ server {
   }
 
   location /streampipes-connect/ {
+    set $upstream backend:8030;
 #    set $upstream connect-master:8099;
 
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header X-NginX-Proxy true;
-    if ($request_uri ~* "/streampipes-connect/(.*)") {
-                proxy_pass  http://connect-master:8099/$1;
-    }
+    proxy_pass http://$upstream;
+;     if ($request_uri ~* "/streampipes-connect/(.*)") {
+;                 proxy_pass  http://connect-master:8099/$1;
+;     }
     proxy_ssl_session_reuse off;
     proxy_set_header Host $http_host;
   }
diff --git a/ui/src/app/connect/services/data-marketplace.service.ts b/ui/src/app/connect/services/data-marketplace.service.ts
index 710b11d..ff0871a 100644
--- a/ui/src/app/connect/services/data-marketplace.service.ts
+++ b/ui/src/app/connect/services/data-marketplace.service.ts
@@ -39,7 +39,7 @@ import {Observable, zip} from "rxjs";
 
 @Injectable()
 export class DataMarketplaceService {
-  private host = '/streampipes-connect/';
+  private host = '/streampipes-backend/api/connect';
 
   constructor(
       private http: HttpClient,
@@ -66,7 +66,6 @@ export class DataMarketplaceService {
     return this.http
         .get(
             this.host +
-            'api/v1/' +
             this.authStatusService.email +
             path
         )
diff --git a/ui/webpack.partial.dev.js b/ui/webpack.partial.dev.js
index 149748d..d917ad8 100644
--- a/ui/webpack.partial.dev.js
+++ b/ui/webpack.partial.dev.js
@@ -24,8 +24,8 @@ module.exports = merge(baseConfig, {
         port: 8082,
         proxy: {
             '/streampipes-connect': {
-                target: 'http://localhost:8099',
-                pathRewrite: { '^/streampipes-connect': '' },
+                target: 'http://localhost:8030',
+                // pathRewrite: { '^/streampipes-connect': '' },
                 secure: false,
             },
             '/streampipes-backend': {