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 2021/12/16 14:23:47 UTC

[incubator-streampipes] branch dev updated: [hotfix] Use Client API to fetch files in Image adapter and file protocol

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

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


The following commit(s) were added to refs/heads/dev by this push:
     new b42e965  [hotfix] Use Client API to fetch files in Image adapter and file protocol
b42e965 is described below

commit b42e9656e7026045bf88eb8fe3ff2315e980bdac
Author: Dominik Riemer <do...@gmail.com>
AuthorDate: Thu Dec 16 15:23:37 2021 +0100

    [hotfix] Use Client API to fetch files in Image adapter and file protocol
---
 .../connect/iiot/protocol/set/FileProtocol.java            |  6 +-----
 .../connect/adapters/image/ImageZipAdapter.java            |  2 +-
 .../connect/adapters/image/ZipFileImageIterator.java       |  9 +++++++--
 .../sdk/extractor/AbstractParameterExtractor.java          | 14 ++++++--------
 4 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/streampipes-extensions/streampipes-connect-adapters-iiot/src/main/java/org/apache/streampipes/connect/iiot/protocol/set/FileProtocol.java b/streampipes-extensions/streampipes-connect-adapters-iiot/src/main/java/org/apache/streampipes/connect/iiot/protocol/set/FileProtocol.java
index a7788f2..25976de 100644
--- a/streampipes-extensions/streampipes-connect-adapters-iiot/src/main/java/org/apache/streampipes/connect/iiot/protocol/set/FileProtocol.java
+++ b/streampipes-extensions/streampipes-connect-adapters-iiot/src/main/java/org/apache/streampipes/connect/iiot/protocol/set/FileProtocol.java
@@ -54,7 +54,6 @@ public class FileProtocol extends Protocol {
 
     public static final String ID = "org.apache.streampipes.connect.iiot.protocol.set.file";
 
-    private String fileFetchUrl;
     private String selectedFilename;
 
     public FileProtocol() {
@@ -62,10 +61,8 @@ public class FileProtocol extends Protocol {
 
     public FileProtocol(IParser parser,
                         IFormat format,
-                        String fileFetchUrl,
                         String selectedFilename) {
         super(parser, format);
-        this.fileFetchUrl = fileFetchUrl;
         this.selectedFilename = selectedFilename;
     }
 
@@ -83,9 +80,8 @@ public class FileProtocol extends Protocol {
     @Override
     public Protocol getInstance(ProtocolDescription protocolDescription, IParser parser, IFormat format) {
         StaticPropertyExtractor extractor = StaticPropertyExtractor.from(protocolDescription.getConfig());
-        String fileFetchUrl = extractor.selectedFileFetchUrl("filePath");
         String selectedFilename = extractor.selectedFilename("filePath");
-        return new FileProtocol(parser, format, fileFetchUrl, selectedFilename);
+        return new FileProtocol(parser, format, selectedFilename);
     }
 
     @Override
diff --git a/streampipes-extensions/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/ImageZipAdapter.java b/streampipes-extensions/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/ImageZipAdapter.java
index 228e447..d35808f 100644
--- a/streampipes-extensions/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/ImageZipAdapter.java
+++ b/streampipes-extensions/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/ImageZipAdapter.java
@@ -56,7 +56,7 @@ public class ImageZipAdapter {
                 StaticPropertyExtractor.from(adapterDescription.getConfig());
 
         Integer timeBetweenReplay = extractor.singleValueParameter(ImageZipUtils.INTERVAL_KEY, Integer.class);
-        String zipFileUrl = extractor.selectedFileFetchUrl(ImageZipUtils.ZIP_FILE_KEY);
+        String zipFileUrl = extractor.selectedFilename(ImageZipUtils.ZIP_FILE_KEY);
         ZipFileImageIterator zipFileImageIterator;
         try {
             zipFileImageIterator = new ZipFileImageIterator(zipFileUrl, infinite);
diff --git a/streampipes-extensions/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/ZipFileImageIterator.java b/streampipes-extensions/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/ZipFileImageIterator.java
index cd08441..80c0936 100644
--- a/streampipes-extensions/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/ZipFileImageIterator.java
+++ b/streampipes-extensions/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/ZipFileImageIterator.java
@@ -19,8 +19,11 @@
 package org.apache.streampipes.connect.adapters.image;
 
 import org.apache.http.client.fluent.Request;
+import org.apache.streampipes.client.StreamPipesClient;
+import org.apache.streampipes.service.extensions.base.client.StreamPipesClientResolver;
 
 import java.io.BufferedOutputStream;
+import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -83,8 +86,10 @@ public class ZipFileImageIterator {
 
     }
 
-    private ZipInputStream fetchZipInputStream(String fileFetchUrl) throws IOException {
-        return new ZipInputStream(Request.Get(fileFetchUrl).execute().returnContent().asStream());
+    private ZipInputStream fetchZipInputStream(String filename) {
+        StreamPipesClient client = new StreamPipesClientResolver().makeStreamPipesClientInstance();
+        byte[] result = client.fileApi().getFileContent(filename);
+        return new ZipInputStream(new ByteArrayInputStream(result));
     }
 
     private byte[] extractFile(ZipInputStream zipIn) throws IOException {
diff --git a/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/extractor/AbstractParameterExtractor.java b/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/extractor/AbstractParameterExtractor.java
index 6802c32..89f155d 100644
--- a/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/extractor/AbstractParameterExtractor.java
+++ b/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/extractor/AbstractParameterExtractor.java
@@ -140,15 +140,13 @@ public abstract class AbstractParameterExtractor<T extends InvocableStreamPipesE
     return getStaticPropertyByName(internalName, FileStaticProperty.class).getLocationPath();
   }
 
+  /**
+   * @deprecated
+   * This won't work after release 0.69.0 as all API requests against the core need to be authenticated.
+   * Use the StreamPipes Client File API instead (e.g., StreamPipesClientResolver.makeStreamPipesClientInstance()).
+   **/
   public String selectedFileFetchUrl(String internalName) {
-    return makeFileRequestPath(selectedFilename(internalName));
-  }
-
-  private String makeFileRequestPath(String filename) {
-    return BackendConfig.INSTANCE.getBackendUrl()
-            + "/streampipes-backend/api/v2/noauth"
-            + "/files/"
-            + filename;
+    throw new IllegalArgumentException("Deprecated as API requests need to be authenticated - use the StreamPipes Client file API instead.");
   }
 
   private <V, T extends SelectionStaticProperty> V selectedSingleValue(String internalName, Class<V> targetClass, Class<T> oneOfStaticProperty) {