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

riemer pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/streampipes.git


The following commit(s) were added to refs/heads/dev by this push:
     new 01f86e3468 chore: Cleanup some code in streampipes-rest (#4215)
01f86e3468 is described below

commit 01f86e3468ad420d381f2b6fa4e0575590f79d56
Author: Dominik Riemer <[email protected]>
AuthorDate: Wed Mar 4 13:38:10 2026 +0100

    chore: Cleanup some code in streampipes-rest (#4215)
---
 .../shared/exception/SpRestExceptionHandler.java   | 18 ++++++++---
 .../rest/impl/connect/CompactAdapterResource.java  | 23 +++-----------
 .../impl/connect/ConnectRestExceptionHandler.java  | 25 +++++----------
 .../rest/impl/connect/DescriptionResource.java     | 34 ++++++++------------
 .../rest/impl/connect/GuessResource.java           | 36 ----------------------
 .../impl/connect/RuntimeResolvableResource.java    |  7 ++---
 .../TransformationScriptLanguageResource.java      | 14 ---------
 7 files changed, 39 insertions(+), 118 deletions(-)

diff --git 
a/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/exception/SpRestExceptionHandler.java
 
b/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/exception/SpRestExceptionHandler.java
index 8b74981166..785f7964df 100644
--- 
a/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/exception/SpRestExceptionHandler.java
+++ 
b/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/exception/SpRestExceptionHandler.java
@@ -18,6 +18,7 @@
 
 package org.apache.streampipes.rest.shared.exception;
 
+import 
org.apache.streampipes.commons.exceptions.NoServiceEndpointsAvailableException;
 import org.apache.streampipes.commons.exceptions.connect.AdapterException;
 import org.apache.streampipes.model.monitoring.SpLogMessage;
 
@@ -32,15 +33,24 @@ import 
org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExcep
 public class SpRestExceptionHandler extends ResponseEntityExceptionHandler {
 
   @ExceptionHandler(value = {AdapterException.class})
-  private ResponseEntity<Object> handleAdapterException(RuntimeException ex, 
WebRequest request) {
-    var spLogMessageException =  new 
SpLogMessageException(HttpStatus.INTERNAL_SERVER_ERROR, SpLogMessage.from(ex));
+  private ResponseEntity<Object> handleAdapterException(AdapterException ex, 
WebRequest request) {
+    var spLogMessageException = new 
SpLogMessageException(HttpStatus.INTERNAL_SERVER_ERROR, SpLogMessage.from(ex));
+    return handleSpLogMessageException(spLogMessageException, request);
+  }
+
+  @ExceptionHandler(value = {NoServiceEndpointsAvailableException.class})
+  private ResponseEntity<Object> handleNoServiceEndpointsAvailableException(
+      NoServiceEndpointsAvailableException ex,
+      WebRequest request) {
+    var spLogMessageException = new 
SpLogMessageException(HttpStatus.INTERNAL_SERVER_ERROR, SpLogMessage.from(ex));
     return handleSpLogMessageException(spLogMessageException, request);
   }
 
   @ExceptionHandler(value = {SpLogMessageException.class})
   protected ResponseEntity<Object> handleSpLogMessageException(
-      RuntimeException ex, WebRequest request) {
-    var exception = (SpLogMessageException) ex;
+      SpLogMessageException ex,
+      WebRequest request) {
+    var exception = ex;
     return ResponseEntity
         .status(exception.getStatus())
         .body(exception.getSpMessage());
diff --git 
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/CompactAdapterResource.java
 
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/CompactAdapterResource.java
index 8ba5dd7675..2101cb3fe6 100644
--- 
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/CompactAdapterResource.java
+++ 
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/CompactAdapterResource.java
@@ -26,7 +26,6 @@ import 
org.apache.streampipes.connect.management.management.AdapterMasterManagem
 import 
org.apache.streampipes.connect.management.management.AdapterUpdateManagement;
 import 
org.apache.streampipes.connect.management.management.CompactAdapterManagement;
 import 
org.apache.streampipes.manager.pipeline.compact.CompactPipelineManagement;
-import org.apache.streampipes.model.connect.adapter.AdapterDescription;
 import org.apache.streampipes.model.connect.adapter.compact.CompactAdapter;
 import org.apache.streampipes.model.message.Notifications;
 import org.apache.streampipes.resource.management.SpResourceManager;
@@ -52,7 +51,7 @@ import org.springframework.web.bind.annotation.RestController;
 public class CompactAdapterResource extends 
AbstractAdapterResource<AdapterMasterManagement> {
 
   private static final Logger LOG = 
LoggerFactory.getLogger(CompactAdapterResource.class);
-  private final AdapterGenerationSteps adapterGenerationSteps;
+  private final CompactAdapterManagement compactAdapterManagement;
   private final AdapterUpdateManagement adapterUpdateManagement;
 
   public CompactAdapterResource() {
@@ -63,7 +62,7 @@ public class CompactAdapterResource extends 
AbstractAdapterResource<AdapterMaste
         new SpResourceManager().manageDataStreams(),
         AdapterMetricsManager.INSTANCE.getAdapterMetrics()
     ));
-    this.adapterGenerationSteps = new AdapterGenerationSteps();
+    this.compactAdapterManagement = new CompactAdapterManagement(new 
AdapterGenerationSteps().getGenerators());
     this.adapterUpdateManagement = new 
AdapterUpdateManagement(managementService);
   }
 
@@ -79,7 +78,7 @@ public class CompactAdapterResource extends 
AbstractAdapterResource<AdapterMaste
       @RequestBody CompactAdapter compactAdapter
   ) throws Exception {
 
-    var adapterDescription = getGeneratedAdapterDescription(compactAdapter);
+    var adapterDescription = 
compactAdapterManagement.convertToAdapterDescription(compactAdapter);
     var principalSid = getAuthenticatedUserSid();
 
     var adapterId = adapterDescription.getElementId();
@@ -136,7 +135,7 @@ public class CompactAdapterResource extends 
AbstractAdapterResource<AdapterMaste
 
     var existingAdapter = managementService.getAdapter(elementId);
     if (existingAdapter != null) {
-      var adapterDescription = getGeneratedAdapterDescription(compactAdapter, 
existingAdapter);
+      var adapterDescription = 
compactAdapterManagement.convertToAdapterDescription(compactAdapter, 
existingAdapter);
 
       try {
         adapterUpdateManagement.updateAdapter(adapterDescription);
@@ -150,18 +149,4 @@ public class CompactAdapterResource extends 
AbstractAdapterResource<AdapterMaste
       throw new BadRequestException(String.format("Adapter with id %s not 
found", elementId));
     }
   }
-
-  private AdapterDescription getGeneratedAdapterDescription(CompactAdapter 
compactAdapter) throws Exception {
-    var generators = adapterGenerationSteps.getGenerators();
-    return new 
CompactAdapterManagement(generators).convertToAdapterDescription(compactAdapter);
-  }
-
-  private AdapterDescription getGeneratedAdapterDescription(
-      CompactAdapter compactAdapter,
-      AdapterDescription existingAdapter
-  ) throws Exception {
-    var generators = adapterGenerationSteps.getGenerators();
-    return new 
CompactAdapterManagement(generators).convertToAdapterDescription(compactAdapter,
 existingAdapter);
-  }
-
 }
diff --git 
a/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/exception/SpRestExceptionHandler.java
 
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/ConnectRestExceptionHandler.java
similarity index 50%
copy from 
streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/exception/SpRestExceptionHandler.java
copy to 
streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/ConnectRestExceptionHandler.java
index 8b74981166..76ab51c468 100644
--- 
a/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/exception/SpRestExceptionHandler.java
+++ 
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/ConnectRestExceptionHandler.java
@@ -16,33 +16,22 @@
  *
  */
 
-package org.apache.streampipes.rest.shared.exception;
+package org.apache.streampipes.rest.impl.connect;
 
-import org.apache.streampipes.commons.exceptions.connect.AdapterException;
-import org.apache.streampipes.model.monitoring.SpLogMessage;
+import 
org.apache.streampipes.extensions.api.connect.exception.WorkerAdapterException;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.ControllerAdvice;
 import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.context.request.WebRequest;
-import 
org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
 
 @ControllerAdvice
-public class SpRestExceptionHandler extends ResponseEntityExceptionHandler {
+public class ConnectRestExceptionHandler {
 
-  @ExceptionHandler(value = {AdapterException.class})
-  private ResponseEntity<Object> handleAdapterException(RuntimeException ex, 
WebRequest request) {
-    var spLogMessageException =  new 
SpLogMessageException(HttpStatus.INTERNAL_SERVER_ERROR, SpLogMessage.from(ex));
-    return handleSpLogMessageException(spLogMessageException, request);
-  }
-
-  @ExceptionHandler(value = {SpLogMessageException.class})
-  protected ResponseEntity<Object> handleSpLogMessageException(
-      RuntimeException ex, WebRequest request) {
-    var exception = (SpLogMessageException) ex;
+  @ExceptionHandler(value = {WorkerAdapterException.class})
+  private ResponseEntity<Object> 
handleWorkerAdapterException(WorkerAdapterException ex) {
     return ResponseEntity
-        .status(exception.getStatus())
-        .body(exception.getSpMessage());
+        .status(HttpStatus.INTERNAL_SERVER_ERROR)
+        .body(ex.getExceptionMessage());
   }
 }
diff --git 
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/DescriptionResource.java
 
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/DescriptionResource.java
index d26eaf951a..e9b81ab80c 100644
--- 
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/DescriptionResource.java
+++ 
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/DescriptionResource.java
@@ -56,9 +56,7 @@ public class DescriptionResource extends 
AbstractAdapterResource<DescriptionMana
   @GetMapping(path = "/adapters", produces = MediaType.APPLICATION_JSON_VALUE)
   @PreAuthorize("this.hasReadAuthority()")
   public ResponseEntity<List<AdapterDescription>> getAdapters() {
-    List<AdapterDescription> result = managementService.getAdapters();
-
-    return ok(result);
+    return ok(managementService.getAdapters());
   }
 
   @GetMapping(path = "/{id}/assets", produces = "application/zip")
@@ -76,15 +74,12 @@ public class DescriptionResource extends 
AbstractAdapterResource<DescriptionMana
       }
 
       if (result == null) {
-        LOG.error("Not found adapter with id " + id);
+        LOG.error("Not found adapter with id {}", id);
         return fail();
-      } else {
-        return ok(result);
       }
-    } catch (AdapterException e) {
-      LOG.error("Not found adapter with id " + id, e);
-      return fail();
-    } catch (NoServiceEndpointsAvailableException e) {
+      return ok(result);
+    } catch (AdapterException | NoServiceEndpointsAvailableException e) {
+      LOG.error("Not found adapter with id {}", id, e);
       return fail();
     }
   }
@@ -105,15 +100,13 @@ public class DescriptionResource extends 
AbstractAdapterResource<DescriptionMana
       }
 
       if (result == null) {
-        LOG.error("Not found adapter with id " + id);
+        LOG.error("Not found adapter with id {}", id);
         return fail();
       } else {
         return ok(result);
       }
-    } catch (AdapterException e) {
-      LOG.error("Not found adapter with id " + id);
-      return fail();
-    } catch (NoServiceEndpointsAvailableException e) {
+    } catch (AdapterException | NoServiceEndpointsAvailableException e) {
+      LOG.error("Not found adapter with id {}", id, e);
       return fail();
     }
   }
@@ -133,15 +126,12 @@ public class DescriptionResource extends 
AbstractAdapterResource<DescriptionMana
       }
 
       if (result == null) {
-        LOG.error("Not found adapter with id " + id);
+        LOG.error("Not found adapter with id {}", id);
         return fail();
-      } else {
-        return ok(result);
       }
-    } catch (AdapterException e) {
-      LOG.error("Not found adapter with id " + id, e);
-      return fail();
-    } catch (NoServiceEndpointsAvailableException e) {
+      return ok(result);
+    } catch (AdapterException | NoServiceEndpointsAvailableException e) {
+      LOG.error("Not found adapter with id {}", id, e);
       return fail();
     }
   }
diff --git 
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/GuessResource.java
 
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/GuessResource.java
index 1b62fc8ed6..921fb565cd 100644
--- 
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/GuessResource.java
+++ 
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/GuessResource.java
@@ -22,24 +22,19 @@ import 
org.apache.streampipes.commons.exceptions.NoServiceEndpointsAvailableExce
 import org.apache.streampipes.commons.exceptions.connect.AdapterException;
 import org.apache.streampipes.connect.management.management.GuessManagement;
 import 
org.apache.streampipes.extensions.api.connect.exception.WorkerAdapterException;
-import org.apache.streampipes.model.client.user.DefaultPrivilege;
 import org.apache.streampipes.model.connect.adapter.AdapterDescription;
 import org.apache.streampipes.model.monitoring.SpLogMessage;
 import org.apache.streampipes.model.schema.EventSchema;
-import org.apache.streampipes.rest.shared.exception.SpLogMessageException;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.context.request.WebRequest;
 
 import java.io.IOException;
 
@@ -103,35 +98,4 @@ public class GuessResource extends 
AbstractAdapterResource<GuessManagement> {
     return 
ok(managementService.performAdapterEventPreview(adapterDescription));
 
   }
-
-  /**
-   * required by Spring expression
-   */
-  public boolean hasWriteAuthority() {
-    return 
isAdminOrHasAnyAuthority(DefaultPrivilege.Constants.PRIVILEGE_WRITE_ADAPTER_VALUE);
-  }
-
-  // TODO move these ExceptionHandlers to another place
-  @ExceptionHandler(value = {WorkerAdapterException.class})
-  private ResponseEntity<Object> handleAdapterException(WorkerAdapterException 
ex, WebRequest request) {
-    var spLogMessageException = ex.getExceptionMessage();
-    return ResponseEntity
-        .status(HttpStatus.INTERNAL_SERVER_ERROR)
-        .body(spLogMessageException);
-  }
-  @ExceptionHandler(value = {AdapterException.class})
-  private ResponseEntity<Object> handleAdapterException(AdapterException ex, 
WebRequest request) {
-    var spLogMessageException = new 
SpLogMessageException(HttpStatus.INTERNAL_SERVER_ERROR, SpLogMessage.from(ex));
-    return handleSpLogMessageException(spLogMessageException, request);
-  }
-  @ExceptionHandler(value = {SpLogMessageException.class})
-  protected ResponseEntity<Object> handleSpLogMessageException(
-      RuntimeException ex, WebRequest request) {
-    var exception = (SpLogMessageException) ex;
-    return ResponseEntity
-        .status(exception.getStatus())
-        .body(exception.getSpMessage());
-  }
-
 }
-
diff --git 
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/RuntimeResolvableResource.java
 
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/RuntimeResolvableResource.java
index d5d1cd1942..fddde0f7a9 100644
--- 
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/RuntimeResolvableResource.java
+++ 
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/RuntimeResolvableResource.java
@@ -72,11 +72,8 @@ public class RuntimeResolvableResource extends 
AbstractAdapterResource<Void> {
       RuntimeOptionsResponse result = 
WorkerRestClient.getConfiguration(baseUrl, appId, runtimeOptionsRequest);
 
       return ok(result);
-    } catch (AdapterException e) {
-      LOG.error("Adapter exception occurred", e);
-      return serverError(SpLogMessage.from(e));
-    } catch (NoServiceEndpointsAvailableException e) {
-      LOG.error("Could not find service endpoint for {} while fetching 
configuration", appId);
+    } catch (AdapterException | NoServiceEndpointsAvailableException e) {
+      LOG.error("Could not fetch runtime configuration for {}", appId, e);
       return serverError(SpLogMessage.from(e));
     } catch (SpConfigurationException e) {
       LOG.error("Tried to fetch a runtime configuration with insufficient 
settings");
diff --git 
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/TransformationScriptLanguageResource.java
 
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/TransformationScriptLanguageResource.java
index 0780f040fb..18fe0c7f0d 100644
--- 
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/TransformationScriptLanguageResource.java
+++ 
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/connect/TransformationScriptLanguageResource.java
@@ -23,16 +23,11 @@ import 
org.apache.streampipes.connect.transformer.api.TransformationEngines;
 import 
org.apache.streampipes.manager.execution.endpoint.ExtensionsServiceEndpointUtils;
 import org.apache.streampipes.model.connect.ScriptMetadata;
 import org.apache.streampipes.model.connect.adapter.AdapterDescription;
-import org.apache.streampipes.model.monitoring.SpLogMessage;
-import org.apache.streampipes.rest.shared.exception.SpLogMessageException;
 import org.apache.streampipes.svcdiscovery.SpServiceDiscovery;
 import org.apache.streampipes.svcdiscovery.api.model.DefaultSpServiceTypes;
 import org.apache.streampipes.svcdiscovery.api.model.SpServiceUrlProvider;
 
-import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -75,13 +70,4 @@ public class TransformationScriptLanguageResource {
     }
 
   }
-
-  // TODO move these ExceptionHandlers to another place
-  @ExceptionHandler(value = {NoServiceEndpointsAvailableException.class})
-  private ResponseEntity<Object> 
handleAdapterException(NoServiceEndpointsAvailableException ex) {
-    var spLogMessageException = new 
SpLogMessageException(HttpStatus.INTERNAL_SERVER_ERROR, SpLogMessage.from(ex));
-    return ResponseEntity
-        .status(spLogMessageException.getStatus())
-        .body(spLogMessageException.getSpMessage());
-  }
 }

Reply via email to