You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ri...@apache.org on 2023/01/13 11:02:45 UTC

[streampipes] branch SP-1091 created (now bf50b15e9)

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

riemer pushed a change to branch SP-1091
in repository https://gitbox.apache.org/repos/asf/streampipes.git


      at bf50b15e9 Reduce warnings at startup, improve structure of resource configs (#1091)

This branch includes the following new commits:

     new bf50b15e9 Reduce warnings at startup, improve structure of resource configs (#1091)

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[streampipes] 01/01: Reduce warnings at startup, improve structure of resource configs (#1091)

Posted by ri...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit bf50b15e9bf33be5dd428917ef6c7ad0c0040939
Author: Dominik Riemer <do...@gmail.com>
AuthorDate: Fri Jan 13 12:02:21 2023 +0100

    Reduce warnings at startup, improve structure of resource configs (#1091)
---
 .../streampipes/ps/DataLakeMeasureResourceV4.java  |   1 -
 .../streampipes/rest/impl/PipelineResource.java    |   1 -
 .../rest/impl/pe/DataStreamResource.java           |   1 -
 .../service/base/rest/BaseResourceConfig.java      |  20 ++-
 .../service/core/StreamPipesResourceConfig.java    | 167 +++++++++++----------
 .../extensions/ExtensionsResourceConfig.java       |  40 +++--
 6 files changed, 116 insertions(+), 114 deletions(-)

diff --git a/streampipes-platform-services/src/main/java/org/apache/streampipes/ps/DataLakeMeasureResourceV4.java b/streampipes-platform-services/src/main/java/org/apache/streampipes/ps/DataLakeMeasureResourceV4.java
index 03d2b9dfa..a59ce31ac 100644
--- a/streampipes-platform-services/src/main/java/org/apache/streampipes/ps/DataLakeMeasureResourceV4.java
+++ b/streampipes-platform-services/src/main/java/org/apache/streampipes/ps/DataLakeMeasureResourceV4.java
@@ -47,7 +47,6 @@ public class DataLakeMeasureResourceV4 extends AbstractAuthGuardedRestResource {
   @JacksonSerialized
   @Produces(MediaType.APPLICATION_JSON)
   @Consumes(MediaType.APPLICATION_JSON)
-  @Path("/")
   public Response addDataLake(DataLakeMeasure dataLakeMeasure) {
     DataLakeMeasure result = this.dataLakeManagement.addDataLake(dataLakeMeasure);
     return ok(result);
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineResource.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineResource.java
index be3ee329a..5cb020986 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineResource.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineResource.java
@@ -75,7 +75,6 @@ public class PipelineResource extends AbstractAuthGuardedRestResource {
 
   @GET
   @Produces(MediaType.APPLICATION_JSON)
-  @Path("/")
   @JacksonSerialized
   @Operation(summary = "Get all pipelines of the current user",
       tags = {"Pipeline"},
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/pe/DataStreamResource.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/pe/DataStreamResource.java
index 76f0b16bf..4cd90e99c 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/pe/DataStreamResource.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/pe/DataStreamResource.java
@@ -55,7 +55,6 @@ public class DataStreamResource extends AbstractAuthGuardedRestResource {
   }
 
   @GET
-  @Path("/")
   @Produces({MediaType.APPLICATION_JSON, SpMediaType.JSONLD})
   @JacksonSerialized
   @PreAuthorize(AuthConstants.HAS_READ_PIPELINE_ELEMENT_PRIVILEGE)
diff --git a/streampipes-service-base/src/main/java/org/apache/streampipes/service/base/rest/BaseResourceConfig.java b/streampipes-service-base/src/main/java/org/apache/streampipes/service/base/rest/BaseResourceConfig.java
index 3eb8c9279..64c8f043b 100644
--- a/streampipes-service-base/src/main/java/org/apache/streampipes/service/base/rest/BaseResourceConfig.java
+++ b/streampipes-service-base/src/main/java/org/apache/streampipes/service/base/rest/BaseResourceConfig.java
@@ -18,19 +18,25 @@
 package org.apache.streampipes.service.base.rest;
 
 import org.glassfish.jersey.server.ResourceConfig;
-import org.glassfish.jersey.servlet.ServletProperties;
+import org.glassfish.jersey.server.ServerProperties;
 
-import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
 
 public abstract class BaseResourceConfig extends ResourceConfig {
 
   public BaseResourceConfig() {
-    property(ServletProperties.FILTER_FORWARD_ON_404, true);
-    getClassesToRegister()
-        .forEach(set -> set.forEach(this::register));
-    register(ServiceHealthResource.class);
+    var customConfigs = new HashMap<String, Object>();
+    addAdditionalConfigs(customConfigs);
+    property(ServerProperties.WADL_FEATURE_DISABLE, true);
+    addProperties(customConfigs);
+    getClassesToRegister().forEach(this::register);
+
   }
 
-  public abstract List<List<Class<?>>> getClassesToRegister();
+  public abstract Set<Class<?>> getClassesToRegister();
+
+  public abstract void addAdditionalConfigs(Map<String, Object> configs);
 
 }
diff --git a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/StreamPipesResourceConfig.java b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/StreamPipesResourceConfig.java
index 67dd94273..1a4f253b7 100644
--- a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/StreamPipesResourceConfig.java
+++ b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/StreamPipesResourceConfig.java
@@ -83,104 +83,107 @@ import org.apache.streampipes.rest.impl.pe.DataProcessorResource;
 import org.apache.streampipes.rest.impl.pe.DataSinkResource;
 import org.apache.streampipes.rest.impl.pe.DataStreamResource;
 import org.apache.streampipes.rest.shared.serializer.JacksonSerializationProvider;
+import org.apache.streampipes.service.base.rest.BaseResourceConfig;
 import org.apache.streampipes.service.base.rest.ServiceHealthResource;
 
 import io.swagger.v3.jaxrs2.integration.resources.OpenApiResource;
 import org.glassfish.jersey.media.multipart.MultiPartFeature;
-import org.glassfish.jersey.server.ResourceConfig;
+import org.glassfish.jersey.server.ServerProperties;
 import org.springframework.context.annotation.Configuration;
 
 import jakarta.ws.rs.ApplicationPath;
 
-import java.util.Collections;
+import java.util.Map;
+import java.util.Set;
 
 @Configuration
 @ApplicationPath("/api")
-public class StreamPipesResourceConfig extends ResourceConfig {
+public class StreamPipesResourceConfig extends BaseResourceConfig {
 
-  public StreamPipesResourceConfig() {
-    setProperties(Collections.singletonMap("jersey.config.server.response.setStatusOverSendError", true));
-    register(AccountActivationResource.class);
-    register(AdapterMonitoringResource.class);
-    register(Authentication.class);
-    register(AssetDashboardResource.class);
-    register(AssetManagementResource.class);
-    register(AutoComplete.class);
-    register(CategoryResource.class);
-    register(ConsulConfig.class);
-    register(ContainerProvidedOptions.class);
-    register(DashboardWidget.class);
-    register(Dashboard.class);
-    register(DataExportResource.class);
-    register(DataImportResource.class);
-    register(DataLakeImageResource.class);
-    register(DataLakeResourceV3.class);
-    register(DataLakeMeasureResourceV3.class);
-    register(DataLakeMeasureResourceV4.class);
-    register(DataStream.class);
-    register(EmailConfigurationResource.class);
-    register(EmailResource.class);
-    register(ExtensionsServiceEndpointResource.class);
-    register(FunctionsResource.class);
-    register(GeneralConfigurationResource.class);
-    register(GenericStorageResource.class);
-    register(LabelResource.class);
-    register(MeasurementUnitResource.class);
-    register(Notification.class);
-    register(OntologyMeasurementUnit.class);
-    register(PermissionResource.class);
-    register(PersistedDataStreamResource.class);
-    register(PipelineCanvasMetadataCache.class);
-    register(PipelineCanvasMetadataResource.class);
-    register(PipelineCache.class);
-    register(PipelineCategory.class);
-    register(PipelineElementAsset.class);
-    register(PipelineElementCategory.class);
-    register(PipelineElementFile.class);
-    register(PipelineElementImport.class);
-    register(PipelineElementPreview.class);
-    register(PipelineElementRuntimeInfo.class);
-    register(PipelineMonitoring.class);
-    register(PipelineResource.class);
-    register(PipelineTemplate.class);
-    register(DataSinkResource.class);
-    register(DataProcessorResource.class);
-    register(DataStreamResource.class);
-    register(Setup.class);
-    register(ResetResource.class);
-    register(RestorePasswordResource.class);
-    register(ServiceHealthResource.class);
-    register(UserResource.class);
-    register(Version.class);
-    register(PipelineElementAsset.class);
-    register(DataLakeDashboardResource.class);
-    register(DataLakeWidgetResource.class);
-    register(DataLakeResourceV3.class);
-    register(PipelineElementFile.class);
-    register(DashboardWidget.class);
-    register(Dashboard.class);
-    register(VisualizablePipelineResource.class);
-    register(UserGroupResource.class);
+  @Override
+  public Set<Class<?>> getClassesToRegister() {
+    return Set.of(
+        AccountActivationResource.class,
+        AdapterMonitoringResource.class,
+        Authentication.class,
+        AssetDashboardResource.class,
+        AssetManagementResource.class,
+        AutoComplete.class,
+        CategoryResource.class,
+        ConsulConfig.class,
+        ContainerProvidedOptions.class,
+        DashboardWidget.class,
+        Dashboard.class,
+        DataExportResource.class,
+        DataImportResource.class,
+        DataLakeDashboardResource.class,
+        DataLakeWidgetResource.class,
+        DataLakeImageResource.class,
+        DataLakeResourceV3.class,
+        DataLakeMeasureResourceV3.class,
+        DataLakeMeasureResourceV4.class,
+        DataStream.class,
+        EmailConfigurationResource.class,
+        EmailResource.class,
+        ExtensionsServiceEndpointResource.class,
+        FunctionsResource.class,
+        GeneralConfigurationResource.class,
+        GenericStorageResource.class,
+        LabelResource.class,
+        MeasurementUnitResource.class,
+        Notification.class,
+        OntologyMeasurementUnit.class,
+        PermissionResource.class,
+        PersistedDataStreamResource.class,
+        PipelineCanvasMetadataCache.class,
+        PipelineCanvasMetadataResource.class,
+        PipelineCache.class,
+        PipelineCategory.class,
+        PipelineElementAsset.class,
+        PipelineElementCategory.class,
+        PipelineElementFile.class,
+        PipelineElementImport.class,
+        PipelineElementPreview.class,
+        PipelineElementRuntimeInfo.class,
+        PipelineMonitoring.class,
+        PipelineResource.class,
+        PipelineTemplate.class,
+        DataSinkResource.class,
+        DataProcessorResource.class,
+        DataStreamResource.class,
+        Setup.class,
+        ResetResource.class,
+        RestorePasswordResource.class,
+        ServiceHealthResource.class,
+        UserResource.class,
+        Version.class,
 
-    // Serializers
-    register(JacksonSerializationProvider.class);
-    register(MultiPartFeature.class);
+        VisualizablePipelineResource.class,
+        UserGroupResource.class,
 
-    // Platform Services
-    register(PipelineElementTemplateResource.class);
-    register(DataLakeResourceV4.class);
-    register(OpenApiResource.class);
+        // Serializers
+        JacksonSerializationProvider.class,
+        MultiPartFeature.class,
 
+        // Platform Services
+        PipelineElementTemplateResource.class,
+        DataLakeResourceV4.class,
+        OpenApiResource.class,
 
-    // Connect Master
-    register(AdapterResource.class);
-    register(DescriptionResource.class);
-    register(SourcesResource.class);
-    register(GuessResource.class);
-//    register(MultiPartFeature.class);
-    register(UnitResource.class);
-    register(WorkerAdministrationResource.class);
-    register(RuntimeResolvableResource.class);
+        // Connect Master
+        AdapterResource.class,
+        DescriptionResource.class,
+        SourcesResource.class,
+        GuessResource.class,
+
+        UnitResource.class,
+        WorkerAdministrationResource.class,
+        RuntimeResolvableResource.class
+    );
   }
 
+  @Override
+  public void addAdditionalConfigs(Map<String, Object> configs) {
+    configs.put(ServerProperties.RESPONSE_SET_STATUS_OVER_SEND_ERROR, true);
+  }
 }
diff --git a/streampipes-service-extensions/src/main/java/org/apache/streampipes/service/extensions/ExtensionsResourceConfig.java b/streampipes-service-extensions/src/main/java/org/apache/streampipes/service/extensions/ExtensionsResourceConfig.java
index e03725d57..beaba5392 100644
--- a/streampipes-service-extensions/src/main/java/org/apache/streampipes/service/extensions/ExtensionsResourceConfig.java
+++ b/streampipes-service-extensions/src/main/java/org/apache/streampipes/service/extensions/ExtensionsResourceConfig.java
@@ -31,46 +31,42 @@ import org.apache.streampipes.rest.extensions.pe.DataStreamPipelineElementResour
 import org.apache.streampipes.rest.extensions.pe.PipelineTemplateResource;
 import org.apache.streampipes.rest.shared.serializer.JacksonSerializationProvider;
 import org.apache.streampipes.service.base.rest.BaseResourceConfig;
+import org.apache.streampipes.service.base.rest.ServiceHealthResource;
 
 import org.glassfish.jersey.media.multipart.MultiPartFeature;
+import org.glassfish.jersey.servlet.ServletProperties;
 import org.springframework.stereotype.Component;
 
-import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 @Component
 public class ExtensionsResourceConfig extends BaseResourceConfig {
 
   @Override
-  public List<List<Class<?>>> getClassesToRegister() {
-    return List.of(
-        getAdapterResourceClasses(),
-        getBaseResourceClasses(),
-        getPipelineElementResourceClasses()
-    );
-  }
-
-  private List<Class<?>> getAdapterResourceClasses() {
-    return List.of(
+  public Set<Class<?>> getClassesToRegister() {
+    return Set.of(
         GuessResource.class,
         RuntimeResolvableResource.class,
         AdapterWorkerResource.class,
         MultiPartFeature.class,
         AdapterAssetResource.class,
-        HttpServerAdapterResource.class);
-  }
-
-  private List<Class<?>> getBaseResourceClasses() {
-    return List.of(
-        JacksonSerializationProvider.class,
-        MonitoringResource.class);
-  }
+        HttpServerAdapterResource.class,
 
-  private List<Class<?>> getPipelineElementResourceClasses() {
-    return List.of(
         DataSinkPipelineElementResource.class,
         DataProcessorPipelineElementResource.class,
         DataStreamPipelineElementResource.class,
         WelcomePage.class,
-        PipelineTemplateResource.class);
+        PipelineTemplateResource.class,
+
+        ServiceHealthResource.class,
+        JacksonSerializationProvider.class,
+        MonitoringResource.class
+    );
+  }
+
+  @Override
+  public void addAdditionalConfigs(Map<String, Object> configs) {
+    configs.put(ServletProperties.FILTER_FORWARD_ON_404, true);
   }
 }