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

bossenti pushed a commit to branch refactor-versioned-sinks
in repository https://gitbox.apache.org/repos/asf/streampipes.git

commit f2668ffd30c140f686e92635b46cc563323875c7
Author: bossenti <[email protected]>
AuthorDate: Fri Dec 1 15:28:32 2023 +0100

    refactor: include version in all data sink descriptions as required for 
migrations
---
 .../connectors/influx/sink/InfluxDbSink.java       |  2 +-
 .../connectors/kafka/sink/KafkaPublishSink.java    |  2 +-
 .../connectors/mqtt/sink/MqttPublisherSink.java    |  2 +-
 .../extensions/connectors/nats/sink/NatsSink.java  |  2 +-
 .../connectors/opcua/sink/OpcUaSink.java           |  2 +-
 .../pulsar/sink/PulsarPublisherSink.java           |  2 +-
 .../rocketmq/sink/RocketMQPublisherSink.java       |  2 +-
 .../tubemq/sink/TubeMQPublisherSink.java           | 12 +++--
 .../jvm/bufferrest/BufferRestPublisherSink.java    |  3 +-
 .../sinks/brokers/jvm/jms/JmsPublisherSink.java    |  2 +-
 .../jvm/rabbitmq/RabbitMqPublisherSink.java        |  2 +-
 .../sinks/brokers/jvm/rest/RestSink.java           |  2 +-
 .../brokers/jvm/websocket/WebsocketServerSink.java |  2 +-
 .../sinks/databases/jvm/couchdb/CouchDbSink.java   |  2 +-
 .../sinks/databases/jvm/ditto/DittoSink.java       |  3 +-
 .../sinks/databases/jvm/iotdb/IotDbSink.java       | 21 +++++---
 .../databases/jvm/postgresql/PostgreSqlSink.java   |  3 +-
 .../sinks/databases/jvm/redis/RedisSink.java       |  3 +-
 .../sinks/internal/jvm/datalake/DataLakeSink.java  |  3 +-
 .../jvm/notification/NotificationProducer.java     |  3 +-
 .../sinks/notifications/jvm/email/EmailSink.java   |  3 +-
 .../notifications/jvm/msteams/MSTeamsSink.java     | 63 +++++++++++-----------
 .../notifications/jvm/onesignal/OneSignalSink.java |  3 +-
 .../jvm/slack/SlackNotificationSink.java           |  3 +-
 .../notifications/jvm/telegram/TelegramSink.java   |  3 +-
 .../streampipes/sdk/builder/DataSinkBuilder.java   | 43 ++++++++++++---
 26 files changed, 121 insertions(+), 72 deletions(-)

diff --git 
a/streampipes-extensions/streampipes-connectors-influx/src/main/java/org/apache/streampipes/extensions/connectors/influx/sink/InfluxDbSink.java
 
b/streampipes-extensions/streampipes-connectors-influx/src/main/java/org/apache/streampipes/extensions/connectors/influx/sink/InfluxDbSink.java
index 6e169a364..5ddee88e4 100644
--- 
a/streampipes-extensions/streampipes-connectors-influx/src/main/java/org/apache/streampipes/extensions/connectors/influx/sink/InfluxDbSink.java
+++ 
b/streampipes-extensions/streampipes-connectors-influx/src/main/java/org/apache/streampipes/extensions/connectors/influx/sink/InfluxDbSink.java
@@ -92,7 +92,7 @@ public class InfluxDbSink extends StreamPipesDataSink {
 
   @Override
   public DataSinkDescription declareModel() {
-    var builder = 
DataSinkBuilder.create("org.apache.streampipes.sinks.databases.jvm.influxdb")
+    var builder = 
DataSinkBuilder.create("org.apache.streampipes.sinks.databases.jvm.influxdb", 0)
         .withLocales(Locales.EN)
         .withAssets(Assets.DOCUMENTATION, Assets.ICON)
         .category(DataSinkType.DATABASE);
diff --git 
a/streampipes-extensions/streampipes-connectors-kafka/src/main/java/org/apache/streampipes/extensions/connectors/kafka/sink/KafkaPublishSink.java
 
b/streampipes-extensions/streampipes-connectors-kafka/src/main/java/org/apache/streampipes/extensions/connectors/kafka/sink/KafkaPublishSink.java
index aaefccbc9..227be1e7a 100644
--- 
a/streampipes-extensions/streampipes-connectors-kafka/src/main/java/org/apache/streampipes/extensions/connectors/kafka/sink/KafkaPublishSink.java
+++ 
b/streampipes-extensions/streampipes-connectors-kafka/src/main/java/org/apache/streampipes/extensions/connectors/kafka/sink/KafkaPublishSink.java
@@ -59,7 +59,7 @@ public class KafkaPublishSink implements IStreamPipesDataSink 
{
   public IDataSinkConfiguration declareConfig() {
     return DataSinkConfiguration.create(
         KafkaPublishSink::new,
-        
DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.kafka")
+        
DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.kafka", 0)
             .category(DataSinkType.MESSAGING)
             .withLocales(Locales.EN)
             .withAssets(Assets.DOCUMENTATION, Assets.ICON)
diff --git 
a/streampipes-extensions/streampipes-connectors-mqtt/src/main/java/org/apache/streampipes/extensions/connectors/mqtt/sink/MqttPublisherSink.java
 
b/streampipes-extensions/streampipes-connectors-mqtt/src/main/java/org/apache/streampipes/extensions/connectors/mqtt/sink/MqttPublisherSink.java
index c17368460..d8af7b0a3 100644
--- 
a/streampipes-extensions/streampipes-connectors-mqtt/src/main/java/org/apache/streampipes/extensions/connectors/mqtt/sink/MqttPublisherSink.java
+++ 
b/streampipes-extensions/streampipes-connectors-mqtt/src/main/java/org/apache/streampipes/extensions/connectors/mqtt/sink/MqttPublisherSink.java
@@ -74,7 +74,7 @@ public class MqttPublisherSink implements 
IStreamPipesDataSink {
   public IDataSinkConfiguration declareConfig() {
     return DataSinkConfiguration.create(
         MqttPublisherSink::new,
-        DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.mqtt")
+        
DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.mqtt", 0)
             .category(DataSinkType.MESSAGING)
             .withLocales(Locales.EN)
             .withAssets(Assets.DOCUMENTATION, Assets.ICON)
diff --git 
a/streampipes-extensions/streampipes-connectors-nats/src/main/java/org/apache/streampipes/extensions/connectors/nats/sink/NatsSink.java
 
b/streampipes-extensions/streampipes-connectors-nats/src/main/java/org/apache/streampipes/extensions/connectors/nats/sink/NatsSink.java
index 4c55c6826..47410a633 100644
--- 
a/streampipes-extensions/streampipes-connectors-nats/src/main/java/org/apache/streampipes/extensions/connectors/nats/sink/NatsSink.java
+++ 
b/streampipes-extensions/streampipes-connectors-nats/src/main/java/org/apache/streampipes/extensions/connectors/nats/sink/NatsSink.java
@@ -79,7 +79,7 @@ public class NatsSink implements IStreamPipesDataSink {
   public IDataSinkConfiguration declareConfig() {
     return DataSinkConfiguration.create(
         NatsSink::new,
-        DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.nats")
+        
DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.nats", 0)
             .category(DataSinkType.MESSAGING)
             .withLocales(Locales.EN)
             .withAssets(Assets.DOCUMENTATION, Assets.ICON)
diff --git 
a/streampipes-extensions/streampipes-connectors-opcua/src/main/java/org/apache/streampipes/extensions/connectors/opcua/sink/OpcUaSink.java
 
b/streampipes-extensions/streampipes-connectors-opcua/src/main/java/org/apache/streampipes/extensions/connectors/opcua/sink/OpcUaSink.java
index c58c8cab0..bbe6a2900 100644
--- 
a/streampipes-extensions/streampipes-connectors-opcua/src/main/java/org/apache/streampipes/extensions/connectors/opcua/sink/OpcUaSink.java
+++ 
b/streampipes-extensions/streampipes-connectors-opcua/src/main/java/org/apache/streampipes/extensions/connectors/opcua/sink/OpcUaSink.java
@@ -49,7 +49,7 @@ public class OpcUaSink implements IStreamPipesDataSink, 
SupportsRuntimeConfig {
 
   @Override
   public IDataSinkConfiguration declareConfig() {
-    var builder = 
DataSinkBuilder.create("org.apache.streampipes.sinks.databases.jvm.opcua")
+    var builder = 
DataSinkBuilder.create("org.apache.streampipes.sinks.databases.jvm.opcua", 0)
         .withLocales(Locales.EN)
         .withAssets(Assets.DOCUMENTATION, Assets.ICON)
         .category(DataSinkType.FORWARD)
diff --git 
a/streampipes-extensions/streampipes-connectors-pulsar/src/main/java/org/apache/streampipes/extensions/connectors/pulsar/sink/PulsarPublisherSink.java
 
b/streampipes-extensions/streampipes-connectors-pulsar/src/main/java/org/apache/streampipes/extensions/connectors/pulsar/sink/PulsarPublisherSink.java
index 99eeffb4a..d79aa92e3 100644
--- 
a/streampipes-extensions/streampipes-connectors-pulsar/src/main/java/org/apache/streampipes/extensions/connectors/pulsar/sink/PulsarPublisherSink.java
+++ 
b/streampipes-extensions/streampipes-connectors-pulsar/src/main/java/org/apache/streampipes/extensions/connectors/pulsar/sink/PulsarPublisherSink.java
@@ -69,7 +69,7 @@ public class PulsarPublisherSink implements 
IStreamPipesDataSink {
   public IDataSinkConfiguration declareConfig() {
     return DataSinkConfiguration.create(
         PulsarPublisherSink::new,
-        
DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.pulsar")
+        
DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.pulsar", 0)
             .category(DataSinkType.MESSAGING)
             .withLocales(Locales.EN)
             .withAssets(Assets.DOCUMENTATION, Assets.ICON)
diff --git 
a/streampipes-extensions/streampipes-connectors-rocketmq/src/main/java/org/apache/streampipes/extensions/connectors/rocketmq/sink/RocketMQPublisherSink.java
 
b/streampipes-extensions/streampipes-connectors-rocketmq/src/main/java/org/apache/streampipes/extensions/connectors/rocketmq/sink/RocketMQPublisherSink.java
index f27ad0380..efc455042 100644
--- 
a/streampipes-extensions/streampipes-connectors-rocketmq/src/main/java/org/apache/streampipes/extensions/connectors/rocketmq/sink/RocketMQPublisherSink.java
+++ 
b/streampipes-extensions/streampipes-connectors-rocketmq/src/main/java/org/apache/streampipes/extensions/connectors/rocketmq/sink/RocketMQPublisherSink.java
@@ -70,7 +70,7 @@ public class RocketMQPublisherSink implements 
IStreamPipesDataSink {
   public IDataSinkConfiguration declareConfig() {
     return DataSinkConfiguration.create(
         RocketMQPublisherSink::new,
-        
DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.rocketmq")
+        
DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.rocketmq", 0)
             .category(DataSinkType.MESSAGING)
             .withLocales(Locales.EN)
             .withAssets(Assets.DOCUMENTATION, Assets.ICON)
diff --git 
a/streampipes-extensions/streampipes-connectors-tubemq/src/main/java/org/apache/streampipes/extensions/connectors/tubemq/sink/TubeMQPublisherSink.java
 
b/streampipes-extensions/streampipes-connectors-tubemq/src/main/java/org/apache/streampipes/extensions/connectors/tubemq/sink/TubeMQPublisherSink.java
index 5c71ffa6a..aef50bc6b 100644
--- 
a/streampipes-extensions/streampipes-connectors-tubemq/src/main/java/org/apache/streampipes/extensions/connectors/tubemq/sink/TubeMQPublisherSink.java
+++ 
b/streampipes-extensions/streampipes-connectors-tubemq/src/main/java/org/apache/streampipes/extensions/connectors/tubemq/sink/TubeMQPublisherSink.java
@@ -59,11 +59,13 @@ public class TubeMQPublisherSink implements 
IStreamPipesDataSink {
   public IDataSinkConfiguration declareConfig() {
     return DataSinkConfiguration.create(
         TubeMQPublisherSink::new,
-        
DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.tubemq").category(DataSinkType.MESSAGING)
-            .withLocales(Locales.EN).withAssets(Assets.DOCUMENTATION, 
Assets.ICON)
-            
.requiredStream(StreamRequirementsBuilder.create().requiredProperty(EpRequirements.anyProperty()).build())
-            
.requiredTextParameter(Labels.withId(MASTER_HOST_AND_PORT_KEY)).requiredTextParameter(Labels.withId(TOPIC_KEY))
-            .build()
+        DataSinkBuilder
+                .create("org.apache.streampipes.sinks.brokers.jvm.tubemq", 0)
+                .category(DataSinkType.MESSAGING)
+                .withLocales(Locales.EN).withAssets(Assets.DOCUMENTATION, 
Assets.ICON)
+                
.requiredStream(StreamRequirementsBuilder.create().requiredProperty(EpRequirements.anyProperty()).build())
+                
.requiredTextParameter(Labels.withId(MASTER_HOST_AND_PORT_KEY)).requiredTextParameter(Labels.withId(TOPIC_KEY))
+                .build()
     );
   }
 
diff --git 
a/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/bufferrest/BufferRestPublisherSink.java
 
b/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/bufferrest/BufferRestPublisherSink.java
index 24d1267b2..aea49f3ab 100644
--- 
a/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/bufferrest/BufferRestPublisherSink.java
+++ 
b/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/bufferrest/BufferRestPublisherSink.java
@@ -62,7 +62,8 @@ public class BufferRestPublisherSink extends 
StreamPipesDataSink implements Buff
 
   @Override
   public DataSinkDescription declareModel() {
-    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.bufferrest")
+    return DataSinkBuilder
+        .create("org.apache.streampipes.sinks.brokers.jvm.bufferrest", 0)
         .category(DataSinkType.NOTIFICATION)
         .withLocales(Locales.EN)
         .requiredStream(StreamRequirementsBuilder
diff --git 
a/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/jms/JmsPublisherSink.java
 
b/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/jms/JmsPublisherSink.java
index e41326bd5..c9808048e 100644
--- 
a/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/jms/JmsPublisherSink.java
+++ 
b/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/jms/JmsPublisherSink.java
@@ -49,7 +49,7 @@ public class JmsPublisherSink extends StreamPipesDataSink {
 
   @Override
   public DataSinkDescription declareModel() {
-    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.jms")
+    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.jms", 0)
         .category(DataSinkType.MESSAGING)
         .withLocales(Locales.EN)
         .withAssets(Assets.DOCUMENTATION, Assets.ICON)
diff --git 
a/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/rabbitmq/RabbitMqPublisherSink.java
 
b/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/rabbitmq/RabbitMqPublisherSink.java
index 518498b1d..88792e48d 100644
--- 
a/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/rabbitmq/RabbitMqPublisherSink.java
+++ 
b/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/rabbitmq/RabbitMqPublisherSink.java
@@ -55,7 +55,7 @@ public class RabbitMqPublisherSink extends 
StreamPipesDataSink {
 
   @Override
   public DataSinkDescription declareModel() {
-    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.rabbitmq")
+    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.rabbitmq", 0)
         .category(DataSinkType.MESSAGING)
         .withLocales(Locales.EN)
         .withAssets(Assets.DOCUMENTATION, Assets.ICON)
diff --git 
a/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/rest/RestSink.java
 
b/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/rest/RestSink.java
index 9449b80b3..af77c8ed1 100644
--- 
a/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/rest/RestSink.java
+++ 
b/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/rest/RestSink.java
@@ -52,7 +52,7 @@ public class RestSink extends StreamPipesDataSink {
 
   @Override
   public DataSinkDescription declareModel() {
-    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.rest")
+    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.rest", 0)
         .category(DataSinkType.FORWARD)
         .withLocales(Locales.EN)
         .withAssets(Assets.DOCUMENTATION)
diff --git 
a/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/websocket/WebsocketServerSink.java
 
b/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/websocket/WebsocketServerSink.java
index c48711887..d4b4aaae3 100644
--- 
a/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/websocket/WebsocketServerSink.java
+++ 
b/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/websocket/WebsocketServerSink.java
@@ -44,7 +44,7 @@ public class WebsocketServerSink extends StreamPipesDataSink {
 
   @Override
   public DataSinkDescription declareModel() {
-    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.websocket")
+    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.brokers.jvm.websocket", 0)
         .category(DataSinkType.MESSAGING)
         .withLocales(Locales.EN)
         .withAssets(Assets.DOCUMENTATION, Assets.ICON)
diff --git 
a/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/couchdb/CouchDbSink.java
 
b/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/couchdb/CouchDbSink.java
index 38b01cf92..3c080040d 100644
--- 
a/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/couchdb/CouchDbSink.java
+++ 
b/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/couchdb/CouchDbSink.java
@@ -48,7 +48,7 @@ public class CouchDbSink extends StreamPipesDataSink {
 
   @Override
   public DataSinkDescription declareModel() {
-    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.databases.jvm.couchdb")
+    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.databases.jvm.couchdb", 0)
         .withLocales(Locales.EN)
         .withAssets(Assets.DOCUMENTATION, Assets.ICON)
         .category(DataSinkType.DATABASE)
diff --git 
a/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/ditto/DittoSink.java
 
b/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/ditto/DittoSink.java
index 6d7cc3c51..2eba328da 100644
--- 
a/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/ditto/DittoSink.java
+++ 
b/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/ditto/DittoSink.java
@@ -71,7 +71,8 @@ public class DittoSink extends StreamPipesDataSink {
 
   @Override
   public DataSinkDescription declareModel() {
-    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.databases.ditto")
+    return DataSinkBuilder
+        .create("org.apache.streampipes.sinks.databases.ditto",0)
         .category(DataSinkType.FORWARD)
         .withLocales(Locales.EN)
         .withAssets(Assets.DOCUMENTATION, Assets.ICON)
diff --git 
a/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/iotdb/IotDbSink.java
 
b/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/iotdb/IotDbSink.java
index 5d0093ead..d326376c1 100644
--- 
a/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/iotdb/IotDbSink.java
+++ 
b/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/iotdb/IotDbSink.java
@@ -74,14 +74,23 @@ public class IotDbSink extends StreamPipesDataSink {
 
   @Override
   public DataSinkDescription declareModel() {
-    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.databases.jvm.iotdb").withLocales(Locales.EN)
-        .withAssets(Assets.DOCUMENTATION, 
Assets.ICON).category(DataSinkType.DATABASE).requiredStream(
+    return DataSinkBuilder
+        .create("org.apache.streampipes.sinks.databases.jvm.iotdb", 0)
+        .withLocales(Locales.EN)
+        .withAssets(Assets.DOCUMENTATION, Assets.ICON).
+        category(DataSinkType.DATABASE)
+        .requiredStream(
             StreamRequirementsBuilder.create()
                 
.requiredPropertyWithUnaryMapping(EpRequirements.timestampReq(), 
Labels.withId(TIMESTAMP_MAPPING_KEY),
-                    
PropertyScope.NONE).build()).requiredTextParameter(Labels.withId(HOST_KEY))
-        .requiredIntegerParameter(Labels.withId(PORT_KEY), 
6667).requiredTextParameter(Labels.withId(USER_KEY), "root")
-        
.requiredSecret(Labels.withId(PASSWORD_KEY)).requiredTextParameter(Labels.withId(DATABASE_KEY))
-        .requiredTextParameter(Labels.withId(DEVICE_KEY)).build();
+                    PropertyScope.NONE).build()
+        )
+        .requiredTextParameter(Labels.withId(HOST_KEY))
+        .requiredIntegerParameter(Labels.withId(PORT_KEY), 6667)
+        .requiredTextParameter(Labels.withId(USER_KEY), "root")
+        .requiredSecret(Labels.withId(PASSWORD_KEY))
+        .requiredTextParameter(Labels.withId(DATABASE_KEY))
+        .requiredTextParameter(Labels.withId(DEVICE_KEY))
+        .build();
   }
 
   @Override
diff --git 
a/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/postgresql/PostgreSqlSink.java
 
b/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/postgresql/PostgreSqlSink.java
index 7f8856f7f..fe8f96a57 100644
--- 
a/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/postgresql/PostgreSqlSink.java
+++ 
b/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/postgresql/PostgreSqlSink.java
@@ -50,7 +50,8 @@ public class PostgreSqlSink extends StreamPipesDataSink {
 
   @Override
   public DataSinkDescription declareModel() {
-    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.databases.jvm.postgresql")
+    return DataSinkBuilder
+        .create("org.apache.streampipes.sinks.databases.jvm.postgresql", 0)
         .withLocales(Locales.EN)
         .withAssets(Assets.DOCUMENTATION, Assets.ICON)
         .category(DataSinkType.DATABASE)
diff --git 
a/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/redis/RedisSink.java
 
b/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/redis/RedisSink.java
index 6cda27151..9c0f25482 100644
--- 
a/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/redis/RedisSink.java
+++ 
b/streampipes-extensions/streampipes-sinks-databases-jvm/src/main/java/org/apache/streampipes/sinks/databases/jvm/redis/RedisSink.java
@@ -64,7 +64,8 @@ public class RedisSink extends StreamPipesDataSink {
 
   @Override
   public DataSinkDescription declareModel() {
-    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.databases.jvm.redis")
+    return DataSinkBuilder
+        .create("org.apache.streampipes.sinks.databases.jvm.redis", 0)
         .withLocales(Locales.EN)
         .withAssets(Assets.DOCUMENTATION, Assets.ICON)
         .category(DataSinkType.DATABASE)
diff --git 
a/streampipes-extensions/streampipes-sinks-internal-jvm/src/main/java/org/apache/streampipes/sinks/internal/jvm/datalake/DataLakeSink.java
 
b/streampipes-extensions/streampipes-sinks-internal-jvm/src/main/java/org/apache/streampipes/sinks/internal/jvm/datalake/DataLakeSink.java
index 23557e7d7..82d8bf2b5 100644
--- 
a/streampipes-extensions/streampipes-sinks-internal-jvm/src/main/java/org/apache/streampipes/sinks/internal/jvm/datalake/DataLakeSink.java
+++ 
b/streampipes-extensions/streampipes-sinks-internal-jvm/src/main/java/org/apache/streampipes/sinks/internal/jvm/datalake/DataLakeSink.java
@@ -48,7 +48,8 @@ public class DataLakeSink extends StreamPipesDataSink {
 
   @Override
   public DataSinkDescription declareModel() {
-    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.internal.jvm.datalake")
+    return DataSinkBuilder
+        .create("org.apache.streampipes.sinks.internal.jvm.datalake", 0)
         .withLocales(Locales.EN)
         .withAssets(Assets.DOCUMENTATION, Assets.ICON)
         .category(DataSinkType.INTERNAL)
diff --git 
a/streampipes-extensions/streampipes-sinks-internal-jvm/src/main/java/org/apache/streampipes/sinks/internal/jvm/notification/NotificationProducer.java
 
b/streampipes-extensions/streampipes-sinks-internal-jvm/src/main/java/org/apache/streampipes/sinks/internal/jvm/notification/NotificationProducer.java
index 4ec5efc87..07d6b4ba5 100644
--- 
a/streampipes-extensions/streampipes-sinks-internal-jvm/src/main/java/org/apache/streampipes/sinks/internal/jvm/notification/NotificationProducer.java
+++ 
b/streampipes-extensions/streampipes-sinks-internal-jvm/src/main/java/org/apache/streampipes/sinks/internal/jvm/notification/NotificationProducer.java
@@ -106,7 +106,8 @@ public class NotificationProducer extends 
StreamPipesDataSink {
 
   @Override
   public DataSinkDescription declareModel() {
-    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.internal.jvm.notification")
+    return DataSinkBuilder
+        .create("org.apache.streampipes.sinks.internal.jvm.notification", 0)
         .withLocales(Locales.EN)
         .withAssets(Assets.DOCUMENTATION, Assets.ICON)
         .category(DataSinkType.INTERNAL, DataSinkType.NOTIFICATION)
diff --git 
a/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/email/EmailSink.java
 
b/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/email/EmailSink.java
index c41436fd2..b3f217b32 100644
--- 
a/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/email/EmailSink.java
+++ 
b/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/email/EmailSink.java
@@ -55,7 +55,8 @@ public class EmailSink extends StreamPipesDataSink {
 
   @Override
   public DataSinkDescription declareModel() {
-    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.notifications.jvm.email")
+    return DataSinkBuilder
+        .create("org.apache.streampipes.sinks.notifications.jvm.email", 0)
         .withLocales(Locales.EN)
         .withAssets(Assets.DOCUMENTATION, Assets.ICON)
         .category(DataSinkType.NOTIFICATION)
diff --git 
a/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/msteams/MSTeamsSink.java
 
b/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/msteams/MSTeamsSink.java
index 2556d4ecd..286941f09 100644
--- 
a/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/msteams/MSTeamsSink.java
+++ 
b/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/msteams/MSTeamsSink.java
@@ -87,37 +87,38 @@ public class MSTeamsSink extends StreamPipesDataSink {
 
   @Override
   public DataSinkDescription declareModel() {
-    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.notifications.jvm.msteams")
-            .withLocales(Locales.EN)
-            .withAssets(Assets.DOCUMENTATION, Assets.ICON)
-            .category(DataSinkType.NOTIFICATION)
-            .requiredStream(
-                    StreamRequirementsBuilder
-                            .create()
-                            .requiredProperty(EpRequirements.anyProperty())
-                            .build()
-            )
-            .requiredSecret(Labels.withId(KEY_WEBHOOK_URL))
-            .requiredAlternatives(
-                    Labels.withId(KEY_MESSAGE_TYPE_ALTERNATIVES),
-                    Alternatives.from(
-                            Labels.withId(KEY_MESSAGE_SIMPLE),
-                            StaticProperties.stringFreeTextProperty(
-                                    Labels.withId(KEY_MESSAGE_SIMPLE_CONTENT),
-                                    true,
-                                    true
-                            ),
-                            true),
-                    Alternatives.from(
-                            Labels.withId(KEY_MESSAGE_ADVANCED),
-                            StaticProperties.stringFreeTextProperty(
-                                    
Labels.withId(KEY_MESSAGE_ADVANCED_CONTENT),
-                                    true,
-                                    true
-                            )
-                    )
-            )
-            .build();
+    return DataSinkBuilder
+        .create("org.apache.streampipes.sinks.notifications.jvm.msteams", 0)
+          .withLocales(Locales.EN)
+          .withAssets(Assets.DOCUMENTATION, Assets.ICON)
+          .category(DataSinkType.NOTIFICATION)
+          .requiredStream(
+                  StreamRequirementsBuilder
+                          .create()
+                          .requiredProperty(EpRequirements.anyProperty())
+                          .build()
+          )
+          .requiredSecret(Labels.withId(KEY_WEBHOOK_URL))
+          .requiredAlternatives(
+                  Labels.withId(KEY_MESSAGE_TYPE_ALTERNATIVES),
+                  Alternatives.from(
+                          Labels.withId(KEY_MESSAGE_SIMPLE),
+                          StaticProperties.stringFreeTextProperty(
+                                  Labels.withId(KEY_MESSAGE_SIMPLE_CONTENT),
+                                  true,
+                                  true
+                          ),
+                          true),
+                  Alternatives.from(
+                          Labels.withId(KEY_MESSAGE_ADVANCED),
+                          StaticProperties.stringFreeTextProperty(
+                                  Labels.withId(KEY_MESSAGE_ADVANCED_CONTENT),
+                                  true,
+                                  true
+                          )
+                  )
+          )
+          .build();
   }
 
   @Override
diff --git 
a/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/onesignal/OneSignalSink.java
 
b/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/onesignal/OneSignalSink.java
index ea3a317c3..e02ee6a25 100644
--- 
a/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/onesignal/OneSignalSink.java
+++ 
b/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/onesignal/OneSignalSink.java
@@ -54,7 +54,8 @@ public class OneSignalSink extends StreamPipesDataSink {
 
   @Override
   public DataSinkDescription declareModel() {
-    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.notifications.jvm.onesignal")
+    return DataSinkBuilder
+        .create("org.apache.streampipes.sinks.notifications.jvm.onesignal", 0)
         .withLocales(Locales.EN)
         .withAssets(Assets.DOCUMENTATION, Assets.ICON)
         .category(DataSinkType.NOTIFICATION)
diff --git 
a/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/slack/SlackNotificationSink.java
 
b/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/slack/SlackNotificationSink.java
index 2cdc611af..a5b4093f7 100644
--- 
a/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/slack/SlackNotificationSink.java
+++ 
b/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/slack/SlackNotificationSink.java
@@ -58,7 +58,8 @@ public class SlackNotificationSink extends 
StreamPipesDataSink {
   @Override
   public DataSinkDescription declareModel() {
 
-    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.notifications.jvm.slack")
+    return DataSinkBuilder
+        .create("org.apache.streampipes.sinks.notifications.jvm.slack", 0)
         .withLocales(Locales.EN)
         .withAssets(Assets.DOCUMENTATION, Assets.ICON)
         .category(DataSinkType.NOTIFICATION)
diff --git 
a/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/telegram/TelegramSink.java
 
b/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/telegram/TelegramSink.java
index 73edd3eb1..79bf95632 100644
--- 
a/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/telegram/TelegramSink.java
+++ 
b/streampipes-extensions/streampipes-sinks-notifications-jvm/src/main/java/org/apache/streampipes/sinks/notifications/jvm/telegram/TelegramSink.java
@@ -58,7 +58,8 @@ public class TelegramSink extends StreamPipesDataSink {
 
   @Override
   public DataSinkDescription declareModel() {
-    return 
DataSinkBuilder.create("org.apache.streampipes.sinks.notifications.jvm.telegram")
+    return DataSinkBuilder
+        .create("org.apache.streampipes.sinks.notifications.jvm.telegram", 0)
         .withLocales(Locales.EN)
         .withAssets(Assets.DOCUMENTATION, Assets.ICON)
         .category(DataSinkType.NOTIFICATION)
diff --git 
a/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/builder/DataSinkBuilder.java
 
b/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/builder/DataSinkBuilder.java
index 7e2e252db..1480f6c13 100644
--- 
a/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/builder/DataSinkBuilder.java
+++ 
b/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/builder/DataSinkBuilder.java
@@ -27,36 +27,63 @@ import java.util.stream.Collectors;
 
 public class DataSinkBuilder extends 
AbstractProcessingElementBuilder<DataSinkBuilder, DataSinkDescription> {
 
-  protected DataSinkBuilder(String id, String label, String description) {
+  protected DataSinkBuilder(
+          String id,
+          String label,
+          String description,
+          int version
+  ) {
     super(id, label, description, new DataSinkDescription());
+    this.elementDescription.setVersion(version);
   }
 
-  protected DataSinkBuilder(String id) {
+  protected DataSinkBuilder(
+          String id,
+          int version
+  ) {
     super(id, new DataSinkDescription());
+    this.elementDescription.setVersion(version);
   }
 
   /**
    * Creates a new data sink using the builder pattern.
-   *
+   * @deprecated
+   * This method is no longer recommend since we rely on a version for 
migration purposes.
+   * <p> Please adopt {@link #create(String, int)} instead.
    * @param id          A unique identifier of the new element, e.g., 
com.mycompany.sink.mynewdatasink
    * @param label       A human-readable name of the element.
    *                    Will later be shown as the element name in the 
StreamPipes UI.
    * @param description A human-readable description of the element.
    */
+  @Deprecated(since = "0.93.0", forRemoval = true)
   public static DataSinkBuilder create(String id, String label, String 
description) {
-    return new DataSinkBuilder(id, label, description);
+    return new DataSinkBuilder(id, label, description, 0);
   }
 
   /**
-   * Creates a new data sink using the builder pattern. If no label and 
description is given
-   * for an element,
+   * Creates a new data sink using the builder pattern.
    * {@link 
org.apache.streampipes.sdk.builder.AbstractProcessingElementBuilder#withLocales(Locales...)}
-   * must be called.
+   * must be called, to provide a label and description.
+   * @deprecated
+   * This method is no longer recommend since we rely on a version for 
migration purposes.
+   * <p> Please adopt {@link #create(String, int)} instead.
    *
    * @param id A unique identifier of the new element, e.g., 
com.mycompany.sink.mynewdatasink
    */
+  @Deprecated(since = "0.93.0", forRemoval = true)
   public static DataSinkBuilder create(String id) {
-    return new DataSinkBuilder(id);
+    return new DataSinkBuilder(id, 0);
+  }
+
+  /**
+   * Creates a new data sink using the builder pattern.
+   * {@link 
org.apache.streampipes.sdk.builder.AbstractProcessingElementBuilder#withLocales(Locales...)}
+   * must be called, to provide a label and description.
+   *
+   * @param id A unique identifier of the new element, e.g., 
com.mycompany.sink.mynewdatasink
+   */
+  public static DataSinkBuilder create(String id, int version) {
+    return new DataSinkBuilder(id, version);
   }
 
   public DataSinkBuilder category(DataSinkType... categories) {


Reply via email to