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 <[email protected]> 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); } }
