This is an automated email from the ASF dual-hosted git repository. zehnder pushed a commit to branch 4172-use-domain-storage-interfaces-instead-of-crudstorage-in-inosqlstorage in repository https://gitbox.apache.org/repos/asf/streampipes.git
commit e30dcdecf80b015a634711c56f851ae75babb554 Author: Philipp Zehnder <[email protected]> AuthorDate: Thu Feb 12 21:32:03 2026 +0100 refactor(#4172): introduce IDataExplorerWidgetStorage and migrate getDataExplorerWidgetStorage to typed interface --- .../management/DataExplorerResourceManager.java | 4 +-- .../DataExplorerWidgetResourceManager.java | 4 +-- .../resource/management/SpResourceManager.java | 5 ++-- .../datalake/KioskDashboardDataLakeResource.java | 4 +-- .../v970/DataExplorerDataViewMigration.java | 4 +-- .../storage/api/IDataExplorerWidgetStorage.java | 23 +++++++++++++++ .../streampipes/storage/api/INoSqlStorage.java | 3 +- .../storage/couchdb/CouchDbStorageManager.java | 10 +++---- .../impl/DataExplorerWidgetStorageImpl.java | 33 ++++++++++++++++++++++ 9 files changed, 71 insertions(+), 19 deletions(-) diff --git a/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/DataExplorerResourceManager.java b/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/DataExplorerResourceManager.java index a55d0fb42e..155d5f447c 100644 --- a/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/DataExplorerResourceManager.java +++ b/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/DataExplorerResourceManager.java @@ -20,8 +20,8 @@ package org.apache.streampipes.resource.management; import org.apache.streampipes.model.dashboard.CompositeDashboardModel; import org.apache.streampipes.model.dashboard.DashboardModel; import org.apache.streampipes.model.datalake.DataExplorerWidgetModel; -import org.apache.streampipes.storage.api.CRUDStorage; import org.apache.streampipes.storage.api.IDataLakeMeasureStorage; +import org.apache.streampipes.storage.api.IDataExplorerWidgetStorage; import org.apache.streampipes.storage.management.StorageDispatcher; import java.util.List; @@ -29,7 +29,7 @@ import java.util.Map; public class DataExplorerResourceManager extends CrudResourceManager<DashboardModel> { - private final CRUDStorage<DataExplorerWidgetModel> widgetStorage; + private final IDataExplorerWidgetStorage widgetStorage; private final IDataLakeMeasureStorage dataLakeMeasureStorage; public DataExplorerResourceManager() { diff --git a/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/DataExplorerWidgetResourceManager.java b/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/DataExplorerWidgetResourceManager.java index c2fb0a6a8b..e1850604df 100644 --- a/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/DataExplorerWidgetResourceManager.java +++ b/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/DataExplorerWidgetResourceManager.java @@ -19,14 +19,14 @@ package org.apache.streampipes.resource.management; import org.apache.streampipes.model.datalake.DataExplorerWidgetModel; -import org.apache.streampipes.storage.api.CRUDStorage; +import org.apache.streampipes.storage.api.IDataExplorerWidgetStorage; public class DataExplorerWidgetResourceManager extends CrudResourceManager<DataExplorerWidgetModel> { private final DataExplorerResourceManager dashboardManager; public DataExplorerWidgetResourceManager(DataExplorerResourceManager dashboardManager, - CRUDStorage<DataExplorerWidgetModel> db) { + IDataExplorerWidgetStorage db) { super(db, DataExplorerWidgetModel.class); this.dashboardManager = dashboardManager; } diff --git a/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/SpResourceManager.java b/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/SpResourceManager.java index e875732755..0addb48b1e 100644 --- a/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/SpResourceManager.java +++ b/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/SpResourceManager.java @@ -17,8 +17,7 @@ */ package org.apache.streampipes.resource.management; -import org.apache.streampipes.model.datalake.DataExplorerWidgetModel; -import org.apache.streampipes.storage.api.CRUDStorage; +import org.apache.streampipes.storage.api.IDataExplorerWidgetStorage; public class SpResourceManager { @@ -35,7 +34,7 @@ public class SpResourceManager { } public DataExplorerWidgetResourceManager manageDataExplorerWidget(DataExplorerResourceManager dashboardManager, - CRUDStorage<DataExplorerWidgetModel> db) { + IDataExplorerWidgetStorage db) { return new DataExplorerWidgetResourceManager(dashboardManager, db); } diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/KioskDashboardDataLakeResource.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/KioskDashboardDataLakeResource.java index 7d2f99e166..5699946451 100644 --- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/KioskDashboardDataLakeResource.java +++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/KioskDashboardDataLakeResource.java @@ -28,8 +28,8 @@ import org.apache.streampipes.model.datalake.SpQueryResult; import org.apache.streampipes.model.datalake.param.ProvidedRestQueryParams; import org.apache.streampipes.model.monitoring.SpLogMessage; import org.apache.streampipes.rest.core.base.impl.AbstractAuthGuardedRestResource; -import org.apache.streampipes.storage.api.CRUDStorage; import org.apache.streampipes.storage.api.IDataExplorerDashboardStorage; +import org.apache.streampipes.storage.api.IDataExplorerWidgetStorage; import org.apache.streampipes.storage.api.IPermissionStorage; import org.apache.streampipes.storage.management.StorageDispatcher; @@ -53,7 +53,7 @@ public class KioskDashboardDataLakeResource extends AbstractAuthGuardedRestResou private final IDataExplorerSchemaManagement dataExplorerSchemaManagement; private final IDataExplorerDashboardStorage dashboardStorage = StorageDispatcher.INSTANCE.getNoSqlStore().getDataExplorerDashboardStorage(); - private final CRUDStorage<DataExplorerWidgetModel> dataExplorerWidgetStorage; + private final IDataExplorerWidgetStorage dataExplorerWidgetStorage; private final IPermissionStorage permissionStorage; public KioskDashboardDataLakeResource() { diff --git a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v970/DataExplorerDataViewMigration.java b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v970/DataExplorerDataViewMigration.java index 57b93a2f5e..ce0b545708 100644 --- a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v970/DataExplorerDataViewMigration.java +++ b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v970/DataExplorerDataViewMigration.java @@ -23,8 +23,8 @@ import org.apache.streampipes.model.dashboard.DashboardModel; import org.apache.streampipes.model.datalake.DataExplorerWidgetModel; import org.apache.streampipes.resource.management.PermissionResourceManager; import org.apache.streampipes.service.core.migrations.Migration; -import org.apache.streampipes.storage.api.CRUDStorage; import org.apache.streampipes.storage.api.IDataExplorerDashboardStorage; +import org.apache.streampipes.storage.api.IDataExplorerWidgetStorage; import org.apache.streampipes.storage.management.StorageDispatcher; import org.slf4j.Logger; @@ -45,7 +45,7 @@ public class DataExplorerDataViewMigration implements Migration { private static final Logger LOG = LoggerFactory.getLogger(DataExplorerDataViewMigration.class); - private final CRUDStorage<DataExplorerWidgetModel> dataViewStorage; + private final IDataExplorerWidgetStorage dataViewStorage; private final IDataExplorerDashboardStorage dataExplorerDashboardStorage; private final PermissionResourceManager permissionResourceManager; diff --git a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IDataExplorerWidgetStorage.java b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IDataExplorerWidgetStorage.java new file mode 100644 index 0000000000..2e6205f8f6 --- /dev/null +++ b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IDataExplorerWidgetStorage.java @@ -0,0 +1,23 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package org.apache.streampipes.storage.api; + +import org.apache.streampipes.model.datalake.DataExplorerWidgetModel; + +public interface IDataExplorerWidgetStorage extends CRUDStorage<DataExplorerWidgetModel> { +} diff --git a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/INoSqlStorage.java b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/INoSqlStorage.java index 1dee601616..e3bddc583a 100644 --- a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/INoSqlStorage.java +++ b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/INoSqlStorage.java @@ -23,7 +23,6 @@ import org.apache.streampipes.model.client.user.Privilege; import org.apache.streampipes.model.client.user.Role; import org.apache.streampipes.model.client.user.UserActivationToken; import org.apache.streampipes.model.connect.ConnectTransformationScriptTemplate; -import org.apache.streampipes.model.datalake.DataExplorerWidgetModel; import org.apache.streampipes.model.extensions.configuration.SpServiceConfiguration; import org.apache.streampipes.model.extensions.svcdiscovery.SpServiceRegistration; import org.apache.streampipes.model.opcua.Certificate; @@ -53,7 +52,7 @@ public interface INoSqlStorage { IDataExplorerDashboardStorage getDataExplorerDashboardStorage(); - CRUDStorage<DataExplorerWidgetModel> getDataExplorerWidgetStorage(); + IDataExplorerWidgetStorage getDataExplorerWidgetStorage(); IPipelineElementTemplateStorage getPipelineElementTemplateStorage(); diff --git a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/CouchDbStorageManager.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/CouchDbStorageManager.java index 1dc5dafd99..d6f380875d 100644 --- a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/CouchDbStorageManager.java +++ b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/CouchDbStorageManager.java @@ -23,7 +23,6 @@ import org.apache.streampipes.model.client.user.Privilege; import org.apache.streampipes.model.client.user.Role; import org.apache.streampipes.model.client.user.UserActivationToken; import org.apache.streampipes.model.connect.ConnectTransformationScriptTemplate; -import org.apache.streampipes.model.datalake.DataExplorerWidgetModel; import org.apache.streampipes.model.datalake.DataLakeMeasure; import org.apache.streampipes.model.extensions.configuration.SpServiceConfiguration; import org.apache.streampipes.model.extensions.svcdiscovery.SpServiceRegistration; @@ -33,6 +32,7 @@ import org.apache.streampipes.storage.api.CRUDStorage; import org.apache.streampipes.storage.api.IAdapterStorage; import org.apache.streampipes.storage.api.IDataLakeMeasureStorage; import org.apache.streampipes.storage.api.IDataExplorerDashboardStorage; +import org.apache.streampipes.storage.api.IDataExplorerWidgetStorage; import org.apache.streampipes.storage.api.IDataProcessorStorage; import org.apache.streampipes.storage.api.IDataSinkStorage; import org.apache.streampipes.storage.api.IDataStreamStorage; @@ -54,6 +54,7 @@ import org.apache.streampipes.storage.couchdb.impl.AdapterInstanceStorageImpl; import org.apache.streampipes.storage.couchdb.impl.CoreConfigurationStorageImpl; import org.apache.streampipes.storage.couchdb.impl.DataLakeMeasureStorage; import org.apache.streampipes.storage.couchdb.impl.DataExplorerDashboardStorageImpl; +import org.apache.streampipes.storage.couchdb.impl.DataExplorerWidgetStorageImpl; import org.apache.streampipes.storage.couchdb.impl.DataProcessorStorageImpl; import org.apache.streampipes.storage.couchdb.impl.DataSinkStorageImpl; import org.apache.streampipes.storage.couchdb.impl.DataStreamStorageImpl; @@ -133,11 +134,8 @@ public class CouchDbStorageManager implements INoSqlStorage { } @Override - public CRUDStorage<DataExplorerWidgetModel> getDataExplorerWidgetStorage() { - return new DefaultCrudStorage<>( - () -> Utils.getCouchDbGsonClient("dataexplorerwidget"), - DataExplorerWidgetModel.class - ); + public IDataExplorerWidgetStorage getDataExplorerWidgetStorage() { + return new DataExplorerWidgetStorageImpl(); } @Override diff --git a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/DataExplorerWidgetStorageImpl.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/DataExplorerWidgetStorageImpl.java new file mode 100644 index 0000000000..bba4e448c4 --- /dev/null +++ b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/DataExplorerWidgetStorageImpl.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package org.apache.streampipes.storage.couchdb.impl; + +import org.apache.streampipes.model.datalake.DataExplorerWidgetModel; +import org.apache.streampipes.storage.api.IDataExplorerWidgetStorage; +import org.apache.streampipes.storage.couchdb.utils.Utils; + +public class DataExplorerWidgetStorageImpl extends DefaultCrudStorage<DataExplorerWidgetModel> + implements IDataExplorerWidgetStorage { + + public DataExplorerWidgetStorageImpl() { + super( + () -> Utils.getCouchDbGsonClient("dataexplorerwidget"), + DataExplorerWidgetModel.class + ); + } +}
