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 a8c2362824b14931e3b9719ca97e3abcc45c51cd Author: Philipp Zehnder <[email protected]> AuthorDate: Thu Feb 12 21:43:14 2026 +0100 refactor(#4172): introduce ICompactPipelineTemplateStorage and migrate getPipelineTemplateStorage to typed interface --- .../management/compact/PersistPipelineHandler.java | 6 +++--- .../tasks/AddDefaultPipelineTemplatesTask.java | 7 +++---- .../compact/CompactPipelineTemplateManagement.java | 6 +++--- .../streampipes/rest/impl/PipelineTemplate.java | 4 ++-- .../v970/AddDataLakePipelineTemplateMigration.java | 5 ++--- .../api/ICompactPipelineTemplateStorage.java | 18 ++-------------- .../streampipes/storage/api/INoSqlStorage.java | 3 +-- .../storage/couchdb/CouchDbStorageManager.java | 10 ++++----- .../impl/CompactPipelineTemplateStorageImpl.java | 24 +++++++++------------- 9 files changed, 30 insertions(+), 53 deletions(-) diff --git a/streampipes-connect-management/src/main/java/org/apache/streampipes/connect/management/compact/PersistPipelineHandler.java b/streampipes-connect-management/src/main/java/org/apache/streampipes/connect/management/compact/PersistPipelineHandler.java index 8b53e019f6..bcf83acf0a 100644 --- a/streampipes-connect-management/src/main/java/org/apache/streampipes/connect/management/compact/PersistPipelineHandler.java +++ b/streampipes-connect-management/src/main/java/org/apache/streampipes/connect/management/compact/PersistPipelineHandler.java @@ -29,7 +29,7 @@ import org.apache.streampipes.model.schema.EventProperty; import org.apache.streampipes.model.schema.EventPropertyPrimitive; import org.apache.streampipes.model.schema.PropertyScope; import org.apache.streampipes.model.template.CompactPipelineTemplate; -import org.apache.streampipes.storage.api.CRUDStorage; +import org.apache.streampipes.storage.api.ICompactPipelineTemplateStorage; import org.apache.streampipes.vocabulary.SO; import java.util.List; @@ -43,11 +43,11 @@ import static org.apache.streampipes.manager.template.instances.PersistDataLakeP public class PersistPipelineHandler { - private final CRUDStorage<CompactPipelineTemplate> templateStorage; + private final ICompactPipelineTemplateStorage templateStorage; private final CompactPipelineManagement pipelineManagement; private final String authenticatedUserSid; - public PersistPipelineHandler(CRUDStorage<CompactPipelineTemplate> templateStorage, + public PersistPipelineHandler(ICompactPipelineTemplateStorage templateStorage, CompactPipelineManagement pipelineManagement, String authenticatedUserSid) { this.templateStorage = templateStorage; diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/tasks/AddDefaultPipelineTemplatesTask.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/tasks/AddDefaultPipelineTemplatesTask.java index 23ed1efbce..47f0c0f7d0 100644 --- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/tasks/AddDefaultPipelineTemplatesTask.java +++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/tasks/AddDefaultPipelineTemplatesTask.java @@ -19,14 +19,13 @@ package org.apache.streampipes.manager.setup.tasks; import org.apache.streampipes.manager.template.instances.PersistDataLakePipelineTemplate; -import org.apache.streampipes.model.template.CompactPipelineTemplate; -import org.apache.streampipes.storage.api.CRUDStorage; +import org.apache.streampipes.storage.api.ICompactPipelineTemplateStorage; public class AddDefaultPipelineTemplatesTask implements InstallationTask { - CRUDStorage<CompactPipelineTemplate> storage; + ICompactPipelineTemplateStorage storage; - public AddDefaultPipelineTemplatesTask(CRUDStorage<CompactPipelineTemplate> storage) { + public AddDefaultPipelineTemplatesTask(ICompactPipelineTemplateStorage storage) { this.storage = storage; } diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/compact/CompactPipelineTemplateManagement.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/compact/CompactPipelineTemplateManagement.java index 1238a0aeda..b43d9c270b 100644 --- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/compact/CompactPipelineTemplateManagement.java +++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/compact/CompactPipelineTemplateManagement.java @@ -25,7 +25,7 @@ import org.apache.streampipes.model.pipeline.PipelineModificationResult; import org.apache.streampipes.model.pipeline.compact.CompactPipelineElement; import org.apache.streampipes.model.template.CompactPipelineTemplate; import org.apache.streampipes.model.template.PipelineTemplateGenerationRequest; -import org.apache.streampipes.storage.api.CRUDStorage; +import org.apache.streampipes.storage.api.ICompactPipelineTemplateStorage; import org.apache.streampipes.storage.api.IPipelineElementDescriptionStorage; import java.util.List; @@ -39,9 +39,9 @@ import static org.apache.streampipes.manager.pipeline.compact.generation.Invocab public class CompactPipelineTemplateManagement { private final IPipelineElementDescriptionStorage storage; - private final CRUDStorage<CompactPipelineTemplate> templateStorage; + private final ICompactPipelineTemplateStorage templateStorage; - public CompactPipelineTemplateManagement(CRUDStorage<CompactPipelineTemplate> templateStorage, + public CompactPipelineTemplateManagement(ICompactPipelineTemplateStorage templateStorage, IPipelineElementDescriptionStorage descriptionStorage) { this.templateStorage = templateStorage; this.storage = descriptionStorage; diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineTemplate.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineTemplate.java index ab36c1d0ed..127aced958 100644 --- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineTemplate.java +++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineTemplate.java @@ -24,7 +24,7 @@ import org.apache.streampipes.model.template.PipelineTemplateGenerationRequest; import org.apache.streampipes.rest.core.base.impl.AbstractAuthGuardedRestResource; import org.apache.streampipes.rest.shared.constants.SpMediaType; import org.apache.streampipes.rest.shared.exception.BadRequestException; -import org.apache.streampipes.storage.api.CRUDStorage; +import org.apache.streampipes.storage.api.ICompactPipelineTemplateStorage; import org.apache.streampipes.storage.management.StorageDispatcher; import org.springframework.http.MediaType; @@ -46,7 +46,7 @@ import java.util.Map; @RequestMapping("/api/v2/pipeline-templates") public class PipelineTemplate extends AbstractAuthGuardedRestResource { - private final CRUDStorage<CompactPipelineTemplate> storage; + private final ICompactPipelineTemplateStorage storage; private final CompactPipelineTemplateManagement templateManagement; public PipelineTemplate() { diff --git a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v970/AddDataLakePipelineTemplateMigration.java b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v970/AddDataLakePipelineTemplateMigration.java index fd7fced44b..df5f1b60bf 100644 --- a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v970/AddDataLakePipelineTemplateMigration.java +++ b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v970/AddDataLakePipelineTemplateMigration.java @@ -19,16 +19,15 @@ package org.apache.streampipes.service.core.migrations.v970; import org.apache.streampipes.manager.template.instances.PersistDataLakePipelineTemplate; -import org.apache.streampipes.model.template.CompactPipelineTemplate; import org.apache.streampipes.service.core.migrations.Migration; -import org.apache.streampipes.storage.api.CRUDStorage; +import org.apache.streampipes.storage.api.ICompactPipelineTemplateStorage; import org.apache.streampipes.storage.management.StorageDispatcher; import java.io.IOException; public class AddDataLakePipelineTemplateMigration implements Migration { - private final CRUDStorage<CompactPipelineTemplate> storage; + private final ICompactPipelineTemplateStorage storage; public AddDataLakePipelineTemplateMigration() { this.storage = StorageDispatcher.INSTANCE.getNoSqlStore().getPipelineTemplateStorage(); diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/tasks/AddDefaultPipelineTemplatesTask.java b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/ICompactPipelineTemplateStorage.java similarity index 61% copy from streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/tasks/AddDefaultPipelineTemplatesTask.java copy to streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/ICompactPipelineTemplateStorage.java index 23ed1efbce..c78a8b5345 100644 --- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/tasks/AddDefaultPipelineTemplatesTask.java +++ b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/ICompactPipelineTemplateStorage.java @@ -15,23 +15,9 @@ * limitations under the License. * */ +package org.apache.streampipes.storage.api; -package org.apache.streampipes.manager.setup.tasks; - -import org.apache.streampipes.manager.template.instances.PersistDataLakePipelineTemplate; import org.apache.streampipes.model.template.CompactPipelineTemplate; -import org.apache.streampipes.storage.api.CRUDStorage; - -public class AddDefaultPipelineTemplatesTask implements InstallationTask { - - CRUDStorage<CompactPipelineTemplate> storage; - - public AddDefaultPipelineTemplatesTask(CRUDStorage<CompactPipelineTemplate> storage) { - this.storage = storage; - } - @Override - public void execute() { - storage.persist(new PersistDataLakePipelineTemplate().getTemplate()); - } +public interface ICompactPipelineTemplateStorage extends CRUDStorage<CompactPipelineTemplate> { } 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 0ba09699c6..394977598f 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.connect.ConnectTransformationScriptTemplate; import org.apache.streampipes.model.opcua.Certificate; -import org.apache.streampipes.model.template.CompactPipelineTemplate; public interface INoSqlStorage { @@ -76,7 +75,7 @@ public interface INoSqlStorage { IPrivilegeStorage getPrivilegeStorage(); - CRUDStorage<CompactPipelineTemplate> getPipelineTemplateStorage(); + ICompactPipelineTemplateStorage getPipelineTemplateStorage(); CRUDStorage<Certificate> getCertificateStorage(); 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 bb1e9b62cf..b8a5f5e2d7 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 @@ -21,9 +21,9 @@ import org.apache.streampipes.model.assets.SpAssetModel; import org.apache.streampipes.model.connect.ConnectTransformationScriptTemplate; import org.apache.streampipes.model.datalake.DataLakeMeasure; import org.apache.streampipes.model.opcua.Certificate; -import org.apache.streampipes.model.template.CompactPipelineTemplate; import org.apache.streampipes.storage.api.CRUDStorage; import org.apache.streampipes.storage.api.IAdapterStorage; +import org.apache.streampipes.storage.api.ICompactPipelineTemplateStorage; import org.apache.streampipes.storage.api.IDataLakeMeasureStorage; import org.apache.streampipes.storage.api.IDataExplorerDashboardStorage; import org.apache.streampipes.storage.api.IDataExplorerWidgetStorage; @@ -52,6 +52,7 @@ import org.apache.streampipes.storage.api.IUserStorage; import org.apache.streampipes.storage.couchdb.impl.AdapterDescriptionStorageImpl; import org.apache.streampipes.storage.couchdb.impl.AdapterInstanceStorageImpl; import org.apache.streampipes.storage.couchdb.impl.CoreConfigurationStorageImpl; +import org.apache.streampipes.storage.couchdb.impl.CompactPipelineTemplateStorageImpl; import org.apache.streampipes.storage.couchdb.impl.DataLakeMeasureStorage; import org.apache.streampipes.storage.couchdb.impl.DataExplorerDashboardStorageImpl; import org.apache.streampipes.storage.couchdb.impl.DataExplorerWidgetStorageImpl; @@ -215,11 +216,8 @@ public class CouchDbStorageManager implements INoSqlStorage { } @Override - public CRUDStorage<CompactPipelineTemplate> getPipelineTemplateStorage() { - return new DefaultCrudStorage<>( - () -> Utils.getCouchDbGsonClient("pipeline-templates"), - CompactPipelineTemplate.class - ); + public ICompactPipelineTemplateStorage getPipelineTemplateStorage() { + return new CompactPipelineTemplateStorageImpl(); } @Override diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/tasks/AddDefaultPipelineTemplatesTask.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/CompactPipelineTemplateStorageImpl.java similarity index 61% copy from streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/tasks/AddDefaultPipelineTemplatesTask.java copy to streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/CompactPipelineTemplateStorageImpl.java index 23ed1efbce..2199d77e44 100644 --- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/tasks/AddDefaultPipelineTemplatesTask.java +++ b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/CompactPipelineTemplateStorageImpl.java @@ -15,23 +15,19 @@ * limitations under the License. * */ +package org.apache.streampipes.storage.couchdb.impl; -package org.apache.streampipes.manager.setup.tasks; - -import org.apache.streampipes.manager.template.instances.PersistDataLakePipelineTemplate; import org.apache.streampipes.model.template.CompactPipelineTemplate; -import org.apache.streampipes.storage.api.CRUDStorage; - -public class AddDefaultPipelineTemplatesTask implements InstallationTask { +import org.apache.streampipes.storage.api.ICompactPipelineTemplateStorage; +import org.apache.streampipes.storage.couchdb.utils.Utils; - CRUDStorage<CompactPipelineTemplate> storage; - - public AddDefaultPipelineTemplatesTask(CRUDStorage<CompactPipelineTemplate> storage) { - this.storage = storage; - } +public class CompactPipelineTemplateStorageImpl extends DefaultCrudStorage<CompactPipelineTemplate> + implements ICompactPipelineTemplateStorage { - @Override - public void execute() { - storage.persist(new PersistDataLakePipelineTemplate().getTemplate()); + public CompactPipelineTemplateStorageImpl() { + super( + () -> Utils.getCouchDbGsonClient("pipeline-templates"), + CompactPipelineTemplate.class + ); } }
