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