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 adf4cc6e7f910444441dcd2575573cb8efae79a1
Author: Philipp Zehnder <[email protected]>
AuthorDate: Thu Feb 12 21:34:18 2026 +0100

    refactor(#4172): introduce IUserActivationTokenStorage and migrate 
getUserActivationTokenStorage to typed interface
---
 .../resource/management/UserResourceManager.java   |  4 +--
 .../streampipes/storage/api/INoSqlStorage.java     |  3 +-
 .../storage/api/IUserActivationTokenStorage.java   | 23 +++++++++++++++
 .../storage/couchdb/CouchDbStorageManager.java     | 11 +++----
 .../impl/UserActivationTokenStorageImpl.java       | 34 ++++++++++++++++++++++
 5 files changed, 64 insertions(+), 11 deletions(-)

diff --git 
a/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/UserResourceManager.java
 
b/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/UserResourceManager.java
index 0b3421a48d..617b8ffe2e 100644
--- 
a/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/UserResourceManager.java
+++ 
b/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/UserResourceManager.java
@@ -30,8 +30,8 @@ import org.apache.streampipes.model.client.user.Principal;
 import org.apache.streampipes.model.client.user.UserAccount;
 import org.apache.streampipes.model.client.user.UserActivationToken;
 import org.apache.streampipes.model.client.user.UserRegistrationData;
-import org.apache.streampipes.storage.api.CRUDStorage;
 import org.apache.streampipes.storage.api.IPasswordRecoveryTokenStorage;
+import org.apache.streampipes.storage.api.IUserActivationTokenStorage;
 import org.apache.streampipes.storage.api.IUserStorage;
 import org.apache.streampipes.storage.management.StorageDispatcher;
 import org.apache.streampipes.user.management.util.PasswordUtil;
@@ -189,7 +189,7 @@ public class UserResourceManager extends 
AbstractResourceManager<IUserStorage> {
     return 
StorageDispatcher.INSTANCE.getNoSqlStore().getPasswordRecoveryTokenStorage();
   }
 
-  private CRUDStorage<UserActivationToken> getUserActivationTokenStorage() {
+  private IUserActivationTokenStorage getUserActivationTokenStorage() {
     return 
StorageDispatcher.INSTANCE.getNoSqlStore().getUserActivationTokenStorage();
   }
 
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 af452ab334..e4b9fd3129 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
@@ -20,7 +20,6 @@ package org.apache.streampipes.storage.api;
 import org.apache.streampipes.model.assets.SpAssetModel;
 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.extensions.configuration.SpServiceConfiguration;
 import 
org.apache.streampipes.model.extensions.svcdiscovery.SpServiceRegistration;
@@ -69,7 +68,7 @@ public interface INoSqlStorage {
 
   IPasswordRecoveryTokenStorage getPasswordRecoveryTokenStorage();
 
-  CRUDStorage<UserActivationToken> getUserActivationTokenStorage();
+  IUserActivationTokenStorage getUserActivationTokenStorage();
 
   CRUDStorage<SpServiceRegistration> getExtensionsServiceStorage();
 
diff --git 
a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IUserActivationTokenStorage.java
 
b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IUserActivationTokenStorage.java
new file mode 100644
index 0000000000..afc27bbfd0
--- /dev/null
+++ 
b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IUserActivationTokenStorage.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.client.user.UserActivationToken;
+
+public interface IUserActivationTokenStorage extends 
CRUDStorage<UserActivationToken> {
+}
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 a5fa79f435..e9081505a5 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
@@ -20,7 +20,6 @@ package org.apache.streampipes.storage.couchdb;
 import org.apache.streampipes.model.assets.SpAssetModel;
 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.DataLakeMeasure;
 import 
org.apache.streampipes.model.extensions.configuration.SpServiceConfiguration;
@@ -47,6 +46,7 @@ import 
org.apache.streampipes.storage.api.IPipelineElementDescriptionStorage;
 import org.apache.streampipes.storage.api.IPipelineElementTemplateStorage;
 import org.apache.streampipes.storage.api.IPipelineStorage;
 import org.apache.streampipes.storage.api.ISpCoreConfigurationStorage;
+import org.apache.streampipes.storage.api.IUserActivationTokenStorage;
 import org.apache.streampipes.storage.api.IUserGroupStorage;
 import org.apache.streampipes.storage.api.IUserStorage;
 import 
org.apache.streampipes.storage.couchdb.impl.AdapterDescriptionStorageImpl;
@@ -70,6 +70,7 @@ import 
org.apache.streampipes.storage.couchdb.impl.PipelineCanvasMetadataStorage
 import 
org.apache.streampipes.storage.couchdb.impl.PipelineElementDescriptionStorageImpl;
 import 
org.apache.streampipes.storage.couchdb.impl.PipelineElementTemplateStorageImpl;
 import org.apache.streampipes.storage.couchdb.impl.PipelineStorageImpl;
+import 
org.apache.streampipes.storage.couchdb.impl.UserActivationTokenStorageImpl;
 import org.apache.streampipes.storage.couchdb.impl.UserGroupStorageImpl;
 import org.apache.streampipes.storage.couchdb.impl.UserStorage;
 import org.apache.streampipes.storage.couchdb.utils.Utils;
@@ -180,12 +181,8 @@ public class CouchDbStorageManager implements 
INoSqlStorage {
   }
 
   @Override
-  public CRUDStorage<UserActivationToken> getUserActivationTokenStorage() {
-    return new DefaultViewCrudStorage<>(
-        Utils::getCouchDbUserClient,
-        UserActivationToken.class,
-        "users/user-activation"
-    );
+  public IUserActivationTokenStorage getUserActivationTokenStorage() {
+    return new UserActivationTokenStorageImpl();
   }
 
   @Override
diff --git 
a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/UserActivationTokenStorageImpl.java
 
b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/UserActivationTokenStorageImpl.java
new file mode 100644
index 0000000000..2d8a68839b
--- /dev/null
+++ 
b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/UserActivationTokenStorageImpl.java
@@ -0,0 +1,34 @@
+/*
+ * 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.client.user.UserActivationToken;
+import org.apache.streampipes.storage.api.IUserActivationTokenStorage;
+import org.apache.streampipes.storage.couchdb.utils.Utils;
+
+public class UserActivationTokenStorageImpl extends 
DefaultViewCrudStorage<UserActivationToken>
+    implements IUserActivationTokenStorage {
+
+  public UserActivationTokenStorageImpl() {
+    super(
+        Utils::getCouchDbUserClient,
+        UserActivationToken.class,
+        "users/user-activation"
+    );
+  }
+}

Reply via email to