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 2022/06/29 13:23:40 UTC

[incubator-streampipes] branch dev updated: [STREAMPIPES-549] Add extensions service for IIoT pipeline elements

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 1711b577a [STREAMPIPES-549] Add extensions service for IIoT pipeline elements
1711b577a is described below

commit 1711b577a48df051ffff51242e9148b153a7bc3f
Author: Dominik Riemer <do...@gmail.com>
AuthorDate: Wed Jun 29 15:23:23 2022 +0200

    [STREAMPIPES-549] Add extensions service for IIoT pipeline elements
---
 .github/workflows/build.yml                        |  10 +-
 streampipes-extensions/pom.xml                     |  48 ++++----
 .../streampipes-extensions-all-iiot/pom.xml        | 131 +++++++++++++++++++++
 .../extensions/all/iiot/AllExtensionsIIoTInit.java |  56 +++++++++
 4 files changed, 223 insertions(+), 22 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index af9fb3793..1d7c431a8 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -114,6 +114,14 @@ jobs:
           push: true
           tags: ${{ env.DOCKERHUB_APACHE_REPO }}/pipeline-elements-all-flink:${{ env.MVN_VERSION }}
 
+      - name: Build and Push Docker Image extensions-all-iiot
+        uses: docker/build-push-action@v2
+        with:
+          context: ./streampipes-extensions/streampipes-extensions-all-iiot
+          platforms: linux/amd64,linux/arm64/v8,linux/arm/v7
+          push: true
+          tags: ${{ env.DOCKERHUB_APACHE_REPO }}/extensions-all-iiot:${{ env.MVN_VERSION }}
+
       - name: Build and Push Docker Image pipeline-elements-all-jvm
         uses: docker/build-push-action@v2
         with:
@@ -128,4 +136,4 @@ jobs:
           context: ./streampipes-extensions/streampipes-sinks-internal-jvm
           platforms: linux/amd64,linux/arm64/v8,linux/arm/v7
           push: true
-          tags: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-internal-jvm:${{ env.MVN_VERSION }}
\ No newline at end of file
+          tags: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-internal-jvm:${{ env.MVN_VERSION }}
diff --git a/streampipes-extensions/pom.xml b/streampipes-extensions/pom.xml
index 0588278ec..37eebb9e3 100644
--- a/streampipes-extensions/pom.xml
+++ b/streampipes-extensions/pom.xml
@@ -31,35 +31,41 @@
     <packaging>pom</packaging>
 
     <modules>
-        <module>streampipes-sinks-databases-jvm</module>
-        <module>streampipes-sinks-internal-jvm</module>
-        <module>streampipes-sinks-brokers-jvm</module>
-        <module>streampipes-processors-filters-jvm</module>
-        <module>streampipes-sinks-databases-flink</module>
+        <module>streampipes-connect-adapters</module>
+        <module>streampipes-connect-adapters-iiot</module>
+
+        <module>streampipes-extensions-all-iiot</module>
+        <module>streampipes-extensions-all-jvm</module>
+
+        <module>streampipes-pipeline-elements-all-jvm</module>
+        <module>streampipes-pipeline-elements-all-flink</module>
+        <module>streampipes-pipeline-elements-data-simulator</module>
+        <module>streampipes-pipeline-elements-shared</module>
+
         <module>streampipes-processors-aggregation-flink</module>
-        <module>streampipes-processors-pattern-detection-flink</module>
+        <module>streampipes-processors-change-detection-jvm</module>
         <module>streampipes-processors-enricher-flink</module>
         <module>streampipes-processors-enricher-jvm</module>
-        <module>streampipes-sources-watertank-simulator</module>
-        <module>streampipes-sources-vehicle-simulator</module>
-        <module>streampipes-processors-transformation-flink</module>
+        <module>streampipes-processors-filters-jvm</module>
+        <module>streampipes-processors-filters-siddhi</module>
+        <module>streampipes-processors-geo-flink</module>
         <module>streampipes-processors-geo-jvm</module>
+        <module>streampipes-processors-image-processing-jvm</module>
+        <module>streampipes-processors-pattern-detection-flink</module>
         <module>streampipes-processors-statistics-flink</module>
-        <module>streampipes-processors-filters-siddhi</module>
+        <module>streampipes-processors-transformation-flink</module>
         <module>streampipes-processors-text-mining-flink</module>
         <module>streampipes-processors-text-mining-jvm</module>
-        <module>streampipes-sinks-notifications-jvm</module>
-        <module>streampipes-pipeline-elements-shared</module>
-        <module>streampipes-processors-geo-flink</module>
-        <module>streampipes-processors-image-processing-jvm</module>
         <module>streampipes-processors-transformation-jvm</module>
-        <module>streampipes-pipeline-elements-all-jvm</module>
-        <module>streampipes-pipeline-elements-data-simulator</module>
-        <module>streampipes-connect-adapters</module>
-        <module>streampipes-pipeline-elements-all-flink</module>
-        <module>streampipes-processors-change-detection-jvm</module>
-        <module>streampipes-extensions-all-jvm</module>
-        <module>streampipes-connect-adapters-iiot</module>
+
+        <module>streampipes-sinks-brokers-jvm</module>
+        <module>streampipes-sinks-databases-jvm</module>
+        <module>streampipes-sinks-internal-jvm</module>
+        <module>streampipes-sinks-databases-flink</module>
+        <module>streampipes-sinks-notifications-jvm</module>
+
+        <module>streampipes-sources-watertank-simulator</module>
+        <module>streampipes-sources-vehicle-simulator</module>
     </modules>
 
     <properties>
diff --git a/streampipes-extensions/streampipes-extensions-all-iiot/pom.xml b/streampipes-extensions/streampipes-extensions-all-iiot/pom.xml
new file mode 100644
index 000000000..ed7bf2d18
--- /dev/null
+++ b/streampipes-extensions/streampipes-extensions-all-iiot/pom.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>streampipes-extensions</artifactId>
+        <groupId>org.apache.streampipes</groupId>
+        <version>0.70.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>streampipes-extensions-all-iiot</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-container-extensions</artifactId>
+            <version>0.70.0-SNAPSHOT</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.graalvm.nativeimage</groupId>
+                    <artifactId>svm</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-processors-filters-jvm</artifactId>
+            <version>0.70.0-SNAPSHOT</version>
+            <classifier>embed</classifier>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.graalvm.nativeimage</groupId>
+                    <artifactId>svm</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-processors-filters-siddhi</artifactId>
+            <version>0.70.0-SNAPSHOT</version>
+            <classifier>embed</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-processors-transformation-jvm</artifactId>
+            <version>0.70.0-SNAPSHOT</version>
+            <classifier>embed</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-sinks-brokers-jvm</artifactId>
+            <version>0.70.0-SNAPSHOT</version>
+            <classifier>embed</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-sinks-databases-jvm</artifactId>
+            <version>0.70.0-SNAPSHOT</version>
+            <classifier>embed</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-sinks-internal-jvm</artifactId>
+            <version>0.70.0-SNAPSHOT</version>
+            <classifier>embed</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-sinks-notifications-jvm</artifactId>
+            <version>0.70.0-SNAPSHOT</version>
+            <classifier>embed</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-processors-enricher-jvm</artifactId>
+            <version>0.70.0-SNAPSHOT</version>
+            <classifier>embed</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-processors-change-detection-jvm</artifactId>
+            <version>0.70.0-SNAPSHOT</version>
+            <classifier>embed</classifier>
+        </dependency>
+
+        <!-- 3rd party dependencies to avoid convergence errors -->
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-handler</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.atteo.classindex</groupId>
+            <artifactId>classindex</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-connect-adapters-iiot</artifactId>
+            <version>0.70.0-SNAPSHOT</version>
+            <classifier>embed</classifier>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                        <configuration>
+                            <mainClass>org.apache.streampipes.extensions.all.iiot.AllExtensionsIIoTInit</mainClass>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+        <finalName>streampipes-extensions-all-iiot</finalName>
+    </build>
+
+</project>
diff --git a/streampipes-extensions/streampipes-extensions-all-iiot/src/main/java/org/apache/streampipes/extensions/all/iiot/AllExtensionsIIoTInit.java b/streampipes-extensions/streampipes-extensions-all-iiot/src/main/java/org/apache/streampipes/extensions/all/iiot/AllExtensionsIIoTInit.java
new file mode 100644
index 000000000..65fde4eda
--- /dev/null
+++ b/streampipes-extensions/streampipes-extensions-all-iiot/src/main/java/org/apache/streampipes/extensions/all/iiot/AllExtensionsIIoTInit.java
@@ -0,0 +1,56 @@
+package org.apache.streampipes.extensions.all.iiot;
+
+import org.apache.streampipes.connect.iiot.ConnectAdapterIiotInit;
+import org.apache.streampipes.container.extensions.ExtensionsModelSubmitter;
+import org.apache.streampipes.container.model.SpServiceDefinition;
+import org.apache.streampipes.container.model.SpServiceDefinitionBuilder;
+import org.apache.streampipes.dataformat.cbor.CborDataFormatFactory;
+import org.apache.streampipes.dataformat.fst.FstDataFormatFactory;
+import org.apache.streampipes.dataformat.json.JsonDataFormatFactory;
+import org.apache.streampipes.dataformat.smile.SmileDataFormatFactory;
+import org.apache.streampipes.messaging.jms.SpJmsProtocolFactory;
+import org.apache.streampipes.messaging.kafka.SpKafkaProtocolFactory;
+import org.apache.streampipes.messaging.mqtt.SpMqttProtocolFactory;
+import org.apache.streampipes.processors.changedetection.jvm.ChangeDetectionJvmInit;
+import org.apache.streampipes.processors.enricher.jvm.EnricherJvmInit;
+import org.apache.streampipes.processors.filters.jvm.FiltersJvmInit;
+import org.apache.streampipes.processors.siddhi.FiltersSiddhiInit;
+import org.apache.streampipes.processors.transformation.jvm.TransformationJvmInit;
+import org.apache.streampipes.sinks.brokers.jvm.BrokersJvmInit;
+import org.apache.streampipes.sinks.databases.jvm.DatabasesJvmInit;
+import org.apache.streampipes.sinks.internal.jvm.SinksInternalJvmInit;
+import org.apache.streampipes.sinks.notifications.jvm.SinksNotificationsJvmInit;
+
+public class AllExtensionsIIoTInit extends ExtensionsModelSubmitter {
+
+  public static void main (String[] args) {
+    new AllExtensionsIIoTInit().init();
+  }
+
+  @Override
+  public SpServiceDefinition provideServiceDefinition() {
+    return SpServiceDefinitionBuilder.create("org.apache.streampipes.extensions.all.iiot",
+        "StreamPipes Extensions (IIoT only)",
+        "", 8090)
+      .merge(new ConnectAdapterIiotInit().provideServiceDefinition())
+      .merge(new SinksInternalJvmInit().provideServiceDefinition())
+      .merge(new FiltersJvmInit().provideServiceDefinition())
+      .merge(new ChangeDetectionJvmInit().provideServiceDefinition())
+      .merge(new EnricherJvmInit().provideServiceDefinition())
+      .merge(new FiltersSiddhiInit().provideServiceDefinition())
+      .merge(new TransformationJvmInit().provideServiceDefinition())
+      .merge(new BrokersJvmInit().provideServiceDefinition())
+      .merge(new DatabasesJvmInit().provideServiceDefinition())
+      .merge(new SinksNotificationsJvmInit().provideServiceDefinition())
+      .registerMessagingFormats(
+        new JsonDataFormatFactory(),
+        new CborDataFormatFactory(),
+        new SmileDataFormatFactory(),
+        new FstDataFormatFactory())
+      .registerMessagingProtocols(
+        new SpKafkaProtocolFactory(),
+        new SpJmsProtocolFactory(),
+        new SpMqttProtocolFactory())
+      .build();
+  }
+}