You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by oe...@apache.org on 2026/06/29 13:31:32 UTC

(streampipes) 01/01: Merge branch 'dev' of https://github.com/apache/streampipes into remove-groovy-support-from-adapter-script-transformation

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

SvenO3 pushed a commit to branch remove-groovy-support-from-adapter-script-transformation
in repository https://gitbox.apache.org/repos/asf/streampipes.git

commit 4ae6667d9dc354130af5754849b95180630900cf
Merge: 7ed9d3fa03 87ffcff1ae
Author: Sven Oehler <oe...@web.de>
AuthorDate: Mon Jun 29 15:31:21 2026 +0200

    Merge branch 'dev' of https://github.com/apache/streampipes into remove-groovy-support-from-adapter-script-transformation

 .../connect/AdapterTransitionRegistry.java         |  80 +++++++++++++
 .../connect/AdapterWorkerManagement.java           |  83 +++++++------
 .../connect/AdapterWorkerRequestManagement.java    |   7 +-
 .../monitoring/HealthCheckManagement.java          |  53 +++++++--
 .../connect/AdapterWorkerManagementTest.java       |  17 ++-
 .../health/monitoring/AdapterHealthCheck.java      |  19 ++-
 .../ExtensionInstanceAvailabilityCheck.java        |   7 +-
 .../health/monitoring/AdapterHealthCheckTest.java  | 129 +++++++++++++++++++++
 ...stanceHealth.java => AdapterInstanceState.java} |   8 +-
 .../model/health/ExtensionInstanceHealth.java      |   3 +-
 10 files changed, 345 insertions(+), 61 deletions(-)

diff --cc streampipes-extensions-management/src/main/java/org/apache/streampipes/extensions/management/connect/AdapterWorkerManagement.java
index f3d17fd20e,4df5066ff1..ea0df9a89d
--- a/streampipes-extensions-management/src/main/java/org/apache/streampipes/extensions/management/connect/AdapterWorkerManagement.java
+++ b/streampipes-extensions-management/src/main/java/org/apache/streampipes/extensions/management/connect/AdapterWorkerManagement.java
@@@ -54,32 -56,36 +57,37 @@@ public class AdapterWorkerManagement 
    }
  
    public void invokeAdapter(AdapterDescription adapterDescription) throws AdapterException {
-     var adapter = declarers
-         .getAdapter(adapterDescription.getAppId());
- 
-     if (adapter.isPresent()) {
-       var newAdapterInstance = adapter.get().declareConfig().getSupplier().get();
-       validateScriptLanguage(adapterDescription);
-       runningAdapterInstances.addAdapter(
-           adapterDescription.getElementId(),
-           newAdapterInstance,
-           adapterDescription);
- 
-       // This method allows adapters to modify the adapter description prior to invocation.
-       // It is particularly useful for adapters like FileReplayAdapter that need to manipulate timestamp values
-       // internally, bypassing the adapter preprocessing pipeline.
-       newAdapterInstance.preprocessAdapterDescription(adapterDescription);
- 
-       var registeredParsers = newAdapterInstance.declareConfig().getSupportedParsers();
-       var extractor = AdapterParameterExtractor.from(adapterDescription, registeredParsers);
-       var runtimeContext = makeRuntimeContext(adapterDescription.getElementId());
-       var eventCollector = EventCollector.from(adapterDescription, runtimeContext);
- 
-       newAdapterInstance.onAdapterStarted(extractor, eventCollector, runtimeContext);
-     } else {
-       var errorMessage = "Adapter with id %s could not be found".formatted(adapterDescription.getAppId());
-       LOG.error(errorMessage);
-       throw new AdapterException(errorMessage);
+     adapterTransitionRegistry.registerStarting(adapterDescription.getElementId());
+     try {
+       var adapter = declarers
+           .getAdapter(adapterDescription.getAppId());
+ 
+       if (adapter.isPresent()) {
+         var newAdapterInstance = adapter.get().declareConfig().getSupplier().get();
++        validateScriptLanguage(adapterDescription);
+         runningAdapterInstances.addAdapter(
+             adapterDescription.getElementId(),
+             newAdapterInstance,
+             adapterDescription);
+ 
+         // This method allows adapters to modify the adapter description prior to invocation.
+         // It is particularly useful for adapters like FileReplayAdapter that need to manipulate timestamp values
+         // internally, bypassing the adapter preprocessing pipeline.
+         newAdapterInstance.preprocessAdapterDescription(adapterDescription);
+ 
+         var registeredParsers = newAdapterInstance.declareConfig().getSupportedParsers();
+         var extractor = AdapterParameterExtractor.from(adapterDescription, registeredParsers);
+         var runtimeContext = makeRuntimeContext(adapterDescription.getElementId());
+         var eventCollector = EventCollector.from(adapterDescription, runtimeContext);
+ 
+         newAdapterInstance.onAdapterStarted(extractor, eventCollector, runtimeContext);
+       } else {
+         var errorMessage = "Adapter with id %s could not be found".formatted(adapterDescription.getAppId());
+         LOG.error(errorMessage);
+         throw new AdapterException(errorMessage);
+       }
+     } finally {
+       adapterTransitionRegistry.deregisterStarting(adapterDescription.getElementId());
      }
    }