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

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


The following commit(s) were added to refs/heads/STREAMPIPES-319 by this push:
     new 8677093  [STREAMPIPES-319] Refactor adapters and pipeline elements to 
support service builder
8677093 is described below

commit 8677093b0210016b2cd6693c36c2fd05e128ccf5
Author: Dominik Riemer <[email protected]>
AuthorDate: Thu Jun 24 08:04:42 2021 +0200

    [STREAMPIPES-319] Refactor adapters and pipeline elements to support 
service builder
---
 .../streampipes/connect/ConnectAdapterInit.java    | 113 +++++----
 .../streampipes/connect/adapters/PullAdapter.java  |   2 +-
 .../connect/adapters/PullRestAdapter.java          |   2 +-
 .../adapters/coindesk/CoindeskBitcoinAdapter.java  |   4 +-
 .../connect/adapters/flic/FlicMQTTAdapter.java     |   2 +-
 .../connect/adapters/gdelt/GdeltAdapter.java       |   2 +-
 .../connect/adapters/iex/IexCloudNewsAdapter.java  |   4 +-
 .../connect/adapters/iex/IexCloudStockAdapter.java |   4 +-
 .../connect/adapters/image/ImageZipAdapter.java    |   2 +-
 .../adapters/image/set/ImageSetAdapter.java        |   4 +-
 .../adapters/image/stream/ImageStreamAdapter.java  |   4 +-
 .../connect/adapters/influxdb/InfluxDbClient.java  |   2 +-
 .../adapters/influxdb/InfluxDbSetAdapter.java      |   4 +-
 .../adapters/influxdb/InfluxDbStreamAdapter.java   |   4 +-
 .../connect/adapters/iss/IssAdapter.java           |   4 +-
 .../connect/adapters/mysql/MySqlAdapter.java       |   6 +-
 .../connect/adapters/mysql/MySqlClient.java        |   4 +-
 .../connect/adapters/mysql/MySqlSetAdapter.java    |   4 +-
 .../connect/adapters/mysql/MySqlStreamAdapter.java |   4 +-
 .../connect/adapters/netio/NetioMQTTAdapter.java   |   2 +-
 .../connect/adapters/netio/NetioRestAdapter.java   |   2 +-
 .../streampipes/connect/adapters/opcua/OpcUa.java  |   2 +-
 .../connect/adapters/opcua/OpcUaAdapter.java       |   4 +-
 .../connect/adapters/opcua/utils/OpcUaUtil.java    |   4 +-
 .../adapters/plc4x/modbus/Plc4xModbusAdapter.java  |   4 +-
 .../plc4x/passive/Plc4xPassiveAdapter.java         |   4 +-
 .../connect/adapters/plc4x/s7/Plc4xS7Adapter.java  |   2 +-
 .../connect/adapters/ros/RosBridgeAdapter.java     |   7 +-
 .../adapters/sensemap/OpenSenseMapAdapter.java     |   2 +-
 .../simulator/machine/MachineDataSimulator.java    |   2 +-
 .../machine/MachineDataSimulatorUtils.java         |   2 +-
 .../machine/MachineDataStreamAdapter.java          |   4 +-
 .../simulator/random/RandomDataSetAdapter.java     |   4 +-
 .../simulator/random/RandomDataStreamAdapter.java  |   4 +-
 .../connect/adapters/slack/SlackAdapter.java       |   4 +-
 .../connect/adapters/ti/TISensorTag.java           |   4 +-
 .../adapters/wikipedia/WikipediaAdapter.java       |   4 +-
 .../connect/protocol/set/FileProtocol.java         |  24 +-
 .../connect/protocol/set/HttpProtocol.java         |  22 +-
 .../connect/protocol/stream/BrokerProtocol.java    |   8 +-
 .../protocol/stream/FileStreamProtocol.java        |  20 +-
 .../connect/protocol/stream/HDFSProtocol.java      |  20 +-
 .../protocol/stream/HttpServerProtocol.java        |  14 +-
 .../protocol/stream/HttpStreamProtocol.java        |   9 +-
 .../connect/protocol/stream/KafkaProtocol.java     |  14 +-
 .../connect/protocol/stream/MqttProtocol.java      |  16 +-
 .../connect/protocol/stream/PullProtocol.java      |  19 +-
 .../connect/protocol/stream/WebsocketProtocol.java |  10 +-
 .../protocol/stream/pulsar/PulsarProtocol.java     |  22 +-
 .../extensions/all/jvm/AllExtensionsInit.java      | 267 +++------------------
 .../pe/jvm/AllPipelineElementsInit.java            |   2 +-
 51 files changed, 242 insertions(+), 461 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 5190ff3..e434a2a 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,88 +18,87 @@
 
 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.flic.FlicMQTTAdapter;
-import org.apache.streampipes.connect.adapters.netio.NetioMQTTAdapter;
-import org.apache.streampipes.connect.adapters.netio.NetioRestAdapter;
-import org.apache.streampipes.connect.adapters.opcua.OpcUaAdapter;
-import org.apache.streampipes.connect.adapters.plc4x.modbus.Plc4xModbusAdapter;
-import 
org.apache.streampipes.connect.adapters.simulator.machine.MachineDataStreamAdapter;
-import org.apache.streampipes.connect.adapters.ti.TISensorTag;
-import org.apache.streampipes.connect.protocol.set.HttpProtocol;
 import org.apache.streampipes.connect.adapters.coindesk.CoindeskBitcoinAdapter;
+import org.apache.streampipes.connect.adapters.flic.FlicMQTTAdapter;
 import org.apache.streampipes.connect.adapters.gdelt.GdeltAdapter;
 import org.apache.streampipes.connect.adapters.iex.IexCloudNewsAdapter;
 import org.apache.streampipes.connect.adapters.iex.IexCloudStockAdapter;
+import org.apache.streampipes.connect.adapters.image.set.ImageSetAdapter;
+import org.apache.streampipes.connect.adapters.image.stream.ImageStreamAdapter;
 import org.apache.streampipes.connect.adapters.influxdb.InfluxDbSetAdapter;
 import org.apache.streampipes.connect.adapters.influxdb.InfluxDbStreamAdapter;
+import org.apache.streampipes.connect.adapters.iss.IssAdapter;
 import org.apache.streampipes.connect.adapters.mysql.MySqlSetAdapter;
 import org.apache.streampipes.connect.adapters.mysql.MySqlStreamAdapter;
+import org.apache.streampipes.connect.adapters.netio.NetioMQTTAdapter;
+import org.apache.streampipes.connect.adapters.netio.NetioRestAdapter;
+import org.apache.streampipes.connect.adapters.opcua.OpcUaAdapter;
+import org.apache.streampipes.connect.adapters.plc4x.modbus.Plc4xModbusAdapter;
 import org.apache.streampipes.connect.adapters.plc4x.s7.Plc4xS7Adapter;
 import org.apache.streampipes.connect.adapters.ros.RosBridgeAdapter;
+import 
org.apache.streampipes.connect.adapters.simulator.machine.MachineDataStreamAdapter;
 import 
org.apache.streampipes.connect.adapters.simulator.random.RandomDataSetAdapter;
 import 
org.apache.streampipes.connect.adapters.simulator.random.RandomDataStreamAdapter;
 import org.apache.streampipes.connect.adapters.slack.SlackAdapter;
+import org.apache.streampipes.connect.adapters.ti.TISensorTag;
 import 
org.apache.streampipes.connect.adapters.wikipedia.WikipediaEditedArticlesAdapter;
 import 
org.apache.streampipes.connect.adapters.wikipedia.WikipediaNewArticlesAdapter;
-import org.apache.streampipes.connect.config.ConnectWorkerConfig;
 import 
org.apache.streampipes.connect.container.worker.init.AdapterWorkerContainer;
-import org.apache.streampipes.connect.init.AdapterDeclarerSingleton;
 import org.apache.streampipes.connect.protocol.set.FileProtocol;
+import org.apache.streampipes.connect.protocol.set.HttpProtocol;
 import org.apache.streampipes.connect.protocol.stream.*;
 import org.apache.streampipes.connect.protocol.stream.pulsar.PulsarProtocol;
+import org.apache.streampipes.container.model.SpServiceDefinition;
+import org.apache.streampipes.container.model.SpServiceDefinitionBuilder;
 
 public class ConnectAdapterInit extends AdapterWorkerContainer {
 
   public static void main(String[] args) {
-    AdapterDeclarerSingleton
-            .getInstance()
-
-            // Protocols
-            .add(new FileProtocol())
-            .add(new HttpProtocol())
-            .add(new FileStreamProtocol())
-            .add(new HDFSProtocol())
-            .add(new KafkaProtocol())
-            .add(new MqttProtocol())
-            .add(new HttpStreamProtocol())
-            .add(new PulsarProtocol())
-            .add(new HttpServerProtocol())
-//
-//          // Specific Adapters
-            .add(new GdeltAdapter())
-            .add(new CoindeskBitcoinAdapter())
-            .add(new IexCloudNewsAdapter())
-            .add(new IexCloudStockAdapter())
-            .add(new MySqlStreamAdapter())
-            .add(new MySqlSetAdapter())
-            .add(new RandomDataSetAdapter())
-            .add(new RandomDataStreamAdapter())
-            .add(new MachineDataStreamAdapter())
-            .add(new SlackAdapter())
-            .add(new WikipediaEditedArticlesAdapter())
-            .add(new WikipediaNewArticlesAdapter())
-            .add(new RosBridgeAdapter())
-            .add(new OpcUaAdapter())
-            .add(new InfluxDbStreamAdapter())
-            .add(new InfluxDbSetAdapter())
-            .add(new TISensorTag())
-            .add(new NetioRestAdapter())
-            .add(new NetioMQTTAdapter())
-            .add(new Plc4xS7Adapter())
-            .add(new Plc4xModbusAdapter())
-            .add(new ImageStreamAdapter())
-            .add(new ImageSetAdapter())
-            .add(new IssAdapter())
-            .add(new FlicMQTTAdapter());
+    new ConnectAdapterInit().init();
+  }
 
-    String workerUrl = 
ConnectWorkerConfig.INSTANCE.getConnectContainerWorkerUrl();
-    String backendUrl = ConnectWorkerConfig.INSTANCE.getBackendUrl();
-    Integer workerPort = 
ConnectWorkerConfig.INSTANCE.getConnectContainerWorkerPort();
+  @Override
+  public SpServiceDefinition provideServiceDefinition() {
+    return SpServiceDefinitionBuilder.create("connect-worker-main",
+            "StreamPipes Connect Worker Main",
+            "",8098)
+            .registerAdapter(new GdeltAdapter())
+            .registerAdapter(new CoindeskBitcoinAdapter())
+            .registerAdapter(new IexCloudNewsAdapter())
+            .registerAdapter(new IexCloudStockAdapter())
+            .registerAdapter(new MySqlStreamAdapter())
+            .registerAdapter(new MySqlSetAdapter())
+            .registerAdapter(new RandomDataSetAdapter())
+            .registerAdapter(new RandomDataStreamAdapter())
+            .registerAdapter(new MachineDataStreamAdapter())
+            .registerAdapter(new SlackAdapter())
+            .registerAdapter(new WikipediaEditedArticlesAdapter())
+            .registerAdapter(new WikipediaNewArticlesAdapter())
+            .registerAdapter(new RosBridgeAdapter())
+            .registerAdapter(new OpcUaAdapter())
+            .registerAdapter(new InfluxDbStreamAdapter())
+            .registerAdapter(new InfluxDbSetAdapter())
+            .registerAdapter(new TISensorTag())
+            .registerAdapter(new NetioRestAdapter())
+            .registerAdapter(new NetioMQTTAdapter())
+            .registerAdapter(new Plc4xS7Adapter())
+            .registerAdapter(new Plc4xModbusAdapter())
+            .registerAdapter(new ImageStreamAdapter())
+            .registerAdapter(new ImageSetAdapter())
+            .registerAdapter(new IssAdapter())
+            .registerAdapter(new FlicMQTTAdapter())
 
-    new ConnectAdapterInit().init(workerUrl, backendUrl, workerPort);
+            .registerAdapter(new FileProtocol())
+            .registerAdapter(new HttpProtocol())
+            .registerAdapter(new FileStreamProtocol())
+            .registerAdapter(new HDFSProtocol())
+            .registerAdapter(new KafkaProtocol())
+            .registerAdapter(new MqttProtocol())
+            .registerAdapter(new HttpStreamProtocol())
+            .registerAdapter(new PulsarProtocol())
+            .registerAdapter(new HttpServerProtocol())
 
+            .build();
   }
+
 }
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/PullAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/PullAdapter.java
index 30cc9b5..157dac3 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/PullAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/PullAdapter.java
@@ -20,7 +20,7 @@ package org.apache.streampipes.connect.adapters;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.apache.streampipes.connect.adapter.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.AdapterException;
 import 
org.apache.streampipes.connect.adapter.model.specific.SpecificDataStreamAdapter;
 import org.apache.streampipes.connect.adapter.util.PollingSettings;
 import 
org.apache.streampipes.model.connect.adapter.SpecificAdapterStreamDescription;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/PullRestAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/PullRestAdapter.java
index 0638ab2..6262599 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/PullRestAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/PullRestAdapter.java
@@ -20,7 +20,7 @@ package org.apache.streampipes.connect.adapters;
 
 import com.google.gson.Gson;
 import org.apache.http.client.fluent.Request;
-import org.apache.streampipes.connect.adapter.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.AdapterException;
 import 
org.apache.streampipes.model.connect.adapter.SpecificAdapterStreamDescription;
 
 public abstract class PullRestAdapter extends PullAdapter {
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/coindesk/CoindeskBitcoinAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/coindesk/CoindeskBitcoinAdapter.java
index e0757f9..3c8f590 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/coindesk/CoindeskBitcoinAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/coindesk/CoindeskBitcoinAdapter.java
@@ -20,8 +20,8 @@ package org.apache.streampipes.connect.adapters.coindesk;
 import com.google.gson.Gson;
 import org.apache.http.client.fluent.Request;
 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.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import org.apache.streampipes.connect.adapter.sdk.ParameterExtractor;
 import org.apache.streampipes.connect.adapter.util.PollingSettings;
 import org.apache.streampipes.connect.adapters.PullAdapter;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/flic/FlicMQTTAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/flic/FlicMQTTAdapter.java
index 5bff31e..54cb2fe 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/flic/FlicMQTTAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/flic/FlicMQTTAdapter.java
@@ -21,7 +21,7 @@ package org.apache.streampipes.connect.adapters.flic;
 import com.google.gson.Gson;
 import org.apache.streampipes.connect.utils.MqttConnectUtils;
 import org.apache.streampipes.connect.adapter.Adapter;
-import org.apache.streampipes.connect.adapter.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.AdapterException;
 import org.apache.streampipes.connect.adapter.model.pipeline.AdapterPipeline;
 import 
org.apache.streampipes.connect.adapter.model.specific.SpecificDataStreamAdapter;
 import org.apache.streampipes.connect.protocol.stream.MqttConfig;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/gdelt/GdeltAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/gdelt/GdeltAdapter.java
index 743ccfa..2c88948 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/gdelt/GdeltAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/gdelt/GdeltAdapter.java
@@ -20,7 +20,7 @@ package org.apache.streampipes.connect.adapters.gdelt;
 
 import com.opencsv.CSVReader;
 import org.apache.streampipes.connect.adapter.Adapter;
-import org.apache.streampipes.connect.adapter.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.AdapterException;
 import org.apache.streampipes.connect.adapter.util.PollingSettings;
 import org.apache.streampipes.connect.adapters.PullAdapter;
 import 
org.apache.streampipes.model.connect.adapter.SpecificAdapterStreamDescription;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/iex/IexCloudNewsAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/iex/IexCloudNewsAdapter.java
index 3aca9be..916c698 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/iex/IexCloudNewsAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/iex/IexCloudNewsAdapter.java
@@ -19,8 +19,8 @@
 package org.apache.streampipes.connect.adapters.iex;
 
 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.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import org.apache.streampipes.connect.adapter.util.PollingSettings;
 import org.apache.streampipes.connect.adapters.iex.model.IexNewsData;
 import org.apache.streampipes.model.AdapterType;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/iex/IexCloudStockAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/iex/IexCloudStockAdapter.java
index 1860e9f..0461868 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/iex/IexCloudStockAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/iex/IexCloudStockAdapter.java
@@ -19,8 +19,8 @@
 package org.apache.streampipes.connect.adapters.iex;
 
 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.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import org.apache.streampipes.connect.adapter.util.PollingSettings;
 import org.apache.streampipes.connect.adapters.iex.model.IexStockData;
 import org.apache.streampipes.model.AdapterType;
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 7bda6c3..228e447 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
@@ -18,7 +18,7 @@
 
 package org.apache.streampipes.connect.adapters.image;
 
-import org.apache.streampipes.connect.adapter.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.AdapterException;
 import org.apache.streampipes.connect.adapter.model.pipeline.AdapterPipeline;
 import org.apache.streampipes.connect.adapters.image.stream.ImageStreamAdapter;
 import org.apache.streampipes.model.connect.adapter.AdapterDescription;
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 dc7e0d8..94c0f71 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
@@ -19,8 +19,8 @@
 package org.apache.streampipes.connect.adapters.image.set;
 
 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.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.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;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/stream/ImageStreamAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/stream/ImageStreamAdapter.java
index 9336e81..0d45c12 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/stream/ImageStreamAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/image/stream/ImageStreamAdapter.java
@@ -19,8 +19,8 @@
 package org.apache.streampipes.connect.adapters.image.stream;
 
 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.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import 
org.apache.streampipes.connect.adapter.model.specific.SpecificDataStreamAdapter;
 import org.apache.streampipes.connect.adapters.image.ImageZipAdapter;
 import org.apache.streampipes.connect.adapters.image.ImageZipUtils;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/influxdb/InfluxDbClient.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/influxdb/InfluxDbClient.java
index 723abc9..a18675d 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/influxdb/InfluxDbClient.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/influxdb/InfluxDbClient.java
@@ -25,7 +25,7 @@ import org.influxdb.dto.Pong;
 import org.influxdb.dto.Query;
 import org.influxdb.dto.QueryResult;
 import org.apache.streampipes.commons.exceptions.SpRuntimeException;
-import org.apache.streampipes.connect.adapter.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.AdapterException;
 import org.apache.streampipes.model.connect.guess.GuessSchema;
 import org.apache.streampipes.model.schema.EventProperty;
 import org.apache.streampipes.model.schema.EventSchema;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/influxdb/InfluxDbSetAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/influxdb/InfluxDbSetAdapter.java
index 42c17bd..475370f 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/influxdb/InfluxDbSetAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/influxdb/InfluxDbSetAdapter.java
@@ -20,8 +20,8 @@ package org.apache.streampipes.connect.adapters.influxdb;
 
 import org.apache.streampipes.commons.exceptions.SpRuntimeException;
 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.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import 
org.apache.streampipes.connect.adapter.model.specific.SpecificDataSetAdapter;
 import org.apache.streampipes.connect.adapter.sdk.ParameterExtractor;
 import 
org.apache.streampipes.model.connect.adapter.SpecificAdapterSetDescription;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/influxdb/InfluxDbStreamAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/influxdb/InfluxDbStreamAdapter.java
index dc3be82..be555df 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/influxdb/InfluxDbStreamAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/influxdb/InfluxDbStreamAdapter.java
@@ -20,8 +20,8 @@ package org.apache.streampipes.connect.adapters.influxdb;
 
 import org.apache.streampipes.commons.exceptions.SpRuntimeException;
 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.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import 
org.apache.streampipes.connect.adapter.model.specific.SpecificDataStreamAdapter;
 import org.apache.streampipes.connect.adapter.sdk.ParameterExtractor;
 import 
org.apache.streampipes.model.connect.adapter.SpecificAdapterStreamDescription;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/iss/IssAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/iss/IssAdapter.java
index 4795e77..be11ad5 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/iss/IssAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/iss/IssAdapter.java
@@ -22,8 +22,8 @@ import static 
org.apache.streampipes.sdk.helpers.EpProperties.timestampProperty;
 import com.google.gson.Gson;
 import org.apache.http.client.fluent.Request;
 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.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import org.apache.streampipes.connect.adapter.util.PollingSettings;
 import org.apache.streampipes.connect.adapters.PullAdapter;
 import org.apache.streampipes.connect.adapters.iss.model.IssModel;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/mysql/MySqlAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/mysql/MySqlAdapter.java
index c88ac32..33b3099 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/mysql/MySqlAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/mysql/MySqlAdapter.java
@@ -22,8 +22,8 @@ import com.github.shyiko.mysql.binlog.BinaryLogClient;
 import com.github.shyiko.mysql.binlog.event.*;
 import com.github.shyiko.mysql.binlog.event.deserialization.EventDeserializer;
 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.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import 
org.apache.streampipes.connect.adapter.model.specific.SpecificDataStreamAdapter;
 import org.apache.streampipes.connect.adapter.sdk.ParameterExtractor;
 import 
org.apache.streampipes.model.connect.adapter.SpecificAdapterStreamDescription;
@@ -44,8 +44,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 
-import static 
org.apache.streampipes.sdk.helpers.EpProperties.timestampProperty;
-
 public class MySqlAdapter extends SpecificDataStreamAdapter {
 
   public static final String ID = 
"http://streampipes.org/adapter/specific/mysql";;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/mysql/MySqlClient.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/mysql/MySqlClient.java
index b3c6f7d..c882c3d 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/mysql/MySqlClient.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/mysql/MySqlClient.java
@@ -18,7 +18,7 @@
 
 package org.apache.streampipes.connect.adapters.mysql;
 
-import org.apache.streampipes.connect.adapter.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.AdapterException;
 import org.apache.streampipes.model.connect.guess.GuessSchema;
 import org.apache.streampipes.model.schema.EventProperty;
 import org.apache.streampipes.model.schema.EventSchema;
@@ -29,8 +29,6 @@ import java.sql.*;
 import java.util.ArrayList;
 import java.util.List;
 
-import static 
org.apache.streampipes.sdk.helpers.EpProperties.timestampProperty;
-
 public class MySqlClient {
 
   public static final String ID = 
"http://streampipes.org/adapter/specific/mysql";;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/mysql/MySqlSetAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/mysql/MySqlSetAdapter.java
index 7c5fd62..21ef041 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/mysql/MySqlSetAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/mysql/MySqlSetAdapter.java
@@ -19,8 +19,8 @@
 package org.apache.streampipes.connect.adapters.mysql;
 
 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.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import 
org.apache.streampipes.connect.adapter.model.specific.SpecificDataSetAdapter;
 import org.apache.streampipes.connect.adapter.sdk.ParameterExtractor;
 import 
org.apache.streampipes.model.connect.adapter.SpecificAdapterSetDescription;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/mysql/MySqlStreamAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/mysql/MySqlStreamAdapter.java
index 1e5840d..b6dbf45 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/mysql/MySqlStreamAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/mysql/MySqlStreamAdapter.java
@@ -22,8 +22,8 @@ import com.github.shyiko.mysql.binlog.BinaryLogClient;
 import com.github.shyiko.mysql.binlog.event.*;
 import com.github.shyiko.mysql.binlog.event.deserialization.EventDeserializer;
 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.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import 
org.apache.streampipes.connect.adapter.model.specific.SpecificDataStreamAdapter;
 import org.apache.streampipes.connect.adapter.sdk.ParameterExtractor;
 import 
org.apache.streampipes.model.connect.adapter.SpecificAdapterStreamDescription;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/netio/NetioMQTTAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/netio/NetioMQTTAdapter.java
index 0d30c7d..7f1bbb6 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/netio/NetioMQTTAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/netio/NetioMQTTAdapter.java
@@ -21,7 +21,7 @@ package org.apache.streampipes.connect.adapters.netio;
 import com.google.gson.Gson;
 import org.apache.streampipes.connect.utils.MqttConnectUtils;
 import org.apache.streampipes.connect.adapter.Adapter;
-import org.apache.streampipes.connect.adapter.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.AdapterException;
 import org.apache.streampipes.connect.adapter.model.pipeline.AdapterPipeline;
 import 
org.apache.streampipes.connect.adapter.model.specific.SpecificDataStreamAdapter;
 import 
org.apache.streampipes.connect.adapters.netio.model.NetioAllPowerOutputs;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/netio/NetioRestAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/netio/NetioRestAdapter.java
index 9983bb6..d0bc53e 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/netio/NetioRestAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/netio/NetioRestAdapter.java
@@ -24,7 +24,7 @@ import org.apache.http.client.HttpResponseException;
 import org.apache.http.client.fluent.Executor;
 import org.apache.http.client.fluent.Request;
 import org.apache.streampipes.connect.adapter.Adapter;
-import org.apache.streampipes.connect.adapter.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.AdapterException;
 import org.apache.streampipes.connect.adapter.sdk.ParameterExtractor;
 import org.apache.streampipes.connect.adapter.util.PollingSettings;
 import org.apache.streampipes.connect.adapters.PullAdapter;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/OpcUa.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/OpcUa.java
index 9bbe76e..544e685 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/OpcUa.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/OpcUa.java
@@ -23,7 +23,7 @@ import static 
org.apache.streampipes.connect.adapters.opcua.utils.OpcUaUtil.retr
 import static 
org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.Unsigned.uint;
 import static org.eclipse.milo.opcua.stack.core.util.ConversionUtil.toList;
 
-import org.apache.streampipes.connect.adapter.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.AdapterException;
 import org.apache.streampipes.connect.adapters.opcua.utils.OpcUaUtil;
 import 
org.apache.streampipes.connect.adapters.opcua.utils.OpcUaUtil.OpcUaLabels;
 import org.apache.streampipes.connect.adapters.opcua.utils.OpcUaNodeVariants;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/OpcUaAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/OpcUaAdapter.java
index 38aba15..b38556a 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/OpcUaAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/OpcUaAdapter.java
@@ -1,8 +1,8 @@
 package org.apache.streampipes.connect.adapters.opcua;
 
 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.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import org.apache.streampipes.connect.adapter.util.PollingSettings;
 import org.apache.streampipes.connect.adapters.PullAdapter;
 import org.apache.streampipes.connect.adapters.opcua.utils.OpcUaUtil;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/utils/OpcUaUtil.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/utils/OpcUaUtil.java
index 3614762..839d22a 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/utils/OpcUaUtil.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/utils/OpcUaUtil.java
@@ -1,7 +1,7 @@
 package org.apache.streampipes.connect.adapters.opcua.utils;
 
-import org.apache.streampipes.connect.adapter.exception.AdapterException;
-import org.apache.streampipes.connect.adapter.exception.ParseException;
+import org.apache.streampipes.connect.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import org.apache.streampipes.connect.adapters.opcua.OpcNode;
 import org.apache.streampipes.connect.adapters.opcua.OpcUa;
 import 
org.apache.streampipes.model.connect.adapter.SpecificAdapterStreamDescription;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/plc4x/modbus/Plc4xModbusAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/plc4x/modbus/Plc4xModbusAdapter.java
index 5b4765f..42182ec 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/plc4x/modbus/Plc4xModbusAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/plc4x/modbus/Plc4xModbusAdapter.java
@@ -25,8 +25,8 @@ import org.apache.plc4x.java.api.messages.PlcReadRequest;
 import org.apache.plc4x.java.api.messages.PlcReadResponse;
 import org.apache.plc4x.java.api.types.PlcResponseCode;
 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.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import org.apache.streampipes.connect.adapter.util.PollingSettings;
 import org.apache.streampipes.connect.adapters.PullAdapter;
 import org.apache.streampipes.model.AdapterType;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/plc4x/passive/Plc4xPassiveAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/plc4x/passive/Plc4xPassiveAdapter.java
index b738839..8549a05 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/plc4x/passive/Plc4xPassiveAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/plc4x/passive/Plc4xPassiveAdapter.java
@@ -19,8 +19,8 @@
 package org.apache.streampipes.connect.adapters.plc4x.passive;
 
 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.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import 
org.apache.streampipes.connect.adapter.model.specific.SpecificDataStreamAdapter;
 import org.apache.streampipes.model.AdapterType;
 import 
org.apache.streampipes.model.connect.adapter.SpecificAdapterStreamDescription;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/plc4x/s7/Plc4xS7Adapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/plc4x/s7/Plc4xS7Adapter.java
index a8dcbbd..2380f77 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/plc4x/s7/Plc4xS7Adapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/plc4x/s7/Plc4xS7Adapter.java
@@ -32,7 +32,7 @@ import org.apache.plc4x.java.api.messages.PlcReadResponse;
 import org.apache.plc4x.java.api.types.PlcResponseCode;
 import org.apache.plc4x.java.utils.connectionpool.PooledPlcDriverManager;
 import org.apache.streampipes.connect.adapter.Adapter;
-import org.apache.streampipes.connect.adapter.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.AdapterException;
 import org.apache.streampipes.connect.adapter.util.PollingSettings;
 import org.apache.streampipes.connect.adapters.PullAdapter;
 import org.apache.streampipes.model.AdapterType;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/ros/RosBridgeAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/ros/RosBridgeAdapter.java
index b79431a..2a99f1d 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/ros/RosBridgeAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/ros/RosBridgeAdapter.java
@@ -30,10 +30,8 @@ import edu.wpi.rail.jrosbridge.callback.TopicCallback;
 import edu.wpi.rail.jrosbridge.messages.Message;
 import edu.wpi.rail.jrosbridge.services.ServiceRequest;
 import edu.wpi.rail.jrosbridge.services.ServiceResponse;
-import org.apache.streampipes.connect.EmitBinaryEvent;
 import org.apache.streampipes.connect.adapter.Adapter;
-import org.apache.streampipes.connect.adapter.exception.AdapterException;
-import 
org.apache.streampipes.connect.adapter.format.json.object.JsonObjectFormat;
+import org.apache.streampipes.connect.api.exception.AdapterException;
 import 
org.apache.streampipes.connect.adapter.format.json.object.JsonObjectParser;
 import 
org.apache.streampipes.connect.adapter.model.specific.SpecificDataStreamAdapter;
 import org.apache.streampipes.connect.adapter.sdk.ParameterExtractor;
@@ -49,9 +47,6 @@ import org.apache.streampipes.sdk.helpers.Labels;
 import org.apache.streampipes.sdk.helpers.Locales;
 import org.apache.streampipes.sdk.utils.Assets;
 
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
 import java.util.*;
 import java.util.stream.Collectors;
 
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/sensemap/OpenSenseMapAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/sensemap/OpenSenseMapAdapter.java
index 526abb4..48bc058 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/sensemap/OpenSenseMapAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/sensemap/OpenSenseMapAdapter.java
@@ -21,7 +21,7 @@ package org.apache.streampipes.connect.adapters.sensemap;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.streampipes.connect.adapter.Adapter;
-import org.apache.streampipes.connect.adapter.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.AdapterException;
 import org.apache.streampipes.connect.adapter.util.PollingSettings;
 import org.apache.streampipes.connect.adapters.PullRestAdapter;
 import org.apache.streampipes.connect.adapters.sensemap.model.CurrentLocation;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/machine/MachineDataSimulator.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/machine/MachineDataSimulator.java
index b001ebe..47d1d5c 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/machine/MachineDataSimulator.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/machine/MachineDataSimulator.java
@@ -15,7 +15,7 @@ package 
org.apache.streampipes.connect.adapters.simulator.machine;/*
  * limitations under the License.
  *
  */
-import org.apache.streampipes.connect.adapter.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.AdapterException;
 import org.apache.streampipes.connect.adapter.model.pipeline.AdapterPipeline;
 
 import java.util.HashMap;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/machine/MachineDataSimulatorUtils.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/machine/MachineDataSimulatorUtils.java
index f54c5c8..2acddcc 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/machine/MachineDataSimulatorUtils.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/machine/MachineDataSimulatorUtils.java
@@ -16,7 +16,7 @@ package 
org.apache.streampipes.connect.adapters.simulator.machine;/*
  *
  */
 
-import org.apache.streampipes.connect.adapter.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.AdapterException;
 import org.apache.streampipes.model.connect.guess.GuessSchema;
 import org.apache.streampipes.model.schema.PropertyScope;
 import org.apache.streampipes.sdk.builder.PrimitivePropertyBuilder;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/machine/MachineDataStreamAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/machine/MachineDataStreamAdapter.java
index bf744f3..c1502b2 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/machine/MachineDataStreamAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/machine/MachineDataStreamAdapter.java
@@ -17,8 +17,8 @@ package 
org.apache.streampipes.connect.adapters.simulator.machine;/*
  */
 
 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.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import 
org.apache.streampipes.connect.adapter.model.specific.SpecificDataStreamAdapter;
 import org.apache.streampipes.model.AdapterType;
 import 
org.apache.streampipes.model.connect.adapter.SpecificAdapterStreamDescription;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/random/RandomDataSetAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/random/RandomDataSetAdapter.java
index c96529b..525236d 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/random/RandomDataSetAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/random/RandomDataSetAdapter.java
@@ -18,8 +18,8 @@
 package org.apache.streampipes.connect.adapters.simulator.random;
 
 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.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import 
org.apache.streampipes.connect.adapter.model.specific.SpecificDataSetAdapter;
 import org.apache.streampipes.connect.adapter.sdk.ParameterExtractor;
 import org.apache.streampipes.model.AdapterType;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/random/RandomDataStreamAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/random/RandomDataStreamAdapter.java
index 7aea441..9177c36 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/random/RandomDataStreamAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/simulator/random/RandomDataStreamAdapter.java
@@ -18,8 +18,8 @@
 package org.apache.streampipes.connect.adapters.simulator.random;
 
 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.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import 
org.apache.streampipes.connect.adapter.model.specific.SpecificDataStreamAdapter;
 import org.apache.streampipes.connect.adapter.sdk.ParameterExtractor;
 import org.apache.streampipes.model.AdapterType;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/slack/SlackAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/slack/SlackAdapter.java
index a51e61d..dea2aca 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/slack/SlackAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/slack/SlackAdapter.java
@@ -18,8 +18,8 @@
 package org.apache.streampipes.connect.adapters.slack;
 
 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.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import 
org.apache.streampipes.connect.adapter.model.specific.SpecificDataStreamAdapter;
 import org.apache.streampipes.connect.adapter.sdk.ParameterExtractor;
 import org.apache.streampipes.model.AdapterType;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/ti/TISensorTag.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/ti/TISensorTag.java
index d4476c6..e94a625 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/ti/TISensorTag.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/ti/TISensorTag.java
@@ -24,7 +24,7 @@ import org.apache.streampipes.sdk.utils.Assets;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.streampipes.connect.adapter.Adapter;
-import org.apache.streampipes.connect.adapter.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.AdapterException;
 import org.apache.streampipes.connect.adapter.model.pipeline.AdapterPipeline;
 import 
org.apache.streampipes.connect.adapter.model.specific.SpecificDataStreamAdapter;
 import org.apache.streampipes.connect.protocol.stream.MqttConfig;
@@ -209,4 +209,4 @@ public class TISensorTag extends SpecificDataStreamAdapter {
 
        return result;
     }
-}
\ No newline at end of file
+}
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/wikipedia/WikipediaAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/wikipedia/WikipediaAdapter.java
index 971dd4c..405be32 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/wikipedia/WikipediaAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/wikipedia/WikipediaAdapter.java
@@ -18,8 +18,8 @@
 package org.apache.streampipes.connect.adapters.wikipedia;
 
 import com.google.gson.Gson;
-import org.apache.streampipes.connect.adapter.exception.AdapterException;
-import org.apache.streampipes.connect.adapter.exception.ParseException;
+import org.apache.streampipes.connect.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import 
org.apache.streampipes.connect.adapter.model.specific.SpecificDataStreamAdapter;
 import org.apache.streampipes.connect.adapters.wikipedia.model.WikipediaModel;
 import 
org.apache.streampipes.model.connect.adapter.SpecificAdapterStreamDescription;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/set/FileProtocol.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/set/FileProtocol.java
index 35a36ec..72afef2 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/set/FileProtocol.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/set/FileProtocol.java
@@ -20,14 +20,14 @@ package org.apache.streampipes.connect.protocol.set;
 
 
 import org.apache.http.client.fluent.Request;
-import org.apache.streampipes.connect.EmitBinaryEvent;
 import org.apache.streampipes.connect.SendToPipeline;
-import org.apache.streampipes.connect.adapter.exception.ParseException;
 import org.apache.streampipes.connect.adapter.guess.SchemaGuesser;
-import org.apache.streampipes.connect.adapter.model.generic.Format;
-import org.apache.streampipes.connect.adapter.model.generic.Parser;
 import org.apache.streampipes.connect.adapter.model.generic.Protocol;
-import org.apache.streampipes.connect.adapter.model.pipeline.AdapterPipeline;
+import org.apache.streampipes.connect.api.EmitBinaryEvent;
+import org.apache.streampipes.connect.api.IAdapterPipeline;
+import org.apache.streampipes.connect.api.IFormat;
+import org.apache.streampipes.connect.api.IParser;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import org.apache.streampipes.model.AdapterType;
 import org.apache.streampipes.model.connect.grounding.ProtocolDescription;
 import org.apache.streampipes.model.connect.guess.GuessSchema;
@@ -41,12 +41,8 @@ import org.apache.streampipes.sdk.helpers.Locales;
 import org.apache.streampipes.sdk.utils.Assets;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
+
+import java.io.*;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -64,7 +60,7 @@ public class FileProtocol extends Protocol {
     public FileProtocol() {
     }
 
-    public FileProtocol(Parser parser, Format format, String fileFetchUrl, int 
timeBetweenReplay) {
+    public FileProtocol(IParser parser, IFormat format, String fileFetchUrl, 
int timeBetweenReplay) {
         super(parser, format);
         this.fileFetchUrl = fileFetchUrl;
         this.timeBetweenReplay=timeBetweenReplay;
@@ -83,7 +79,7 @@ public class FileProtocol extends Protocol {
     }
 
     @Override
-    public Protocol getInstance(ProtocolDescription protocolDescription, 
Parser parser, Format format) {
+    public Protocol getInstance(ProtocolDescription protocolDescription, 
IParser parser, IFormat format) {
         StaticPropertyExtractor extractor = 
StaticPropertyExtractor.from(protocolDescription.getConfig());
         int timeBetweenReplay = extractor.singleValueParameter(INTERVAL_KEY, 
Integer.class);
         String fileFetchUrl = extractor.selectedFileFetchUrl("filePath");
@@ -112,7 +108,7 @@ public class FileProtocol extends Protocol {
     }
 
     @Override
-    public void run(AdapterPipeline adapterPipeline) {
+    public void run(IAdapterPipeline adapterPipeline) {
         FileReader fr = null;
 
         // TODO fix this. Currently needed because it must be wait till the 
whole pipeline is up and running
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/set/HttpProtocol.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/set/HttpProtocol.java
index ba913cf..8693a6e 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/set/HttpProtocol.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/set/HttpProtocol.java
@@ -19,18 +19,14 @@
 package org.apache.streampipes.connect.protocol.set;
 
 import org.apache.http.client.fluent.Request;
-import org.apache.streampipes.sdk.helpers.Locales;
-import org.apache.streampipes.sdk.utils.Assets;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.streampipes.connect.SendToPipeline;
-import org.apache.streampipes.connect.adapter.exception.ParseException;
 import org.apache.streampipes.connect.adapter.guess.SchemaGuesser;
-import org.apache.streampipes.connect.adapter.model.generic.Format;
-import org.apache.streampipes.connect.adapter.model.generic.Parser;
 import org.apache.streampipes.connect.adapter.model.generic.Protocol;
-import org.apache.streampipes.connect.adapter.model.pipeline.AdapterPipeline;
 import org.apache.streampipes.connect.adapter.sdk.ParameterExtractor;
+import org.apache.streampipes.connect.api.IAdapterPipeline;
+import org.apache.streampipes.connect.api.IFormat;
+import org.apache.streampipes.connect.api.IParser;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import org.apache.streampipes.model.AdapterType;
 import org.apache.streampipes.model.connect.grounding.ProtocolDescription;
 import org.apache.streampipes.model.connect.guess.GuessSchema;
@@ -38,6 +34,10 @@ import org.apache.streampipes.model.schema.EventSchema;
 import org.apache.streampipes.sdk.builder.adapter.ProtocolDescriptionBuilder;
 import org.apache.streampipes.sdk.helpers.AdapterSourceType;
 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 java.io.IOException;
 import java.io.InputStream;
@@ -56,7 +56,7 @@ public class HttpProtocol extends Protocol {
     public HttpProtocol() {
     }
 
-    public HttpProtocol(Parser parser, Format format, String url) {
+    public HttpProtocol(IParser parser, IFormat format, String url) {
         super(parser, format);
         this.url = url;
     }
@@ -73,7 +73,7 @@ public class HttpProtocol extends Protocol {
     }
 
     @Override
-    public Protocol getInstance(ProtocolDescription protocolDescription, 
Parser parser, Format format) {
+    public Protocol getInstance(ProtocolDescription protocolDescription, 
IParser parser, IFormat format) {
         ParameterExtractor extractor = new 
ParameterExtractor(protocolDescription.getConfig());
         String url = extractor.singleValue("url");
 
@@ -81,7 +81,7 @@ public class HttpProtocol extends Protocol {
     }
 
     @Override
-    public void run(AdapterPipeline adapterPipeline) {
+    public void run(IAdapterPipeline adapterPipeline) {
 
         // TODO fix this. Currently needed because it must be wait till the 
whole pipeline is up and running
         try {
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/BrokerProtocol.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/BrokerProtocol.java
index 389673d..058c0d4 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/BrokerProtocol.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/BrokerProtocol.java
@@ -17,11 +17,11 @@
  */
 package org.apache.streampipes.connect.protocol.stream;
 
-import org.apache.streampipes.connect.adapter.exception.ParseException;
 import org.apache.streampipes.connect.adapter.guess.SchemaGuesser;
-import org.apache.streampipes.connect.adapter.model.generic.Format;
-import org.apache.streampipes.connect.adapter.model.generic.Parser;
 import org.apache.streampipes.connect.adapter.model.generic.Protocol;
+import org.apache.streampipes.connect.api.IFormat;
+import org.apache.streampipes.connect.api.IParser;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import org.apache.streampipes.model.connect.guess.GuessSchema;
 import org.apache.streampipes.model.schema.EventSchema;
 
@@ -38,7 +38,7 @@ public abstract class BrokerProtocol extends Protocol {
 
   }
 
-  public BrokerProtocol(Parser parser, Format format, String brokerUrl, String 
topic) {
+  public BrokerProtocol(IParser parser, IFormat format, String brokerUrl, 
String topic) {
     super(parser, format);
     this.brokerUrl = brokerUrl;
     this.topic = topic;
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/FileStreamProtocol.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/FileStreamProtocol.java
index cc00361..579d01f 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/FileStreamProtocol.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/FileStreamProtocol.java
@@ -20,17 +20,19 @@ package org.apache.streampipes.connect.protocol.stream;
 
 import org.apache.http.client.fluent.Request;
 import org.apache.streampipes.connect.SendToPipeline;
-import org.apache.streampipes.connect.adapter.exception.ParseException;
 import org.apache.streampipes.connect.adapter.guess.SchemaGuesser;
-import org.apache.streampipes.connect.adapter.model.generic.Format;
-import org.apache.streampipes.connect.adapter.model.generic.Parser;
 import org.apache.streampipes.connect.adapter.model.generic.Protocol;
-import org.apache.streampipes.connect.adapter.model.pipeline.AdapterPipeline;
-import org.apache.streampipes.connect.adapter.preprocessing.elements.*;
+import 
org.apache.streampipes.connect.adapter.preprocessing.elements.SendToBrokerReplayAdapterSink;
+import 
org.apache.streampipes.connect.adapter.preprocessing.elements.SendToJmsAdapterSink;
+import 
org.apache.streampipes.connect.adapter.preprocessing.elements.SendToKafkaAdapterSink;
+import 
org.apache.streampipes.connect.adapter.preprocessing.elements.SendToMqttAdapterSink;
+import org.apache.streampipes.connect.api.IAdapterPipeline;
+import org.apache.streampipes.connect.api.IFormat;
+import org.apache.streampipes.connect.api.IParser;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import org.apache.streampipes.model.AdapterType;
 import org.apache.streampipes.model.connect.grounding.ProtocolDescription;
 import org.apache.streampipes.model.connect.guess.GuessSchema;
-import org.apache.streampipes.model.grounding.MqttTransportProtocol;
 import org.apache.streampipes.model.schema.*;
 import org.apache.streampipes.sdk.builder.adapter.ProtocolDescriptionBuilder;
 import org.apache.streampipes.sdk.extractor.StaticPropertyExtractor;
@@ -66,7 +68,7 @@ public class FileStreamProtocol extends Protocol {
   public FileStreamProtocol() {
   }
 
-  public FileStreamProtocol(Parser parser, Format format, String fileFetchUrl,
+  public FileStreamProtocol(IParser parser, IFormat format, String 
fileFetchUrl,
                             boolean replaceTimestamp, float speedUp, int 
timeBetweenReplay) {
     super(parser, format);
     this.fileFetchUrl = fileFetchUrl;
@@ -76,7 +78,7 @@ public class FileStreamProtocol extends Protocol {
   }
 
   @Override
-  public void run(AdapterPipeline adapterPipeline) {
+  public void run(IAdapterPipeline adapterPipeline) {
     String timestampKey = getTimestampKey(eventSchema.getEventProperties(), 
"");
 
     // exchange adapter pipeline sink with special purpose replay sink for 
file replay
@@ -147,7 +149,7 @@ public class FileStreamProtocol extends Protocol {
   }
 
   @Override
-  public Protocol getInstance(ProtocolDescription protocolDescription, Parser 
parser, Format format) {
+  public Protocol getInstance(ProtocolDescription protocolDescription, IParser 
parser, IFormat format) {
     StaticPropertyExtractor extractor = 
StaticPropertyExtractor.from(protocolDescription.getConfig(), new 
ArrayList<>());
 
     List<String> replaceTimestampStringList = 
extractor.selectedMultiValues("replaceTimestamp", String.class);
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/HDFSProtocol.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/HDFSProtocol.java
index e324705..59999aa 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/HDFSProtocol.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/HDFSProtocol.java
@@ -21,16 +21,14 @@ package org.apache.streampipes.connect.protocol.stream;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.*;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.streampipes.connect.SendToPipeline;
-import org.apache.streampipes.connect.adapter.exception.ParseException;
 import org.apache.streampipes.connect.adapter.guess.SchemaGuesser;
-import org.apache.streampipes.connect.adapter.model.generic.Format;
-import org.apache.streampipes.connect.adapter.model.generic.Parser;
 import org.apache.streampipes.connect.adapter.model.generic.Protocol;
-import org.apache.streampipes.connect.adapter.model.pipeline.AdapterPipeline;
 import org.apache.streampipes.connect.adapter.sdk.ParameterExtractor;
+import org.apache.streampipes.connect.api.IAdapterPipeline;
+import org.apache.streampipes.connect.api.IFormat;
+import org.apache.streampipes.connect.api.IParser;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import org.apache.streampipes.model.AdapterType;
 import org.apache.streampipes.model.connect.grounding.ProtocolDescription;
 import org.apache.streampipes.model.connect.guess.GuessSchema;
@@ -38,6 +36,8 @@ import org.apache.streampipes.model.schema.EventSchema;
 import org.apache.streampipes.sdk.builder.adapter.ProtocolDescriptionBuilder;
 import org.apache.streampipes.sdk.helpers.AdapterSourceType;
 import org.apache.streampipes.sdk.helpers.Labels;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -76,7 +76,7 @@ public class HDFSProtocol extends Protocol {
 
     }
 
-    public HDFSProtocol(Parser parser, Format format, long intervalProperty, 
String dataPathProperty, String urlProperty, boolean recursively) {
+    public HDFSProtocol(IParser parser, IFormat format, long intervalProperty, 
String dataPathProperty, String urlProperty, boolean recursively) {
         super(parser, format);
         this.intervalProperty = intervalProperty;
         this.dataPathProperty = dataPathProperty;
@@ -85,7 +85,7 @@ public class HDFSProtocol extends Protocol {
     }
 
     @Override
-    public Protocol getInstance(ProtocolDescription protocolDescription, 
Parser parser, Format format) {
+    public Protocol getInstance(ProtocolDescription protocolDescription, 
IParser parser, IFormat format) {
         ParameterExtractor extractor = new 
ParameterExtractor(protocolDescription.getConfig());
         long intervalProperty = 
Long.parseLong(extractor.singleValue(INTERVAL_PROPERTY));
         String urlProperty = extractor.singleValue(URL_PROPERTY);
@@ -164,7 +164,7 @@ public class HDFSProtocol extends Protocol {
     }
 
     @Override
-    public void run(AdapterPipeline adapterPipeline) {
+    public void run(IAdapterPipeline adapterPipeline) {
         logger.info("Start HDFS Adapter");
 
         this.knownNewestFileDate = 0;
@@ -179,7 +179,7 @@ public class HDFSProtocol extends Protocol {
     }
 
 
-    private void executeProtocolLogic(AdapterPipeline adapterPipeline) {
+    private void executeProtocolLogic(IAdapterPipeline adapterPipeline) {
         final Runnable task = () -> {
             SendToPipeline stk = new SendToPipeline(format, adapterPipeline);
 
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/HttpServerProtocol.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/HttpServerProtocol.java
index 1bd9ccf..c972e56 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/HttpServerProtocol.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/HttpServerProtocol.java
@@ -18,11 +18,11 @@
 package org.apache.streampipes.connect.protocol.stream;
 
 import org.apache.streampipes.connect.SendToPipeline;
-import org.apache.streampipes.connect.adapter.exception.ParseException;
-import org.apache.streampipes.connect.adapter.model.generic.Format;
-import org.apache.streampipes.connect.adapter.model.generic.Parser;
 import org.apache.streampipes.connect.adapter.model.generic.Protocol;
-import org.apache.streampipes.connect.adapter.model.pipeline.AdapterPipeline;
+import org.apache.streampipes.connect.api.IAdapterPipeline;
+import org.apache.streampipes.connect.api.IFormat;
+import org.apache.streampipes.connect.api.IParser;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import 
org.apache.streampipes.connect.container.worker.management.HttpServerAdapterManagement;
 import org.apache.streampipes.messaging.InternalEventProcessor;
 import org.apache.streampipes.model.AdapterType;
@@ -71,7 +71,7 @@ public class HttpServerProtocol extends Protocol {
 
   }
 
-  public HttpServerProtocol(ProtocolDescription adapterDescription, Parser 
parser, Format format) {
+  public HttpServerProtocol(ProtocolDescription adapterDescription, IParser 
parser, IFormat format) {
     super(parser, format);
     StaticPropertyExtractor extractor =
             StaticPropertyExtractor.from(adapterDescription.getConfig(), new 
ArrayList<>());
@@ -80,7 +80,7 @@ public class HttpServerProtocol extends Protocol {
   }
 
   @Override
-  public Protocol getInstance(ProtocolDescription protocolDescription, Parser 
parser, Format format) {
+  public Protocol getInstance(ProtocolDescription protocolDescription, IParser 
parser, IFormat format) {
     return new HttpServerProtocol(protocolDescription, parser, format);
   }
 
@@ -154,7 +154,7 @@ public class HttpServerProtocol extends Protocol {
   }
 
   @Override
-  public void run(AdapterPipeline adapterPipeline) {
+  public void run(IAdapterPipeline adapterPipeline) {
     SendToPipeline stk = new SendToPipeline(format, adapterPipeline);
     InternalEventProcessor<byte[]> receiver = new HttpServerEventReceiver(stk);
     HttpServerAdapterManagement.INSTANCE.addAdapter(this.endpointId, receiver);
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/HttpStreamProtocol.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/HttpStreamProtocol.java
index c37ff07..a467b96 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/HttpStreamProtocol.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/HttpStreamProtocol.java
@@ -19,13 +19,14 @@
 package org.apache.streampipes.connect.protocol.stream;
 
 import org.apache.http.client.fluent.Request;
+import org.apache.streampipes.connect.api.IParser;
 import org.apache.streampipes.sdk.helpers.Locales;
 import org.apache.streampipes.sdk.utils.Assets;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.apache.streampipes.connect.adapter.exception.ParseException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import org.apache.streampipes.connect.adapter.guess.SchemaGuesser;
-import org.apache.streampipes.connect.adapter.model.generic.Format;
+import org.apache.streampipes.connect.api.IFormat;
 import org.apache.streampipes.connect.adapter.model.generic.Parser;
 import org.apache.streampipes.connect.adapter.model.generic.Protocol;
 import org.apache.streampipes.connect.adapter.sdk.ParameterExtractor;
@@ -60,14 +61,14 @@ public class HttpStreamProtocol extends PullProtocol {
 
 
 
-    public HttpStreamProtocol(Parser parser, Format format, String url, long 
interval, String accessToken) {
+    public HttpStreamProtocol(IParser parser, IFormat format, String url, long 
interval, String accessToken) {
         super(parser, format, interval);
         this.url = url;
         this.accessToken = accessToken;
     }
 
     @Override
-    public Protocol getInstance(ProtocolDescription protocolDescription, 
Parser parser, Format format) {
+    public Protocol getInstance(ProtocolDescription protocolDescription, 
IParser parser, IFormat format) {
         ParameterExtractor extractor = new 
ParameterExtractor(protocolDescription.getConfig());
 
         String urlProperty = extractor.singleValue(URL_PROPERTY);
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/KafkaProtocol.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/KafkaProtocol.java
index c9a6a9f..9852fc3 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/KafkaProtocol.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/KafkaProtocol.java
@@ -28,11 +28,11 @@ import 
org.apache.kafka.common.serialization.LongDeserializer;
 import org.apache.kafka.common.serialization.StringDeserializer;
 import org.apache.streampipes.commons.exceptions.SpRuntimeException;
 import org.apache.streampipes.connect.SendToPipeline;
-import org.apache.streampipes.connect.adapter.exception.ParseException;
-import org.apache.streampipes.connect.adapter.model.generic.Format;
-import org.apache.streampipes.connect.adapter.model.generic.Parser;
 import org.apache.streampipes.connect.adapter.model.generic.Protocol;
-import org.apache.streampipes.connect.adapter.model.pipeline.AdapterPipeline;
+import org.apache.streampipes.connect.api.IAdapterPipeline;
+import org.apache.streampipes.connect.api.IFormat;
+import org.apache.streampipes.connect.api.IParser;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import org.apache.streampipes.connect.utils.KafkaConnectUtils;
 import org.apache.streampipes.container.api.ResolvesContainerProvidedOptions;
 import org.apache.streampipes.messaging.InternalEventProcessor;
@@ -68,13 +68,13 @@ public class KafkaProtocol extends BrokerProtocol 
implements ResolvesContainerPr
     public KafkaProtocol() {
     }
 
-    public KafkaProtocol(Parser parser, Format format, KafkaConfig config) {
+    public KafkaProtocol(IParser parser, IFormat format, KafkaConfig config) {
         super(parser, format, config.getKafkaHost() + ":" + 
config.getKafkaPort(), config.getTopic());
         this.config = config;
     }
 
     @Override
-    public Protocol getInstance(ProtocolDescription protocolDescription, 
Parser parser, Format format) {
+    public Protocol getInstance(ProtocolDescription protocolDescription, 
IParser parser, IFormat format) {
         StaticPropertyExtractor extractor = StaticPropertyExtractor
                 .from(protocolDescription.getConfig(), new ArrayList<>());
         this.config = KafkaConnectUtils.getConfig(extractor);
@@ -203,7 +203,7 @@ public class KafkaProtocol extends BrokerProtocol 
implements ResolvesContainerPr
     }
 
     @Override
-    public void run(AdapterPipeline adapterPipeline) {
+    public void run(IAdapterPipeline adapterPipeline) {
         SendToPipeline stk = new SendToPipeline(format, adapterPipeline);
         KafkaTransportProtocol protocol = new KafkaTransportProtocol();
         protocol.setKafkaPort(config.getKafkaPort());
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/MqttProtocol.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/MqttProtocol.java
index ddc0fb1..4be896b 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/MqttProtocol.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/MqttProtocol.java
@@ -18,13 +18,13 @@
 package org.apache.streampipes.connect.protocol.stream;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.streampipes.connect.utils.MqttConnectUtils;
 import org.apache.streampipes.connect.SendToPipeline;
-import org.apache.streampipes.connect.adapter.exception.ParseException;
-import org.apache.streampipes.connect.adapter.model.generic.Format;
-import org.apache.streampipes.connect.adapter.model.generic.Parser;
 import org.apache.streampipes.connect.adapter.model.generic.Protocol;
-import org.apache.streampipes.connect.adapter.model.pipeline.AdapterPipeline;
+import org.apache.streampipes.connect.api.IAdapterPipeline;
+import org.apache.streampipes.connect.api.IFormat;
+import org.apache.streampipes.connect.api.IParser;
+import org.apache.streampipes.connect.api.exception.ParseException;
+import org.apache.streampipes.connect.utils.MqttConnectUtils;
 import org.apache.streampipes.messaging.InternalEventProcessor;
 import org.apache.streampipes.model.AdapterType;
 import org.apache.streampipes.model.connect.grounding.ProtocolDescription;
@@ -49,13 +49,13 @@ public class MqttProtocol extends BrokerProtocol {
   public MqttProtocol() {
   }
 
-  public MqttProtocol(Parser parser, Format format, MqttConfig mqttConfig) {
+  public MqttProtocol(IParser parser, IFormat format, MqttConfig mqttConfig) {
     super(parser, format, mqttConfig.getUrl(), mqttConfig.getTopic());
     this.mqttConfig = mqttConfig;
   }
 
   @Override
-  public Protocol getInstance(ProtocolDescription protocolDescription, Parser 
parser, Format format) {
+  public Protocol getInstance(ProtocolDescription protocolDescription, IParser 
parser, IFormat format) {
     MqttConfig mqttConfig;
     StaticPropertyExtractor extractor =
             StaticPropertyExtractor.from(protocolDescription.getConfig(), new 
ArrayList<>());
@@ -99,7 +99,7 @@ public class MqttProtocol extends BrokerProtocol {
   }
 
   @Override
-  public void run(AdapterPipeline adapterPipeline) {
+  public void run(IAdapterPipeline adapterPipeline) {
     SendToPipeline stk = new SendToPipeline(format, adapterPipeline);
     this.mqttConsumer = new MqttConsumer(this.mqttConfig, new 
MqttProtocol.EventProcessor(stk));
 
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/PullProtocol.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/PullProtocol.java
index 6527e54..be74977 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/PullProtocol.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/PullProtocol.java
@@ -17,17 +17,16 @@
  */
 package org.apache.streampipes.connect.protocol.stream;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.streampipes.connect.SendToPipeline;
-import org.apache.streampipes.connect.adapter.exception.ParseException;
-import org.apache.streampipes.connect.adapter.model.generic.Format;
-import org.apache.streampipes.connect.adapter.model.generic.Parser;
 import org.apache.streampipes.connect.adapter.model.generic.Protocol;
-import org.apache.streampipes.connect.adapter.model.pipeline.AdapterPipeline;
+import org.apache.streampipes.connect.api.IAdapterPipeline;
+import org.apache.streampipes.connect.api.IFormat;
+import org.apache.streampipes.connect.api.IParser;
+import org.apache.streampipes.connect.api.exception.ParseException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.InputStream;
-import java.net.ConnectException;
 import java.util.concurrent.*;
 
 public abstract class PullProtocol extends Protocol {
@@ -42,13 +41,13 @@ public abstract class PullProtocol extends Protocol {
     public PullProtocol() {
     }
 
-    public PullProtocol(Parser parser, Format format, long interval) {
+    public PullProtocol(IParser parser, IFormat format, long interval) {
         super(parser, format);
         this.interval = interval;
     }
 
     @Override
-    public void run(AdapterPipeline adapterPipeline) {
+    public void run(IAdapterPipeline adapterPipeline) {
         final Runnable errorThread = () -> {
             executeProtocolLogic(adapterPipeline);
         };
@@ -60,7 +59,7 @@ public abstract class PullProtocol extends Protocol {
     }
 
 
-    private void executeProtocolLogic(AdapterPipeline adapterPipeline) {
+    private void executeProtocolLogic(IAdapterPipeline adapterPipeline) {
          final Runnable task = () -> {
 
             format.reset();
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/WebsocketProtocol.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/WebsocketProtocol.java
index b74b543..fe98fa7 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/WebsocketProtocol.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/WebsocketProtocol.java
@@ -17,13 +17,10 @@
  */
 package org.apache.streampipes.connect.protocol.stream;
 
-import static org.apache.streampipes.sdk.helpers.EpProperties.stringEp;
-import static 
org.apache.streampipes.sdk.helpers.EpProperties.timestampProperty;
-
 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.SpecificDataStreamAdapter;
+import org.apache.streampipes.connect.api.exception.AdapterException;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import org.apache.streampipes.model.AdapterType;
 import 
org.apache.streampipes.model.connect.adapter.SpecificAdapterStreamDescription;
 import org.apache.streampipes.model.connect.guess.GuessSchema;
@@ -35,6 +32,9 @@ import org.apache.streampipes.vocabulary.SO;
 import java.net.URI;
 import java.net.URISyntaxException;
 
+import static org.apache.streampipes.sdk.helpers.EpProperties.stringEp;
+import static 
org.apache.streampipes.sdk.helpers.EpProperties.timestampProperty;
+
 public class WebsocketProtocol extends SpecificDataStreamAdapter {
 
   public static final String ID = 
"org.apache.streampipes.connect.protocol.stream.turtlebot";
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/pulsar/PulsarProtocol.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/pulsar/PulsarProtocol.java
index 856eb5a..2ddb0e9 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/pulsar/PulsarProtocol.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/protocol/stream/pulsar/PulsarProtocol.java
@@ -19,17 +19,13 @@ package 
org.apache.streampipes.connect.protocol.stream.pulsar;
 
 import org.apache.pulsar.client.api.PulsarClient;
 import org.apache.pulsar.client.api.PulsarClientException;
-import org.apache.streampipes.sdk.helpers.Locales;
-import org.apache.streampipes.sdk.utils.Assets;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.streampipes.connect.SendToPipeline;
-import org.apache.streampipes.connect.adapter.exception.ParseException;
-import org.apache.streampipes.connect.adapter.model.generic.Format;
-import org.apache.streampipes.connect.adapter.model.generic.Parser;
 import org.apache.streampipes.connect.adapter.model.generic.Protocol;
-import org.apache.streampipes.connect.adapter.model.pipeline.AdapterPipeline;
 import org.apache.streampipes.connect.adapter.sdk.ParameterExtractor;
+import org.apache.streampipes.connect.api.IAdapterPipeline;
+import org.apache.streampipes.connect.api.IFormat;
+import org.apache.streampipes.connect.api.IParser;
+import org.apache.streampipes.connect.api.exception.ParseException;
 import org.apache.streampipes.connect.protocol.stream.BrokerProtocol;
 import org.apache.streampipes.container.api.ResolvesContainerProvidedOptions;
 import org.apache.streampipes.messaging.InternalEventProcessor;
@@ -40,6 +36,10 @@ import 
org.apache.streampipes.sdk.builder.adapter.ProtocolDescriptionBuilder;
 import org.apache.streampipes.sdk.extractor.StaticPropertyExtractor;
 import org.apache.streampipes.sdk.helpers.AdapterSourceType;
 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 java.util.ArrayList;
 import java.util.List;
@@ -61,7 +61,7 @@ public class PulsarProtocol extends BrokerProtocol implements 
ResolvesContainerP
 
   }
 
-  public PulsarProtocol(Parser parser, Format format, String brokerUrl, String 
topic) {
+  public PulsarProtocol(IParser parser, IFormat format, String brokerUrl, 
String topic) {
     super(parser, format, brokerUrl, topic);
   }
 
@@ -85,7 +85,7 @@ public class PulsarProtocol extends BrokerProtocol implements 
ResolvesContainerP
   }
 
   @Override
-  public Protocol getInstance(ProtocolDescription protocolDescription, Parser 
parser, Format format) {
+  public Protocol getInstance(ProtocolDescription protocolDescription, IParser 
parser, IFormat format) {
     ParameterExtractor extractor = new 
ParameterExtractor(protocolDescription.getConfig());
     String brokerHost = extractor.singleValue(PULSAR_BROKER_HOST, 
String.class);
     Integer brokerPort = extractor.singleValue(PULSAR_BROKER_PORT, 
Integer.class);
@@ -111,7 +111,7 @@ public class PulsarProtocol extends BrokerProtocol 
implements ResolvesContainerP
   }
 
   @Override
-  public void run(AdapterPipeline adapterPipeline) {
+  public void run(IAdapterPipeline adapterPipeline) {
     SendToPipeline stk = new SendToPipeline(format, adapterPipeline);
     this.pulsarConsumer = new PulsarConsumer(this.brokerUrl,
             this.topic, stk::emit);
diff --git 
a/streampipes-extensions-all-jvm/src/main/java/org/apache/streampipes/extensions/all/jvm/AllExtensionsInit.java
 
b/streampipes-extensions-all-jvm/src/main/java/org/apache/streampipes/extensions/all/jvm/AllExtensionsInit.java
index 76c90af..7cc2d94 100644
--- 
a/streampipes-extensions-all-jvm/src/main/java/org/apache/streampipes/extensions/all/jvm/AllExtensionsInit.java
+++ 
b/streampipes-extensions-all-jvm/src/main/java/org/apache/streampipes/extensions/all/jvm/AllExtensionsInit.java
@@ -17,249 +17,42 @@
  */
 package org.apache.streampipes.extensions.all.jvm;
 
-import org.apache.streampipes.connect.adapters.coindesk.CoindeskBitcoinAdapter;
-import org.apache.streampipes.connect.adapters.flic.FlicMQTTAdapter;
-import org.apache.streampipes.connect.adapters.gdelt.GdeltAdapter;
-import org.apache.streampipes.connect.adapters.iex.IexCloudNewsAdapter;
-import org.apache.streampipes.connect.adapters.iex.IexCloudStockAdapter;
-import org.apache.streampipes.connect.adapters.image.set.ImageSetAdapter;
-import org.apache.streampipes.connect.adapters.image.stream.ImageStreamAdapter;
-import org.apache.streampipes.connect.adapters.influxdb.InfluxDbSetAdapter;
-import org.apache.streampipes.connect.adapters.influxdb.InfluxDbStreamAdapter;
-import org.apache.streampipes.connect.adapters.iss.IssAdapter;
-import org.apache.streampipes.connect.adapters.mysql.MySqlSetAdapter;
-import org.apache.streampipes.connect.adapters.mysql.MySqlStreamAdapter;
-import org.apache.streampipes.connect.adapters.netio.NetioMQTTAdapter;
-import org.apache.streampipes.connect.adapters.netio.NetioRestAdapter;
-import org.apache.streampipes.connect.adapters.opcua.OpcUaAdapter;
-import org.apache.streampipes.connect.adapters.plc4x.modbus.Plc4xModbusAdapter;
-import org.apache.streampipes.connect.adapters.plc4x.s7.Plc4xS7Adapter;
-import org.apache.streampipes.connect.adapters.ros.RosBridgeAdapter;
-import 
org.apache.streampipes.connect.adapters.simulator.machine.MachineDataStreamAdapter;
-import 
org.apache.streampipes.connect.adapters.simulator.random.RandomDataSetAdapter;
-import 
org.apache.streampipes.connect.adapters.simulator.random.RandomDataStreamAdapter;
-import org.apache.streampipes.connect.adapters.slack.SlackAdapter;
-import org.apache.streampipes.connect.adapters.ti.TISensorTag;
-import 
org.apache.streampipes.connect.adapters.wikipedia.WikipediaEditedArticlesAdapter;
-import 
org.apache.streampipes.connect.adapters.wikipedia.WikipediaNewArticlesAdapter;
-import org.apache.streampipes.connect.init.AdapterDeclarerSingleton;
-import org.apache.streampipes.connect.protocol.set.FileProtocol;
-import org.apache.streampipes.connect.protocol.set.HttpProtocol;
-import org.apache.streampipes.connect.protocol.stream.*;
-import org.apache.streampipes.connect.protocol.stream.pulsar.PulsarProtocol;
+import org.apache.streampipes.connect.ConnectAdapterInit;
 import org.apache.streampipes.container.extensions.ExtensionsModelSubmitter;
-import org.apache.streampipes.container.init.DeclarersSingleton;
-import org.apache.streampipes.extensions.all.jvm.config.AllExtensionsConfig;
-import 
org.apache.streampipes.processors.enricher.jvm.processor.jseval.JSEvalController;
-import 
org.apache.streampipes.processors.enricher.jvm.processor.sizemeasure.SizeMeasureController;
-import 
org.apache.streampipes.processors.filters.jvm.processor.compose.ComposeController;
-import 
org.apache.streampipes.processors.filters.jvm.processor.enrich.MergeByEnrichController;
-import 
org.apache.streampipes.processors.filters.jvm.processor.limit.RateLimitController;
-import 
org.apache.streampipes.processors.filters.jvm.processor.merge.MergeByTimeController;
-import 
org.apache.streampipes.processors.filters.jvm.processor.numericalfilter.NumericalFilterController;
-import 
org.apache.streampipes.processors.filters.jvm.processor.numericaltextfilter.NumericalTextFilterController;
-import 
org.apache.streampipes.processors.filters.jvm.processor.projection.ProjectionController;
-import 
org.apache.streampipes.processors.filters.jvm.processor.textfilter.TextFilterController;
-import 
org.apache.streampipes.processors.filters.jvm.processor.threshold.ThresholdDetectionController;
-import 
org.apache.streampipes.processors.geo.jvm.jts.processor.latLngToGeo.LatLngToGeoController;
-import 
org.apache.streampipes.processors.geo.jvm.jts.processor.setEPSG.SetEpsgController;
-import 
org.apache.streampipes.processors.geo.jvm.processor.distancecalculator.DistanceCalculatorController;
-import 
org.apache.streampipes.processors.geo.jvm.processor.geocoder.GoogleMapsGeocodingController;
-import 
org.apache.streampipes.processors.geo.jvm.processor.revgeocoder.ReverseGeocodingController;
-import 
org.apache.streampipes.processors.geo.jvm.processor.speed.SpeedCalculatorController;
-import 
org.apache.streampipes.processors.geo.jvm.processor.staticdistancecalculator.StaticDistanceCalculatorController;
-import 
org.apache.streampipes.processors.geo.jvm.processor.staticgeocoder.StaticGoogleMapsGeocodingController;
-import 
org.apache.streampipes.processors.imageprocessing.jvm.processor.genericclassification.GenericImageClassificationController;
-import 
org.apache.streampipes.processors.imageprocessing.jvm.processor.imagecropper.ImageCropperController;
-import 
org.apache.streampipes.processors.imageprocessing.jvm.processor.imageenrichment.ImageEnrichmentController;
-import 
org.apache.streampipes.processors.imageprocessing.jvm.processor.qrreader.QrCodeReaderController;
-import org.apache.streampipes.processors.siddhi.frequency.FrequencyController;
-import 
org.apache.streampipes.processors.siddhi.frequencychange.FrequencyChangeController;
-import org.apache.streampipes.processors.siddhi.stop.StreamStopController;
-import org.apache.streampipes.processors.siddhi.trend.TrendController;
-import 
org.apache.streampipes.processors.textmining.jvm.processor.chunker.ChunkerController;
-import 
org.apache.streampipes.processors.textmining.jvm.processor.language.LanguageDetectionController;
-import 
org.apache.streampipes.processors.textmining.jvm.processor.namefinder.NameFinderController;
-import 
org.apache.streampipes.processors.textmining.jvm.processor.partofspeech.PartOfSpeechController;
-import 
org.apache.streampipes.processors.textmining.jvm.processor.sentencedetection.SentenceDetectionController;
-import 
org.apache.streampipes.processors.textmining.jvm.processor.tokenizer.TokenizerController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.array.count.CountArrayController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.array.split.SplitArrayController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.booloperator.counter.BooleanCounterController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.booloperator.edge.SignalEdgeFilterController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.booloperator.inverter.BooleanInverterController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.booloperator.state.BooleanToStateController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.booloperator.timekeeping.BooleanTimekeepingController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.booloperator.timer.BooleanTimerController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.csvmetadata.CsvMetadataEnrichmentController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.state.buffer.StateBufferController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.state.labeler.buffer.StateBufferLabelerController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.state.labeler.number.NumberLabelerController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.stringoperator.counter.StringCounterController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.stringoperator.state.StringToStateController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.stringoperator.timer.StringTimerController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.task.TaskDurationController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.timestampextractor.TimestampExtractorController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.transformtoboolean.TransformToBooleanController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.value.change.ChangedValueDetectionController;
-import 
org.apache.streampipes.processors.transformation.jvm.processor.value.duration.CalculateDurationController;
-import 
org.apache.streampipes.sinks.brokers.jvm.bufferrest.BufferRestController;
-import org.apache.streampipes.sinks.brokers.jvm.jms.JmsController;
-import org.apache.streampipes.sinks.brokers.jvm.kafka.KafkaController;
-import org.apache.streampipes.sinks.brokers.jvm.mqtt.MqttPublisherSink;
-import org.apache.streampipes.sinks.brokers.jvm.nats.NatsController;
-import org.apache.streampipes.sinks.brokers.jvm.websocket.WebsocketServerSink;
-import org.apache.streampipes.sinks.brokers.jvm.pulsar.PulsarController;
-import org.apache.streampipes.sinks.brokers.jvm.rabbitmq.RabbitMqController;
-import org.apache.streampipes.sinks.brokers.jvm.rest.RestController;
-import org.apache.streampipes.sinks.databases.jvm.couchdb.CouchDbController;
-import org.apache.streampipes.sinks.databases.jvm.ditto.DittoController;
-import org.apache.streampipes.sinks.databases.jvm.influxdb.InfluxDbController;
-import org.apache.streampipes.sinks.databases.jvm.iotdb.IotDbController;
-import org.apache.streampipes.sinks.databases.jvm.mysql.MysqlController;
-import org.apache.streampipes.sinks.databases.jvm.opcua.UpcUaController;
-import 
org.apache.streampipes.sinks.databases.jvm.postgresql.PostgreSqlController;
-import org.apache.streampipes.sinks.databases.jvm.redis.RedisController;
-import org.apache.streampipes.sinks.internal.jvm.dashboard.DashboardController;
-import org.apache.streampipes.sinks.internal.jvm.datalake.DataLakeController;
-import 
org.apache.streampipes.sinks.internal.jvm.notification.NotificationController;
-import org.apache.streampipes.sinks.notifications.jvm.email.EmailController;
-import 
org.apache.streampipes.sinks.notifications.jvm.onesignal.OneSignalController;
-import 
org.apache.streampipes.sinks.notifications.jvm.slack.SlackNotificationController;
-import 
org.apache.streampipes.sinks.notifications.jvm.telegram.TelegramController;
+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.pe.jvm.AllPipelineElementsInit;
 
 
 public class AllExtensionsInit extends ExtensionsModelSubmitter {
 
     public static void main (String[] args) {
-        DeclarersSingleton.getInstance()
-                // streampipes-processors-enricher-jvm
-                .add(new SizeMeasureController())
-                .add(new JSEvalController())
-                // streampipes-processors-filters-jvm
-                .add(new NumericalFilterController())
-                .add(new ThresholdDetectionController())
-                .add(new TextFilterController())
-                .add(new ProjectionController())
-                .add(new MergeByEnrichController())
-                .add(new MergeByTimeController())
-                .add(new RateLimitController())
-                .add(new ComposeController())
-                .add(new NumericalTextFilterController())
-                // streampipes-processors-filers-siddhi
-                .add(new TrendController())
-                .add(new StreamStopController())
-                .add(new FrequencyController())
-                .add(new FrequencyChangeController())
-                // streampipes-processors-geo-jvm
-                .add(new DistanceCalculatorController())
-                .add(new GoogleMapsGeocodingController())
-                .add(new StaticGoogleMapsGeocodingController())
-                .add(new ReverseGeocodingController())
-                .add(new SetEpsgController())
-                .add(new LatLngToGeoController())
-                .add(new SpeedCalculatorController())
-                .add(new StaticDistanceCalculatorController())
-                // streampipes-processors-image-processing-jvm
-                .add(new ImageEnrichmentController())
-                .add(new ImageCropperController())
-                .add(new QrCodeReaderController())
-                .add(new GenericImageClassificationController())
-                // streampipes-processors-text-mining-jvm
-                .add(new LanguageDetectionController())
-                .add(new TokenizerController())
-                .add(new PartOfSpeechController())
-                .add(new ChunkerController())
-                .add(new NameFinderController())
-                .add(new SentenceDetectionController())
-                // streampipes-processors-transformation-jvm
-                .add(new CountArrayController())
-                .add(new SplitArrayController())
-                .add(new CalculateDurationController())
-                .add(new ChangedValueDetectionController())
-                .add(new TimestampExtractorController())
-                .add(new BooleanCounterController())
-                .add(new BooleanInverterController())
-                .add(new BooleanTimekeepingController())
-                .add(new BooleanTimerController())
-                .add(new StateBufferController())
-                .add(new StateBufferLabelerController())
-                .add(new StringToStateController())
-                .add(new SignalEdgeFilterController())
-                .add(new BooleanToStateController())
-                .add(new CsvMetadataEnrichmentController())
-                .add(new TaskDurationController())
-                .add(new BooleanInverterController())
-                .add(new TransformToBooleanController())
-                .add(new StringCounterController())
-                .add(new StringTimerController())
-                .add(new NumberLabelerController())
-                // streampipes-sinks-brokers-jvm
-                .add(new WebsocketServerSink())
-                .add(new KafkaController())
-                .add(new JmsController())
-                .add(new RestController())
-                .add(new BufferRestController())
-                .add(new RabbitMqController())
-                .add(new PulsarController())
-                .add(new MqttPublisherSink())
-                .add(new NatsController())
-                // streampipes-sinks-databases-jvm
-                .add(new CouchDbController())
-                .add(new InfluxDbController())
-                .add(new UpcUaController())
-                .add(new PostgreSqlController())
-                .add(new IotDbController())
-                .add(new DittoController())
-                .add(new RedisController())
-                .add(new MysqlController())
-                // streampipes-sinks-internal-jvm
-                .add(new NotificationController())
-                .add(new DataLakeController())
-                .add(new DashboardController())
-                // streampipes-sinks-notifications-jvm
-                .add(new EmailController())
-                .add(new TelegramController())
-                .add(new OneSignalController())
-                .add(new SlackNotificationController());
-
-        AdapterDeclarerSingleton.getInstance()
-                // Protocols
-                .add(new FileProtocol())
-                .add(new HttpProtocol())
-                .add(new FileStreamProtocol())
-                .add(new HDFSProtocol())
-                .add(new KafkaProtocol())
-                .add(new MqttProtocol())
-                .add(new HttpStreamProtocol())
-                .add(new PulsarProtocol())
-                // Specific Adapters
-                .add(new GdeltAdapter())
-                .add(new CoindeskBitcoinAdapter())
-                .add(new IexCloudNewsAdapter())
-                .add(new IexCloudStockAdapter())
-                .add(new MySqlStreamAdapter())
-                .add(new MySqlSetAdapter())
-                .add(new RandomDataSetAdapter())
-                .add(new RandomDataStreamAdapter())
-                .add(new MachineDataStreamAdapter())
-                .add(new SlackAdapter())
-                .add(new WikipediaEditedArticlesAdapter())
-                .add(new WikipediaNewArticlesAdapter())
-                .add(new RosBridgeAdapter())
-                .add(new OpcUaAdapter())
-                .add(new InfluxDbStreamAdapter())
-                .add(new InfluxDbSetAdapter())
-                .add(new TISensorTag())
-                .add(new NetioRestAdapter())
-                .add(new NetioMQTTAdapter())
-                .add(new Plc4xS7Adapter())
-                .add(new Plc4xModbusAdapter())
-                .add(new ImageStreamAdapter())
-                .add(new ImageSetAdapter())
-                .add(new IssAdapter())
-                .add(new FlicMQTTAdapter());
+        new AllExtensionsInit().init();
+    }
 
-        new AllExtensionsInit().init(AllExtensionsConfig.INSTANCE);
+    @Override
+    public SpServiceDefinition provideServiceDefinition() {
+        return 
SpServiceDefinitionBuilder.create("org.apache.streampipes.extensions.all.jvm",
+                "StreamPipes Extensions (JVM)",
+                "", 8090)
+                .merge(new ConnectAdapterInit().provideServiceDefinition())
+                .merge(new 
AllPipelineElementsInit().provideServiceDefinition())
+                .registerMessagingFormats(
+                        new JsonDataFormatFactory(),
+                        new CborDataFormatFactory(),
+                        new SmileDataFormatFactory(),
+                        new FstDataFormatFactory())
+                .registerMessagingProtocols(
+                        new SpKafkaProtocolFactory(),
+                        new SpJmsProtocolFactory(),
+                        new SpMqttProtocolFactory())
+                .build();
     }
 }
diff --git 
a/streampipes-pipeline-elements-all-jvm/src/main/java/org/apache/streampipes/pe/jvm/AllPipelineElementsInit.java
 
b/streampipes-pipeline-elements-all-jvm/src/main/java/org/apache/streampipes/pe/jvm/AllPipelineElementsInit.java
index b55aad4..493ace8 100644
--- 
a/streampipes-pipeline-elements-all-jvm/src/main/java/org/apache/streampipes/pe/jvm/AllPipelineElementsInit.java
+++ 
b/streampipes-pipeline-elements-all-jvm/src/main/java/org/apache/streampipes/pe/jvm/AllPipelineElementsInit.java
@@ -48,7 +48,7 @@ public class AllPipelineElementsInit extends 
StandaloneModelSubmitter {
 
   @Override
   public SpServiceDefinition provideServiceDefinition() {
-    return 
SpServiceDefinitionBuilder.create("org.apache.streampipes.pe.all.jvm",
+    return 
SpServiceDefinitionBuilder.create("org-apache-streampipes-pe-all-jvm",
             "StreamPipes Bundled Pipeline Elements for JVM Wrapper",
             "",
             8090)

Reply via email to