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());
- }
}