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

Reply via email to