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/05/18 06:49:31 UTC

[incubator-streampipes-extensions] branch STREAMPIPES-130 updated: Implement ImageSetAdapter

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

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


The following commit(s) were added to refs/heads/STREAMPIPES-130 by this push:
     new ceaf024  Implement ImageSetAdapter
ceaf024 is described below

commit ceaf024876b3a271566c0d33d87eb10354c5ab0a
Author: Philipp Zehnder <ze...@fzi.de>
AuthorDate: Mon May 18 08:49:11 2020 +0200

    Implement ImageSetAdapter
---
 .../streampipes/connect/ConnectAdapterInit.java    |   2 +
 .../connect/adapters/image/ImageZipAdapter.java    |   2 +-
 .../adapters/image/set/ImageSetAdapter.java        |  78 ++++++++++++++++++++-
 .../documentation.md                               |   5 +-
 .../icon.png                                       | Bin 0 -> 5332 bytes
 .../strings.en                                     |   8 +++
 .../documentation.md                               |   5 +-
 .../icon.png                                       | Bin 42675 -> 5332 bytes
 8 files changed, 92 insertions(+), 8 deletions(-)

diff --git a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/ConnectAdapterInit.java b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/ConnectAdapterInit.java
index ba24adb..c8ec37c 100644
--- a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/ConnectAdapterInit.java
+++ b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/ConnectAdapterInit.java
@@ -18,6 +18,7 @@
 
 package org.apache.streampipes.connect;
 
+import org.apache.streampipes.connect.adapters.image.set.ImageSetAdapter;
 import org.apache.streampipes.connect.adapters.image.stream.ImageStreamAdapter;
 import org.apache.streampipes.connect.adapters.iss.IssAdapter;
 import org.apache.streampipes.connect.adapters.netio.NetioMQTTAdapter;
@@ -88,6 +89,7 @@ public class ConnectAdapterInit extends AdapterWorkerContainer {
             .add(new NetioMQTTAdapter())
             .add(new Plc4xS7Adapter())
             .add(new ImageStreamAdapter())
+            .add(new ImageSetAdapter())
             .add(new IssAdapter());
 
     String workerUrl = ConnectWorkerConfig.INSTANCE.getConnectContainerWorkerUrl();
diff --git a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/ImageZipAdapter.java b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/ImageZipAdapter.java
index c2a89ea..0cae531 100644
--- a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/ImageZipAdapter.java
+++ b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/ImageZipAdapter.java
@@ -71,7 +71,7 @@ public class ImageZipAdapter {
         running = true;
 
         task = new Thread(() -> {
-            while (running) {
+            while (running && zipFileImageIterator.hasNext()) {
 
                 try {
                     String image = zipFileImageIterator.next();
diff --git a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/set/ImageSetAdapter.java b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/set/ImageSetAdapter.java
index 76c5f52..5477392 100644
--- a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/set/ImageSetAdapter.java
+++ b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/set/ImageSetAdapter.java
@@ -16,5 +16,81 @@ limitations under the License.
 
 package org.apache.streampipes.connect.adapters.image.set;
 
-public class ImageSetAdapter {
+import org.apache.streampipes.connect.adapter.Adapter;
+import org.apache.streampipes.connect.adapter.exception.AdapterException;
+import org.apache.streampipes.connect.adapter.exception.ParseException;
+import org.apache.streampipes.connect.adapter.model.specific.SpecificDataSetAdapter;
+import org.apache.streampipes.connect.adapters.image.ImageZipAdapter;
+import org.apache.streampipes.connect.adapters.image.ImageZipUtils;
+import org.apache.streampipes.model.connect.adapter.SpecificAdapterSetDescription;
+import org.apache.streampipes.model.connect.guess.GuessSchema;
+import org.apache.streampipes.sdk.builder.adapter.GuessSchemaBuilder;
+import org.apache.streampipes.sdk.builder.adapter.SpecificDataSetAdapterBuilder;
+import org.apache.streampipes.sdk.helpers.Labels;
+import org.apache.streampipes.sdk.helpers.Locales;
+import org.apache.streampipes.sdk.utils.Assets;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import static org.apache.streampipes.sdk.helpers.EpProperties.imageProperty;
+import static org.apache.streampipes.sdk.helpers.EpProperties.timestampProperty;
+
+public class ImageSetAdapter extends SpecificDataSetAdapter {
+
+    private static final Logger LOG = LoggerFactory.getLogger(ImageSetAdapter.class);
+
+    public static final String ID = "org.apache.streampipes.connect.adapters.image.set";
+
+    private ImageZipAdapter imageZipAdapter;
+
+    public ImageSetAdapter() {
+
+    }
+
+    public ImageSetAdapter(SpecificAdapterSetDescription adapterDescription) {
+        super(adapterDescription);
+    }
+
+    @Override
+    public SpecificAdapterSetDescription declareModel() {
+        SpecificAdapterSetDescription description = SpecificDataSetAdapterBuilder.create(ID)
+                .withLocales(Locales.EN)
+                .withAssets(Assets.DOCUMENTATION, Assets.ICON)
+                .requiredIntegerParameter(Labels.withId(ImageZipUtils.INTERVAL_KEY))
+                .requiredFile(Labels.withId(ImageZipUtils.ZIP_FILE_KEY))
+                .build();
+        description.setAppId(ID);
+
+        return description;
+    }
+
+    @Override
+    public void startAdapter() throws AdapterException {
+        imageZipAdapter = new ImageZipAdapter(adapterDescription);
+        imageZipAdapter.start(adapterPipeline, false);
+    }
+
+    @Override
+    public void stopAdapter() throws AdapterException {
+        imageZipAdapter.stop();
+    }
+
+    @Override
+    public GuessSchema getSchema(SpecificAdapterSetDescription adapterDescription) throws AdapterException, ParseException
+    {
+        return GuessSchemaBuilder.create()
+                .property(timestampProperty(ImageZipUtils.TIMESTAMP))
+                .property(imageProperty(ImageZipUtils.IMAGE))
+                .build();
+    }
+
+    @Override
+    public Adapter getInstance(SpecificAdapterSetDescription adapterDescription) {
+        return new ImageSetAdapter(adapterDescription);
+    }
+
+    @Override
+    public String getId() {
+        return ID;
+    }
 }
diff --git a/streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.stream/documentation.md b/streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.set/documentation.md
similarity index 89%
copy from streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.stream/documentation.md
copy to streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.set/documentation.md
index c3da505..317c87b 100644
--- a/streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.stream/documentation.md
+++ b/streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.set/documentation.md
@@ -16,7 +16,7 @@
   ~
   -->
 
-## ISS Adapter
+## Image upload (Set)
 
 <p align="center"> 
     <img src="icon.png" width="150px;" class="pe-image-documentation"/>
@@ -25,8 +25,7 @@
 ***
 
 ## Description
-
-Shows the live position of the International Space Station (ISS), updated every two seconds.
+Upload a zip file of images and create an event per image
 
 
 ***
diff --git a/streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.set/icon.png b/streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.set/icon.png
new file mode 100644
index 0000000..52f3575
Binary files /dev/null and b/streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.set/icon.png differ
diff --git a/streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.set/strings.en b/streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.set/strings.en
new file mode 100644
index 0000000..2a8d18d
--- /dev/null
+++ b/streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.set/strings.en
@@ -0,0 +1,8 @@
+org.apache.streampipes.connect.adapters.image.set.title=Image Upload (Set)
+org.apache.streampipes.connect.adapters.image.set.description=
+
+interval-key.title=Interval [ms]
+interval-key.description=Define waiting time between the images
+
+zip-file-key.title=Zipped Folder With Images
+zip-file-key.description=A zip file that contains the images to stream
diff --git a/streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.stream/documentation.md b/streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.stream/documentation.md
index c3da505..f7425a2 100644
--- a/streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.stream/documentation.md
+++ b/streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.stream/documentation.md
@@ -16,7 +16,7 @@
   ~
   -->
 
-## ISS Adapter
+## Image upload (Stream)
 
 <p align="center"> 
     <img src="icon.png" width="150px;" class="pe-image-documentation"/>
@@ -26,8 +26,7 @@
 
 ## Description
 
-Shows the live position of the International Space Station (ISS), updated every two seconds.
-
+Upload a zip file of images and create an event per image
 
 ***
 
diff --git a/streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.stream/icon.png b/streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.stream/icon.png
index e4d1008..52f3575 100644
Binary files a/streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.stream/icon.png and b/streampipes-connect-adapters/src/main/resources/org.apache.streampipes.connect.adapters.image.stream/icon.png differ