diff --git a/pom.xml b/pom.xml
index e71fdd77..cf343e9c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,8 +26,8 @@
1.2.0-alpha2
1.4.0-alpha1
8.1.17
- 0.16.1
- 0.6.0
+ 0.17.0
+ 0.7.0
1.8.10
2.7.8
diff --git a/src/main/kotlin/org/camunda/community/zeebe/play/connectors/ConnectorService.kt b/src/main/kotlin/org/camunda/community/zeebe/play/connectors/ConnectorService.kt
index bc8a32de..14ec4ebc 100644
--- a/src/main/kotlin/org/camunda/community/zeebe/play/connectors/ConnectorService.kt
+++ b/src/main/kotlin/org/camunda/community/zeebe/play/connectors/ConnectorService.kt
@@ -1,7 +1,7 @@
package org.camunda.community.zeebe.play.connectors
import io.camunda.connector.impl.outbound.OutboundConnectorConfiguration
-import io.camunda.connector.runtime.util.outbound.OutboundConnectorRegistrationHelper
+import io.camunda.connector.runtime.util.discovery.SPIConnectorDiscovery
import io.camunda.zeebe.model.bpmn.Bpmn
import io.camunda.zeebe.model.bpmn.BpmnModelInstance
import io.camunda.zeebe.model.bpmn.instance.zeebe.ZeebeInput
@@ -55,9 +55,7 @@ class ConnectorService(
}
fun findAvailableConnectors(): List {
- return OutboundConnectorRegistrationHelper
- .parseFromSPI()
- .toList()
+ return SPIConnectorDiscovery.discoverOutbound().toList()
}
}
\ No newline at end of file
diff --git a/src/main/kotlin/org/camunda/community/zeebe/play/connectors/ConnectorsConfig.kt b/src/main/kotlin/org/camunda/community/zeebe/play/connectors/ConnectorsConfig.kt
index 85a9c0b1..4f3fb2f0 100644
--- a/src/main/kotlin/org/camunda/community/zeebe/play/connectors/ConnectorsConfig.kt
+++ b/src/main/kotlin/org/camunda/community/zeebe/play/connectors/ConnectorsConfig.kt
@@ -1,6 +1,7 @@
package org.camunda.community.zeebe.play.connectors
import io.camunda.connector.api.secret.SecretProvider
+import io.camunda.connector.runtime.util.ConnectorHelper
import io.camunda.connector.runtime.util.outbound.ConnectorJobHandler
import io.camunda.zeebe.client.ZeebeClient
import io.camunda.zeebe.spring.client.lifecycle.ZeebeClientLifecycle
@@ -39,10 +40,14 @@ class ConnectorsConfig(
connectorService
.findAvailableConnectors()
.forEach { connectorConfig ->
+ val connector =
+ ConnectorHelper.instantiateConnector(connectorConfig.connectorClass)
+ val jobHandler = ConnectorJobHandler(connector, secretProvider)
+
zeebeClient
.newWorker()
.jobType(connectorConfig.type)
- .handler(ConnectorJobHandler(connectorConfig.function, secretProvider))
+ .handler(jobHandler)
.name(connectorConfig.name)
.fetchVariables(connectorConfig.inputVariables.toList())
.open()
diff --git a/src/main/kotlin/org/camunda/community/zeebe/play/rest/ConnectorsResource.kt b/src/main/kotlin/org/camunda/community/zeebe/play/rest/ConnectorsResource.kt
index ef79ef46..14cf2707 100644
--- a/src/main/kotlin/org/camunda/community/zeebe/play/rest/ConnectorsResource.kt
+++ b/src/main/kotlin/org/camunda/community/zeebe/play/rest/ConnectorsResource.kt
@@ -1,6 +1,7 @@
package org.camunda.community.zeebe.play.rest
import io.camunda.connector.impl.outbound.OutboundConnectorConfiguration
+import io.camunda.connector.runtime.util.ConnectorHelper
import io.camunda.connector.runtime.util.outbound.ConnectorJobHandler
import io.camunda.zeebe.client.ZeebeClient
import io.camunda.zeebe.client.api.response.ActivatedJob
@@ -35,7 +36,8 @@ class ConnectorsResource(
.find { it.type == jobType }
?: throw RuntimeException("No connector found with job type '$jobType'."))
- val jobHandler = ConnectorJobHandler(connectorConfig.function, connectorsSecretProvider)
+ val connector = ConnectorHelper.instantiateConnector(connectorConfig.connectorClass)
+ val jobHandler = ConnectorJobHandler(connector, connectorsSecretProvider)
findConnectorJob(connectorConfig, jobKey)
?.let { jobHandler.handle(zeebeClient, it) }