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) {