diff --git a/streampipes-data-explorer/src/main/java/org/apache/streampipes/dataexplorer/DataExplorerSchemaManagement.java b/streampipes-data-explorer/src/main/java/org/apache/streampipes/dataexplorer/DataExplorerSchemaManagement.java index d6cac01c7d..ef3db4c7d3 100644 --- a/streampipes-data-explorer/src/main/java/org/apache/streampipes/dataexplorer/DataExplorerSchemaManagement.java +++ b/streampipes-data-explorer/src/main/java/org/apache/streampipes/dataexplorer/DataExplorerSchemaManagement.java @@ -34,9 +34,9 @@ public class DataExplorerSchemaManagement implements IDataExplorerSchemaManagement { - CRUDStorage dataLakeStorage; + CRUDStorage dataLakeStorage; - public DataExplorerSchemaManagement(CRUDStorage dataLakeStorage) { + public DataExplorerSchemaManagement(CRUDStorage dataLakeStorage) { this.dataLakeStorage = dataLakeStorage; } diff --git a/streampipes-data-explorer/src/test/java/org/apache/streampipes/dataexplorer/DataExplorerSchemaManagementTest.java b/streampipes-data-explorer/src/test/java/org/apache/streampipes/dataexplorer/DataExplorerSchemaManagementTest.java index 6c76d31c40..4dc34531ce 100644 --- a/streampipes-data-explorer/src/test/java/org/apache/streampipes/dataexplorer/DataExplorerSchemaManagementTest.java +++ b/streampipes-data-explorer/src/test/java/org/apache/streampipes/dataexplorer/DataExplorerSchemaManagementTest.java @@ -46,7 +46,7 @@ public class DataExplorerSchemaManagementTest { public static final String NEW_PROPERTY = "newProperty"; public static final String OLD_PROPERTY = "oldProperty"; - private CRUDStorage dataLakeStorageMock; + private CRUDStorage dataLakeStorageMock; @BeforeEach public void setUp() { diff --git a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/FileResolver.java b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/FileResolver.java index d30d66936a..ab0179d8f1 100644 --- a/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/FileResolver.java +++ b/streampipes-data-export/src/main/java/org/apache/streampipes/export/resolver/FileResolver.java @@ -28,7 +28,7 @@ public class FileResolver extends AbstractResolver { @Override public FileMetadata findDocument(String resourceId) { - return getNoSqlStore().getFileMetadataStorage().getMetadataById(resourceId); + return getNoSqlStore().getFileMetadataStorage().getElementById(resourceId); } @Override @@ -49,7 +49,7 @@ public ExportItem convert(FileMetadata document) { @Override public void writeDocument(String document) throws JsonProcessingException { - getNoSqlStore().getFileMetadataStorage().addFileMetadata(deserializeDocument(document)); + getNoSqlStore().getFileMetadataStorage().persist(deserializeDocument(document)); } @Override diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/assetdashboard/AssetDashboardConfig.java b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/assetdashboard/AssetDashboardConfig.java index d8956e577c..9d162c9595 100644 --- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/assetdashboard/AssetDashboardConfig.java +++ b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/assetdashboard/AssetDashboardConfig.java @@ -17,12 +17,14 @@ */ package org.apache.streampipes.model.client.assetdashboard; +import org.apache.streampipes.model.shared.api.Storable; + import com.google.gson.annotations.SerializedName; import java.util.List; import java.util.Map; -public class AssetDashboardConfig { +public class AssetDashboardConfig implements Storable { private @SerializedName("_id") String dashboardId; private @SerializedName("_rev") String rev; @@ -100,4 +102,14 @@ public String getRev() { public void setRev(String rev) { this.rev = rev; } + + @Override + public String getElementId() { + return this.dashboardId; + } + + @Override + public void setElementId(String elementId) { + this.dashboardId = elementId; + } } diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/AbstractMailToken.java b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/AbstractMailToken.java index 372ad5de98..0434031dc0 100644 --- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/AbstractMailToken.java +++ b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/AbstractMailToken.java @@ -17,9 +17,11 @@ */ package org.apache.streampipes.model.client.user; +import org.apache.streampipes.model.shared.api.Storable; + import com.google.gson.annotations.SerializedName; -public abstract class AbstractMailToken { +public abstract class AbstractMailToken implements Storable { protected @SerializedName("_id") String token; protected @SerializedName("_rev") String rev; @@ -49,4 +51,14 @@ public String getUsername() { public void setUsername(String username) { this.username = username; } + + @Override + public String getElementId() { + return this.token; + } + + @Override + public void setElementId(String elementId) { + this.token = elementId; + } } diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/Group.java b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/Group.java index 8829add8a3..063d901877 100644 --- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/Group.java +++ b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/Group.java @@ -18,6 +18,7 @@ package org.apache.streampipes.model.client.user; import org.apache.streampipes.model.shared.annotation.TsModel; +import org.apache.streampipes.model.shared.api.Storable; import com.fasterxml.jackson.annotation.JsonIgnore; import com.google.gson.annotations.SerializedName; @@ -26,15 +27,15 @@ import java.util.Set; @TsModel -public class Group { +public class Group implements Storable { protected @SerializedName("_id") String groupId; protected @SerializedName("_rev") String rev; // This field should be called $type since this is the identifier used in the CouchDB view - @SuppressWarnings("checkstyle:MemberName") + @SerializedName("$type") @JsonIgnore - private String $type = "group"; + private String type = "group"; private String groupName; @@ -60,6 +61,16 @@ public void setRev(String rev) { this.rev = rev; } + @Override + public String getElementId() { + return this.groupId; + } + + @Override + public void setElementId(String elementId) { + this.groupId = elementId; + } + public String getGroupName() { return groupName; } @@ -76,13 +87,11 @@ public void setRoles(Set roles) { this.roles = roles; } - @SuppressWarnings("checkstyle:MethodName") - public String get$type() { - return $type; + public String getType() { + return type; } - @SuppressWarnings({"checkstyle:MethodName", "checkstyle:ParameterName"}) - public void set$type(String $type) { - this.$type = $type; + public void setType(String type) { + this.type = type; } } diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/PasswordRecoveryToken.java b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/PasswordRecoveryToken.java index cb8ae692ea..8c0ea623e7 100644 --- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/PasswordRecoveryToken.java +++ b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/PasswordRecoveryToken.java @@ -18,9 +18,12 @@ package org.apache.streampipes.model.client.user; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.google.gson.annotations.SerializedName; public class PasswordRecoveryToken extends AbstractMailToken { + // This field should be called $type since this is the identifier used in the CouchDB view + @SerializedName("$type") @JsonIgnore private String type = "password-recovery"; diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/UserActivationToken.java b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/UserActivationToken.java index 1fe6ab0288..17d96c777e 100644 --- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/UserActivationToken.java +++ b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/UserActivationToken.java @@ -18,9 +18,12 @@ package org.apache.streampipes.model.client.user; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.google.gson.annotations.SerializedName; public class UserActivationToken extends AbstractMailToken { + // This field should be called $type since this is the identifier used in the CouchDB view + @SerializedName("$type") @JsonIgnore private String type = "user-activation"; diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/api/Storable.java b/streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/api/Storable.java similarity index 95% rename from streampipes-model/src/main/java/org/apache/streampipes/model/api/Storable.java rename to streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/api/Storable.java index a9081f000d..1e7e4d4af1 100644 --- a/streampipes-model/src/main/java/org/apache/streampipes/model/api/Storable.java +++ b/streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/api/Storable.java @@ -16,7 +16,7 @@ * */ -package org.apache.streampipes.model.api; +package org.apache.streampipes.model.shared.api; public interface Storable { diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/base/NamedStreamPipesEntity.java b/streampipes-model/src/main/java/org/apache/streampipes/model/base/NamedStreamPipesEntity.java index 46806a68a8..db57bf577e 100644 --- a/streampipes-model/src/main/java/org/apache/streampipes/model/base/NamedStreamPipesEntity.java +++ b/streampipes-model/src/main/java/org/apache/streampipes/model/base/NamedStreamPipesEntity.java @@ -20,10 +20,10 @@ import org.apache.streampipes.model.SpDataStream; -import org.apache.streampipes.model.api.Storable; import org.apache.streampipes.model.extensions.ExtensionAssetType; import org.apache.streampipes.model.extensions.ExtensionItemDescription; import org.apache.streampipes.model.shared.annotation.TsModel; +import org.apache.streampipes.model.shared.api.Storable; import org.apache.streampipes.model.util.ServiceDefinitionUtil; import com.fasterxml.jackson.annotation.JsonAlias; diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/dashboard/DashboardEntity.java b/streampipes-model/src/main/java/org/apache/streampipes/model/dashboard/DashboardEntity.java index 0b53f974a5..b2ec89845a 100644 --- a/streampipes-model/src/main/java/org/apache/streampipes/model/dashboard/DashboardEntity.java +++ b/streampipes-model/src/main/java/org/apache/streampipes/model/dashboard/DashboardEntity.java @@ -18,8 +18,8 @@ package org.apache.streampipes.model.dashboard; -import org.apache.streampipes.model.api.Storable; import org.apache.streampipes.model.datalake.DataExplorerWidgetModel; +import org.apache.streampipes.model.shared.api.Storable; import com.fasterxml.jackson.annotation.JsonAlias; import com.fasterxml.jackson.annotation.JsonSubTypes; diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/dashboard/DashboardModel.java b/streampipes-model/src/main/java/org/apache/streampipes/model/dashboard/DashboardModel.java index 9cd6e11365..6233b3f90c 100644 --- a/streampipes-model/src/main/java/org/apache/streampipes/model/dashboard/DashboardModel.java +++ b/streampipes-model/src/main/java/org/apache/streampipes/model/dashboard/DashboardModel.java @@ -18,8 +18,8 @@ package org.apache.streampipes.model.dashboard; -import org.apache.streampipes.model.api.Storable; import org.apache.streampipes.model.shared.annotation.TsModel; +import org.apache.streampipes.model.shared.api.Storable; import com.fasterxml.jackson.annotation.JsonAlias; import com.google.gson.annotations.SerializedName; diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/datalake/DataLakeMeasure.java b/streampipes-model/src/main/java/org/apache/streampipes/model/datalake/DataLakeMeasure.java index 92a3c881df..a7029fa520 100644 --- a/streampipes-model/src/main/java/org/apache/streampipes/model/datalake/DataLakeMeasure.java +++ b/streampipes-model/src/main/java/org/apache/streampipes/model/datalake/DataLakeMeasure.java @@ -18,10 +18,10 @@ package org.apache.streampipes.model.datalake; -import org.apache.streampipes.model.api.Storable; import org.apache.streampipes.model.schema.EventSchema; import org.apache.streampipes.model.shared.annotation.TsIgnore; import org.apache.streampipes.model.shared.annotation.TsModel; +import org.apache.streampipes.model.shared.api.Storable; import com.fasterxml.jackson.annotation.JsonAlias; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/extensions/configuration/SpServiceConfiguration.java b/streampipes-model/src/main/java/org/apache/streampipes/model/extensions/configuration/SpServiceConfiguration.java index 9cc4319d9a..268eb04cd9 100644 --- a/streampipes-model/src/main/java/org/apache/streampipes/model/extensions/configuration/SpServiceConfiguration.java +++ b/streampipes-model/src/main/java/org/apache/streampipes/model/extensions/configuration/SpServiceConfiguration.java @@ -19,13 +19,14 @@ package org.apache.streampipes.model.extensions.configuration; import org.apache.streampipes.model.shared.annotation.TsModel; +import org.apache.streampipes.model.shared.api.Storable; import com.google.gson.annotations.SerializedName; import java.util.List; @TsModel -public class SpServiceConfiguration { +public class SpServiceConfiguration implements Storable { protected @SerializedName("_rev") String rev; private @SerializedName("_id") String serviceGroup; @@ -75,4 +76,14 @@ public String getRev() { public void setRev(String rev) { this.rev = rev; } + + @Override + public String getElementId() { + return this.serviceGroup; + } + + @Override + public void setElementId(String elementId) { + this.serviceGroup = elementId; + } } diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/extensions/svcdiscovery/SpServiceRegistration.java b/streampipes-model/src/main/java/org/apache/streampipes/model/extensions/svcdiscovery/SpServiceRegistration.java index fc01712a8c..7fb9b8d1e3 100644 --- a/streampipes-model/src/main/java/org/apache/streampipes/model/extensions/svcdiscovery/SpServiceRegistration.java +++ b/streampipes-model/src/main/java/org/apache/streampipes/model/extensions/svcdiscovery/SpServiceRegistration.java @@ -19,13 +19,14 @@ import org.apache.streampipes.model.extensions.ExtensionItemDescription; import org.apache.streampipes.model.shared.annotation.TsModel; +import org.apache.streampipes.model.shared.api.Storable; import com.google.gson.annotations.SerializedName; import java.util.Set; @TsModel -public class SpServiceRegistration { +public class SpServiceRegistration implements Storable { private String svcType; private String svcGroup; @@ -130,6 +131,16 @@ public void setRev(String rev) { this.rev = rev; } + @Override + public String getElementId() { + return this.svcId; + } + + @Override + public void setElementId(String elementId) { + this.svcId = elementId; + } + public String getScheme() { return scheme; } diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/file/FileMetadata.java b/streampipes-model/src/main/java/org/apache/streampipes/model/file/FileMetadata.java index 4696179903..d7193d0608 100644 --- a/streampipes-model/src/main/java/org/apache/streampipes/model/file/FileMetadata.java +++ b/streampipes-model/src/main/java/org/apache/streampipes/model/file/FileMetadata.java @@ -18,11 +18,12 @@ package org.apache.streampipes.model.file; import org.apache.streampipes.model.shared.annotation.TsModel; +import org.apache.streampipes.model.shared.api.Storable; import com.google.gson.annotations.SerializedName; @TsModel -public class FileMetadata { +public class FileMetadata implements Storable { private @SerializedName("_id") String fileId; @@ -52,6 +53,16 @@ public void setRev(String rev) { this.rev = rev; } + @Override + public String getElementId() { + return this.fileId; + } + + @Override + public void setElementId(String elementId) { + this.fileId = elementId; + } + public String getFilename() { return filename; } diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/template/PipelineElementTemplate.java b/streampipes-model/src/main/java/org/apache/streampipes/model/template/PipelineElementTemplate.java index f7ce37808c..d304b0f31e 100644 --- a/streampipes-model/src/main/java/org/apache/streampipes/model/template/PipelineElementTemplate.java +++ b/streampipes-model/src/main/java/org/apache/streampipes/model/template/PipelineElementTemplate.java @@ -17,8 +17,8 @@ */ package org.apache.streampipes.model.template; -import org.apache.streampipes.model.api.Storable; import org.apache.streampipes.model.shared.annotation.TsModel; +import org.apache.streampipes.model.shared.api.Storable; import com.fasterxml.jackson.annotation.JsonAlias; import com.google.gson.annotations.SerializedName; diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/file/FileManager.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/file/FileManager.java index 84bb7f47b7..a5a515669c 100644 --- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/file/FileManager.java +++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/file/FileManager.java @@ -20,7 +20,7 @@ import org.apache.streampipes.commons.file.FileHasher; import org.apache.streampipes.model.file.FileMetadata; import org.apache.streampipes.sdk.helpers.Filetypes; -import org.apache.streampipes.storage.api.IFileMetadataStorage; +import org.apache.streampipes.storage.api.CRUDStorage; import org.apache.streampipes.storage.management.StorageDispatcher; import org.apache.commons.io.input.BOMInputStream; @@ -34,11 +34,11 @@ public class FileManager { - private final IFileMetadataStorage fileMetadataStorage; + private final CRUDStorage fileMetadataStorage; private final FileHandler fileHandler; private final FileHasher fileHasher; - public FileManager(IFileMetadataStorage fileMetadataStorage, + public FileManager(CRUDStorage fileMetadataStorage, FileHandler fileHandler, FileHasher fileHasher) { this.fileMetadataStorage = fileMetadataStorage; @@ -60,7 +60,7 @@ public List getAllFiles() { } public List getAllFiles(String filetypes) { - List allFiles = fileMetadataStorage.getAllFileMetadataDescriptions(); + List allFiles = fileMetadataStorage.findAll(); return filetypes != null ? filterFiletypes(allFiles, filetypes) : allFiles; } @@ -94,10 +94,10 @@ public FileMetadata storeFile(String user, public void deleteFile(String id) { - var fileMetadata = fileMetadataStorage.getMetadataById(id); + var fileMetadata = fileMetadataStorage.getElementById(id); if (fileMetadata != null) { fileHandler.deleteFile(fileMetadata.getFilename()); - fileMetadataStorage.deleteFileMetadata(id); + fileMetadataStorage.deleteElementById(id); } } @@ -168,7 +168,7 @@ private FileMetadata makeFileMetadata(String user, } private void storeFileMetadata(FileMetadata fileMetadata) { - fileMetadataStorage.addFileMetadata(fileMetadata); + fileMetadataStorage.persist(fileMetadata); } diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/health/ServiceRegistrationManager.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/health/ServiceRegistrationManager.java index e4654c3710..b12cefa6d0 100644 --- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/health/ServiceRegistrationManager.java +++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/health/ServiceRegistrationManager.java @@ -31,9 +31,9 @@ public class ServiceRegistrationManager { private static final Logger LOG = LoggerFactory.getLogger(ServiceRegistrationManager.class); - private final CRUDStorage storage; + private final CRUDStorage storage; - public ServiceRegistrationManager(CRUDStorage storage) { + public ServiceRegistrationManager(CRUDStorage storage) { this.storage = storage; } diff --git a/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/file/TestFileManager.java b/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/file/TestFileManager.java index da62437bc6..ec2e840da0 100644 --- a/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/file/TestFileManager.java +++ b/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/file/TestFileManager.java @@ -19,7 +19,7 @@ import org.apache.streampipes.commons.file.FileHasher; import org.apache.streampipes.model.file.FileMetadata; -import org.apache.streampipes.storage.api.IFileMetadataStorage; +import org.apache.streampipes.storage.api.CRUDStorage; import org.apache.commons.io.IOUtils; import org.junit.jupiter.api.BeforeEach; @@ -50,7 +50,7 @@ public class TestFileManager { private FileManager fileManager; - private IFileMetadataStorage fileMetadataStorage; + private CRUDStorage fileMetadataStorage; private FileHandler fileHandler; private FileHasher fileHasher; @@ -59,7 +59,7 @@ public class TestFileManager { @BeforeEach public void setup() { - fileMetadataStorage = mock(IFileMetadataStorage.class); + fileMetadataStorage = mock(CRUDStorage.class); fileHandler = mock(FileHandler.class); fileHasher = mock(FileHasher.class); fileManager = new FileManager(fileMetadataStorage, fileHandler, fileHasher); @@ -104,7 +104,7 @@ public void getAllFiles_returnsEmptyListWhenNoMatchingFiletypes() { private List prepareFileMetadataStorageWithTwoSampleFiles() { List allFiles = Arrays.asList(createFileMetadata("csv"), createFileMetadata("json")); - when(fileMetadataStorage.getAllFileMetadataDescriptions()).thenReturn(allFiles); + when(fileMetadataStorage.findAll()).thenReturn(allFiles); return allFiles; } @@ -152,7 +152,7 @@ public void storeFile_storesFileWithValidInput() throws IOException { assertEquals(filename, fileMetadata.getFilename()); assertEquals("csv", fileMetadata.getFiletype()); verify(fileHandler, times(1)).storeFile(eq(filename), any(InputStream.class)); - verify(fileMetadataStorage, times(1)).addFileMetadata(any(FileMetadata.class)); + verify(fileMetadataStorage, times(1)).persist(any(FileMetadata.class)); } @Test @@ -164,7 +164,7 @@ public void storeFile_sanitizesFilename() throws IOException { assertEquals(expectedSanitizedFilename, fileMetadata.getFilename()); verify(fileHandler, times(1)).storeFile(eq(expectedSanitizedFilename), any(InputStream.class)); - verify(fileMetadataStorage, times(1)).addFileMetadata(any(FileMetadata.class)); + verify(fileMetadataStorage, times(1)).persist(any(FileMetadata.class)); } /** @@ -197,24 +197,24 @@ public void deleteFile_removesExistingFile() { var fileMetadata = new FileMetadata(); fileMetadata.setFilename("existingFile.txt"); - when(fileMetadataStorage.getMetadataById(id)).thenReturn(fileMetadata); + when(fileMetadataStorage.getElementById(id)).thenReturn(fileMetadata); fileManager.deleteFile(id); verify(fileHandler, times(1)).deleteFile(fileMetadata.getFilename()); - verify(fileMetadataStorage, times(1)).deleteFileMetadata(id); + verify(fileMetadataStorage, times(1)).deleteElementById(id); } @Test public void deleteFile_doesNothingForNonExistingFile() { var id = "nonExistingFileId"; - when(fileMetadataStorage.getMetadataById(id)).thenReturn(null); + when(fileMetadataStorage.getElementById(id)).thenReturn(null); fileManager.deleteFile(id); verify(fileHandler, times(0)).deleteFile(anyString()); - verify(fileMetadataStorage, times(0)).deleteFileMetadata(id); + verify(fileMetadataStorage, times(0)).deleteElementById(id); } @Test @@ -335,4 +335,4 @@ public void checkFileContentChanged_returnsFalseWhenContentHasNotChanged() throw assertFalse(result); } -} \ No newline at end of file +} diff --git a/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/AbstractDashboardResourceManager.java b/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/AbstractDashboardResourceManager.java index 67a0b479ee..3c1a125b7d 100644 --- a/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/AbstractDashboardResourceManager.java +++ b/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/AbstractDashboardResourceManager.java @@ -25,9 +25,9 @@ import java.util.List; public abstract class AbstractDashboardResourceManager - extends AbstractResourceManager> { + extends AbstractResourceManager> { - public AbstractDashboardResourceManager(CRUDStorage db) { + public AbstractDashboardResourceManager(CRUDStorage db) { super(db); } diff --git a/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/AbstractPipelineElementResourceManager.java b/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/AbstractPipelineElementResourceManager.java index a36c00e4ce..a241230237 100644 --- a/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/AbstractPipelineElementResourceManager.java +++ b/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/AbstractPipelineElementResourceManager.java @@ -26,7 +26,7 @@ import java.util.Objects; import java.util.stream.Collectors; -public abstract class AbstractPipelineElementResourceManager, +public abstract class AbstractPipelineElementResourceManager, W extends NamedStreamPipesEntity, X> extends AbstractResourceManager { public AbstractPipelineElementResourceManager(T db) { 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 9c9661247b..e9e1630be9 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,7 @@ 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.IPasswordRecoveryTokenStorage; -import org.apache.streampipes.storage.api.IUserActivationTokenStorage; +import org.apache.streampipes.storage.api.CRUDStorage; import org.apache.streampipes.storage.api.IUserStorage; import org.apache.streampipes.storage.couchdb.CouchDbStorageManager; import org.apache.streampipes.storage.management.StorageDispatcher; @@ -157,7 +156,7 @@ public void sendPasswordRecoveryLink(String username) throws UserNotFoundExcepti } public void checkPasswordRecoveryCode(String recoveryCode) { - IPasswordRecoveryTokenStorage tokenStorage = getPasswordRecoveryTokenStorage(); + var tokenStorage = getPasswordRecoveryTokenStorage(); PasswordRecoveryToken token = tokenStorage.getElementById(recoveryCode); if (token == null) { throw new IllegalArgumentException("Invalid recovery code"); @@ -182,11 +181,11 @@ private void storeRecoveryCode(String username, getPasswordRecoveryTokenStorage().persist(PasswordRecoveryToken.create(recoveryCode, username)); } - private IPasswordRecoveryTokenStorage getPasswordRecoveryTokenStorage() { + private CRUDStorage getPasswordRecoveryTokenStorage() { return StorageDispatcher.INSTANCE.getNoSqlStore().getPasswordRecoveryTokenStorage(); } - private IUserActivationTokenStorage getUserActivationTokenStorage() { + private CRUDStorage getUserActivationTokenStorage() { return StorageDispatcher.INSTANCE.getNoSqlStore().getUserActivationTokenStorage(); } diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AccountActivationResource.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AccountActivationResource.java index ee54e7bcc6..d53a4d662d 100644 --- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AccountActivationResource.java +++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AccountActivationResource.java @@ -35,7 +35,6 @@ public class AccountActivationResource extends AbstractAuthGuardedRestResource { @GetMapping( path = "{recoveryCode}", - consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity activateUserAccount(@PathVariable("recoveryCode") String recoveryCode) { try { diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AssetDashboardResource.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AssetDashboardResource.java index 4687f7c962..ed64308423 100644 --- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AssetDashboardResource.java +++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AssetDashboardResource.java @@ -21,7 +21,7 @@ import org.apache.streampipes.model.client.assetdashboard.AssetDashboardConfig; import org.apache.streampipes.rest.core.base.impl.AbstractRestResource; import org.apache.streampipes.rest.shared.exception.SpMessageException; -import org.apache.streampipes.storage.api.IAssetDashboardStorage; +import org.apache.streampipes.storage.api.CRUDStorage; import org.apache.streampipes.storage.management.StorageDispatcher; import org.apache.commons.io.FileUtils; @@ -63,7 +63,7 @@ public class AssetDashboardResource extends AbstractRestResource { @GetMapping(path = "/{dashboardId}", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity getAssetDashboard(@PathVariable("dashboardId") String dashboardId) { return ok(getNoSqlStorage().getAssetDashboardStorage() - .getAssetDashboard(dashboardId)); + .getElementById(dashboardId)); } @PutMapping( @@ -74,17 +74,17 @@ public ResponseEntity updateAssetDashboard( @PathVariable("dashboardId") String dashboardId, @RequestBody AssetDashboardConfig dashboardConfig ) { - AssetDashboardConfig dashboard = getAssetDashboardStorage().getAssetDashboard(dashboardId); + AssetDashboardConfig dashboard = getAssetDashboardStorage().getElementById(dashboardId); dashboardConfig.setRev(dashboard.getRev()); getNoSqlStorage().getAssetDashboardStorage() - .updateAssetDashboard(dashboardConfig); + .updateElement(dashboardConfig); return ok(); } @GetMapping(produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity> getAllDashboards() { return ok(getNoSqlStorage().getAssetDashboardStorage() - .getAllAssetDashboards()); + .findAll()); } @PostMapping( @@ -92,14 +92,14 @@ public ResponseEntity> getAllDashboards() { consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity storeAssetDashboard(@RequestBody AssetDashboardConfig dashboardConfig) { getNoSqlStorage().getAssetDashboardStorage() - .storeAssetDashboard(dashboardConfig); + .persist(dashboardConfig); return ok(); } @DeleteMapping(path = "/{dashboardId}") public ResponseEntity deleteAssetDashboard(@PathVariable("dashboardId") String dashboardId) { getNoSqlStorage().getAssetDashboardStorage() - .deleteAssetDashboard(dashboardId); + .deleteElementById(dashboardId); return ok(); } @@ -169,7 +169,7 @@ private String getTargetFile(String filename) { return getTargetDirectory() + File.separator + filename; } - private IAssetDashboardStorage getAssetDashboardStorage() { + private CRUDStorage getAssetDashboardStorage() { return StorageDispatcher.INSTANCE.getNoSqlStore() .getAssetDashboardStorage(); } diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/MigrationResource.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/MigrationResource.java index aa3a509b80..a940e9d9b0 100644 --- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/MigrationResource.java +++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/MigrationResource.java @@ -61,7 +61,7 @@ public class MigrationResource extends AbstractAuthGuardedRestResource { private static final Logger LOG = LoggerFactory.getLogger(MigrationResource.class); - private final CRUDStorage extensionsServiceStorage = + private final CRUDStorage extensionsServiceStorage = getNoSqlStorage().getExtensionsServiceStorage(); private final IAdapterStorage adapterStorage = getNoSqlStorage().getAdapterInstanceStorage(); diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/ServiceConfigurationResource.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/ServiceConfigurationResource.java index 6a15de5476..378bc4e668 100644 --- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/ServiceConfigurationResource.java +++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/ServiceConfigurationResource.java @@ -44,7 +44,7 @@ @PreAuthorize(AuthConstants.IS_ADMIN_ROLE) public class ServiceConfigurationResource extends AbstractAuthGuardedRestResource { - private final CRUDStorage extensionsServicesConfigStorage = + private final CRUDStorage extensionsServicesConfigStorage = getNoSqlStorage().getExtensionsServiceConfigurationStorage(); diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/ServiceRegistrationResource.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/ServiceRegistrationResource.java index c8cd157aa2..7b73776682 100644 --- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/ServiceRegistrationResource.java +++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/ServiceRegistrationResource.java @@ -45,7 +45,7 @@ @PreAuthorize(AuthConstants.IS_ADMIN_ROLE) public class ServiceRegistrationResource extends AbstractAuthGuardedRestResource { - private final CRUDStorage extensionsServiceStorage = + private final CRUDStorage extensionsServiceStorage = getNoSqlStorage().getExtensionsServiceStorage(); @GetMapping(produces = MediaType.APPLICATION_JSON_VALUE) diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/UserGroupResource.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/UserGroupResource.java index b5f1ad0bc5..3ceab35c1e 100644 --- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/UserGroupResource.java +++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/UserGroupResource.java @@ -22,7 +22,7 @@ import org.apache.streampipes.rest.core.base.impl.AbstractAuthGuardedRestResource; import org.apache.streampipes.rest.security.AuthConstants; import org.apache.streampipes.rest.shared.exception.SpMessageException; -import org.apache.streampipes.storage.api.IUserGroupStorage; +import org.apache.streampipes.storage.api.CRUDStorage; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; @@ -89,7 +89,7 @@ public ResponseEntity deleteUserGroup(@PathVariable("groupId") String grou } } - private IUserGroupStorage getUserGroupStorage() { + private CRUDStorage getUserGroupStorage() { return getNoSqlStorage().getUserGroupStorage(); } } diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/dashboard/DashboardWidget.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/dashboard/DashboardWidget.java index 78eed04375..91687ee4d5 100644 --- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/dashboard/DashboardWidget.java +++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/dashboard/DashboardWidget.java @@ -77,7 +77,7 @@ public ResponseEntity createDashboardWidget( return ok(getDashboardWidgetStorage().getElementById(elementId)); } - private CRUDStorage getDashboardWidgetStorage() { + private CRUDStorage getDashboardWidgetStorage() { return getNoSqlStorage().getDashboardWidgetStorage(); } } diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeWidgetResource.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeWidgetResource.java index 9324ff117c..ced1771899 100644 --- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeWidgetResource.java +++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeWidgetResource.java @@ -79,7 +79,7 @@ public ResponseEntity createDataExplorerWidget( return ok(getDataExplorerWidgetStorage().getElementById(elementId)); } - private CRUDStorage getDataExplorerWidgetStorage() { + private CRUDStorage getDataExplorerWidgetStorage() { return getNoSqlStorage().getDataExplorerWidgetStorage(); } diff --git a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v095/MergeFilenamesAndRenameDuplicatesMigration.java b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v095/MergeFilenamesAndRenameDuplicatesMigration.java index 1330a109ce..d8d2eed10c 100644 --- a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v095/MergeFilenamesAndRenameDuplicatesMigration.java +++ b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v095/MergeFilenamesAndRenameDuplicatesMigration.java @@ -21,7 +21,7 @@ import org.apache.streampipes.manager.file.FileHandler; import org.apache.streampipes.model.file.FileMetadata; import org.apache.streampipes.service.core.migrations.Migration; -import org.apache.streampipes.storage.api.IFileMetadataStorage; +import org.apache.streampipes.storage.api.CRUDStorage; import org.apache.streampipes.storage.couchdb.utils.Utils; import org.apache.streampipes.storage.management.StorageDispatcher; @@ -46,12 +46,12 @@ public class MergeFilenamesAndRenameDuplicatesMigration implements Migration { private CouchDbClient couchDbClient; - private ObjectMapper mapper = new ObjectMapper(); + private final ObjectMapper mapper = new ObjectMapper(); - private IFileMetadataStorage fileMetadataStorage = + private final CRUDStorage fileMetadataStorage = StorageDispatcher.INSTANCE.getNoSqlStore().getFileMetadataStorage(); - private FileHandler fileHandler = new FileHandler(); + private final FileHandler fileHandler = new FileHandler(); Logger logger = LoggerFactory.getLogger(MergeFilenamesAndRenameDuplicatesMigration.class); @@ -89,14 +89,14 @@ public void executeMigration() { */ protected void getFileMetadataToUpdate(List> couchDbRawFileMetadata) { couchDbRawFileMetadata.forEach( - rawFileMetadata -> checkDuplicateOriginalFilename(rawFileMetadata)); + this::checkDuplicateOriginalFilename); } /** * Fetches all fileIds stored in CouchDB */ - private List getAllFileIds(IFileMetadataStorage fileMetadataStorage) { - return fileMetadataStorage.getAllFileMetadataDescriptions().stream().map(fileMetadata -> fileMetadata.getFileId()) + private List getAllFileIds(CRUDStorage fileMetadataStorage) { + return fileMetadataStorage.findAll().stream().map(FileMetadata::getFileId) .toList(); } @@ -143,7 +143,7 @@ private void checkDuplicateOriginalFilename(Map rawFileMetadata) fileMetadata.setFileId(rawFileMetadata.get(ID).toString()); fileMetadata.setFiletype(rawFileMetadata.get(FILETYPE).toString()); } else { - fileMetadata = fileMetadataStorage.getMetadataById(rawFileMetadata.get(ID).toString()); + fileMetadata = fileMetadataStorage.getElementById(rawFileMetadata.get(ID).toString()); } fileMetadataGroupedByOriginalName.get(originalFilename).add(fileMetadata); } @@ -177,7 +177,7 @@ protected void update(String originalFilename, List fileMetadataLi private void updateFileMetadata(FileMetadata fileMetadata, String filename, boolean isTesting) { fileMetadata.setFilename(filename); if (!isTesting) { - fileMetadataStorage.updateFileMetadata(fileMetadata); + fileMetadataStorage.updateElement(fileMetadata); } } diff --git a/streampipes-service-discovery/src/main/java/org/apache/streampipes/svcdiscovery/SpServiceDiscoveryCore.java b/streampipes-service-discovery/src/main/java/org/apache/streampipes/svcdiscovery/SpServiceDiscoveryCore.java index c096267c5f..f0823b4830 100644 --- a/streampipes-service-discovery/src/main/java/org/apache/streampipes/svcdiscovery/SpServiceDiscoveryCore.java +++ b/streampipes-service-discovery/src/main/java/org/apache/streampipes/svcdiscovery/SpServiceDiscoveryCore.java @@ -40,7 +40,7 @@ public class SpServiceDiscoveryCore implements ISpServiceDiscovery { private static final Logger LOG = LoggerFactory.getLogger(SpServiceDiscoveryCore.class); private static final int MAX_RETRIES = 3; - private final CRUDStorage serviceStorage; + private final CRUDStorage serviceStorage; public SpServiceDiscoveryCore() { this.serviceStorage = StorageDispatcher.INSTANCE.getNoSqlStore().getExtensionsServiceStorage(); diff --git a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/CRUDStorage.java b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/CRUDStorage.java index a5539aa1e4..32e57df0af 100644 --- a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/CRUDStorage.java +++ b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/CRUDStorage.java @@ -21,19 +21,19 @@ import java.util.List; -public interface CRUDStorage { +public interface CRUDStorage { - List findAll(); + List findAll(); - Tuple2 persist(V element); + Tuple2 persist(T element); - V getElementById(K id); + T getElementById(String id); - V updateElement(V element); + T updateElement(T element); - void deleteElement(V element); + void deleteElement(T element); - default void deleteElementById(K id) { + default void deleteElementById(String id) { var element = getElementById(id); deleteElement(element); } diff --git a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IAdapterStorage.java b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IAdapterStorage.java index 651d7274ba..f2011bbc0c 100644 --- a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IAdapterStorage.java +++ b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IAdapterStorage.java @@ -22,7 +22,7 @@ import java.util.List; -public interface IAdapterStorage extends CRUDStorage{ +public interface IAdapterStorage extends CRUDStorage{ List getAllAdapters(); diff --git a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IAssetDashboardStorage.java b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IAssetDashboardStorage.java deleted file mode 100644 index 69d66271f6..0000000000 --- a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IAssetDashboardStorage.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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.assetdashboard.AssetDashboardConfig; - -import java.util.List; - -public interface IAssetDashboardStorage { - - List getAllAssetDashboards(); - - AssetDashboardConfig getAssetDashboard(String dashboardId); - - void storeAssetDashboard(AssetDashboardConfig assetDashboardConfig); - - void updateAssetDashboard(AssetDashboardConfig assetDashboardConfig); - - void deleteAssetDashboard(String dashboardId); -} diff --git a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IDataProcessorStorage.java b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IDataProcessorStorage.java index c9f4d6630c..e0b055f978 100644 --- a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IDataProcessorStorage.java +++ b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IDataProcessorStorage.java @@ -21,7 +21,7 @@ import java.util.List; -public interface IDataProcessorStorage extends CRUDStorage { +public interface IDataProcessorStorage extends CRUDStorage { DataProcessorDescription getFirstDataProcessorByAppId(String appId); diff --git a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IDataSinkStorage.java b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IDataSinkStorage.java index e740816d70..d82c02ba6c 100644 --- a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IDataSinkStorage.java +++ b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IDataSinkStorage.java @@ -21,7 +21,7 @@ import java.util.List; -public interface IDataSinkStorage extends CRUDStorage { +public interface IDataSinkStorage extends CRUDStorage { DataSinkDescription getFirstDataSinkByAppId(String appId); diff --git a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IDataStreamStorage.java b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IDataStreamStorage.java index 651584b24e..f08bc6233b 100644 --- a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IDataStreamStorage.java +++ b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IDataStreamStorage.java @@ -19,7 +19,7 @@ import org.apache.streampipes.model.SpDataStream; -public interface IDataStreamStorage extends CRUDStorage { +public interface IDataStreamStorage extends CRUDStorage { SpDataStream getDataStreamByAppId(String appId); } 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 3169a61c69..2b8c0203d7 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 @@ -17,12 +17,17 @@ */ package org.apache.streampipes.storage.api; +import org.apache.streampipes.model.client.assetdashboard.AssetDashboardConfig; +import org.apache.streampipes.model.client.user.Group; +import org.apache.streampipes.model.client.user.PasswordRecoveryToken; +import org.apache.streampipes.model.client.user.UserActivationToken; import org.apache.streampipes.model.dashboard.DashboardModel; import org.apache.streampipes.model.dashboard.DashboardWidgetModel; 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; +import org.apache.streampipes.model.file.FileMetadata; public interface INoSqlStorage { @@ -34,7 +39,7 @@ public interface INoSqlStorage { IImageStorage getImageStorage(); - IUserGroupStorage getUserGroupStorage(); + CRUDStorage getUserGroupStorage(); IPipelineStorage getPipelineStorageAPI(); @@ -44,19 +49,19 @@ public interface INoSqlStorage { INotificationStorage getNotificationStorageApi(); - IAssetDashboardStorage getAssetDashboardStorage(); + CRUDStorage getAssetDashboardStorage(); - CRUDStorage getDataLakeStorage(); + CRUDStorage getDataLakeStorage(); - IFileMetadataStorage getFileMetadataStorage(); + CRUDStorage getFileMetadataStorage(); - CRUDStorage getDashboardStorage(); + CRUDStorage getDashboardStorage(); - CRUDStorage getDataExplorerDashboardStorage(); + CRUDStorage getDataExplorerDashboardStorage(); - CRUDStorage getDashboardWidgetStorage(); + CRUDStorage getDashboardWidgetStorage(); - CRUDStorage getDataExplorerWidgetStorage(); + CRUDStorage getDataExplorerWidgetStorage(); IPipelineElementTemplateStorage getPipelineElementTemplateStorage(); @@ -72,13 +77,13 @@ public interface INoSqlStorage { IDataStreamStorage getDataStreamStorage(); - IPasswordRecoveryTokenStorage getPasswordRecoveryTokenStorage(); + CRUDStorage getPasswordRecoveryTokenStorage(); - IUserActivationTokenStorage getUserActivationTokenStorage(); + CRUDStorage getUserActivationTokenStorage(); - CRUDStorage getExtensionsServiceStorage(); + CRUDStorage getExtensionsServiceStorage(); - CRUDStorage getExtensionsServiceConfigurationStorage(); + CRUDStorage getExtensionsServiceConfigurationStorage(); ISpCoreConfigurationStorage getSpCoreConfigurationStorage(); } diff --git a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPasswordRecoveryTokenStorage.java b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPasswordRecoveryTokenStorage.java deleted file mode 100644 index 43259e5edf..0000000000 --- a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPasswordRecoveryTokenStorage.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * 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.PasswordRecoveryToken; - -public interface IPasswordRecoveryTokenStorage extends CRUDStorage { - - -} diff --git a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineCanvasMetadataStorage.java b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineCanvasMetadataStorage.java index fa7c64736a..57701ac23e 100644 --- a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineCanvasMetadataStorage.java +++ b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineCanvasMetadataStorage.java @@ -19,7 +19,7 @@ import org.apache.streampipes.model.canvas.PipelineCanvasMetadata; -public interface IPipelineCanvasMetadataStorage extends CRUDStorage { +public interface IPipelineCanvasMetadataStorage extends CRUDStorage { PipelineCanvasMetadata getPipelineCanvasMetadataForPipeline(String pipelineId); } diff --git a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineElementTemplateStorage.java b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineElementTemplateStorage.java index 7f3a326557..e8d8fe6684 100644 --- a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineElementTemplateStorage.java +++ b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineElementTemplateStorage.java @@ -21,7 +21,7 @@ import java.util.List; -public interface IPipelineElementTemplateStorage extends CRUDStorage { +public interface IPipelineElementTemplateStorage extends CRUDStorage { List getPipelineElementTemplatesforAppId(String appId); } 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 deleted file mode 100644 index a2311dc485..0000000000 --- a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IUserActivationTokenStorage.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * 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 { -} diff --git a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IUserGroupStorage.java b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IUserGroupStorage.java deleted file mode 100644 index accd125c4f..0000000000 --- a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IUserGroupStorage.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * 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.Group; - -public interface IUserGroupStorage extends CRUDStorage { -} 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 dca2e03294..64e873a8aa 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 @@ -17,24 +17,26 @@ */ package org.apache.streampipes.storage.couchdb; +import org.apache.streampipes.model.client.assetdashboard.AssetDashboardConfig; +import org.apache.streampipes.model.client.user.Group; +import org.apache.streampipes.model.client.user.PasswordRecoveryToken; +import org.apache.streampipes.model.client.user.UserActivationToken; import org.apache.streampipes.model.dashboard.DashboardModel; import org.apache.streampipes.model.dashboard.DashboardWidgetModel; 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; +import org.apache.streampipes.model.file.FileMetadata; import org.apache.streampipes.storage.api.CRUDStorage; import org.apache.streampipes.storage.api.IAdapterStorage; -import org.apache.streampipes.storage.api.IAssetDashboardStorage; import org.apache.streampipes.storage.api.IDataProcessorStorage; import org.apache.streampipes.storage.api.IDataSinkStorage; import org.apache.streampipes.storage.api.IDataStreamStorage; -import org.apache.streampipes.storage.api.IFileMetadataStorage; import org.apache.streampipes.storage.api.IGenericStorage; import org.apache.streampipes.storage.api.IImageStorage; import org.apache.streampipes.storage.api.INoSqlStorage; import org.apache.streampipes.storage.api.INotificationStorage; -import org.apache.streampipes.storage.api.IPasswordRecoveryTokenStorage; import org.apache.streampipes.storage.api.IPermissionStorage; import org.apache.streampipes.storage.api.IPipelineCanvasMetadataStorage; import org.apache.streampipes.storage.api.IPipelineElementConnectionStorage; @@ -42,32 +44,24 @@ 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; import org.apache.streampipes.storage.couchdb.impl.AdapterInstanceStorageImpl; -import org.apache.streampipes.storage.couchdb.impl.AssetDashboardStorageImpl; import org.apache.streampipes.storage.couchdb.impl.ConnectionStorageImpl; import org.apache.streampipes.storage.couchdb.impl.CoreConfigurationStorageImpl; import org.apache.streampipes.storage.couchdb.impl.DataProcessorStorageImpl; import org.apache.streampipes.storage.couchdb.impl.DataSinkStorageImpl; import org.apache.streampipes.storage.couchdb.impl.DataStreamStorageImpl; import org.apache.streampipes.storage.couchdb.impl.DefaultCrudStorage; -import org.apache.streampipes.storage.couchdb.impl.ExtensionsServiceConfigStorageImpl; -import org.apache.streampipes.storage.couchdb.impl.ExtensionsServiceStorageImpl; -import org.apache.streampipes.storage.couchdb.impl.FileMetadataStorageImpl; +import org.apache.streampipes.storage.couchdb.impl.DefaultViewCrudStorage; import org.apache.streampipes.storage.couchdb.impl.GenericStorageImpl; import org.apache.streampipes.storage.couchdb.impl.ImageStorageImpl; import org.apache.streampipes.storage.couchdb.impl.NotificationStorageImpl; -import org.apache.streampipes.storage.couchdb.impl.PasswordRecoveryTokenImpl; import org.apache.streampipes.storage.couchdb.impl.PermissionStorageImpl; import org.apache.streampipes.storage.couchdb.impl.PipelineCanvasMetadataStorageImpl; 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.UserActivationTokenImpl; -import org.apache.streampipes.storage.couchdb.impl.UserGroupStorageImpl; import org.apache.streampipes.storage.couchdb.impl.UserStorage; import org.apache.streampipes.storage.couchdb.utils.Utils; @@ -96,8 +90,12 @@ public IImageStorage getImageStorage() { } @Override - public IUserGroupStorage getUserGroupStorage() { - return new UserGroupStorageImpl(); + public CRUDStorage getUserGroupStorage() { + return new DefaultViewCrudStorage<>( + Utils::getCouchDbUserClient, + Group.class, + "users/groups" + ); } @Override @@ -121,12 +119,15 @@ public INotificationStorage getNotificationStorageApi() { } @Override - public IAssetDashboardStorage getAssetDashboardStorage() { - return new AssetDashboardStorageImpl(); + public CRUDStorage getAssetDashboardStorage() { + return new DefaultCrudStorage<>( + () -> Utils.getCouchDbGsonClient("assetdashboard"), + AssetDashboardConfig.class + ); } @Override - public CRUDStorage getDataLakeStorage() { + public CRUDStorage getDataLakeStorage() { return new DefaultCrudStorage<>( () -> Utils.getCouchDbGsonClient("data-lake"), DataLakeMeasure.class @@ -134,12 +135,15 @@ public CRUDStorage getDataLakeStorage() { } @Override - public IFileMetadataStorage getFileMetadataStorage() { - return new FileMetadataStorageImpl(); + public CRUDStorage getFileMetadataStorage() { + return new DefaultCrudStorage<>( + () -> Utils.getCouchDbGsonClient("filemetadata"), + FileMetadata.class + ); } @Override - public CRUDStorage getDashboardStorage() { + public CRUDStorage getDashboardStorage() { return new DefaultCrudStorage<>( () -> Utils.getCouchDbGsonClient("dashboard"), DashboardModel.class @@ -147,7 +151,7 @@ public CRUDStorage getDashboardStorage() { } @Override - public CRUDStorage getDataExplorerDashboardStorage() { + public CRUDStorage getDataExplorerDashboardStorage() { return new DefaultCrudStorage<>( () -> Utils.getCouchDbGsonClient("dataexplorerdashboard"), DashboardModel.class @@ -155,7 +159,7 @@ public CRUDStorage getDataExplorerDashboardStorage() { } @Override - public CRUDStorage getDashboardWidgetStorage() { + public CRUDStorage getDashboardWidgetStorage() { return new DefaultCrudStorage<>( () -> Utils.getCouchDbGsonClient("dashboardwidget"), DashboardWidgetModel.class @@ -163,7 +167,7 @@ public CRUDStorage getDashboardWidgetStorage() { } @Override - public CRUDStorage getDataExplorerWidgetStorage() { + public CRUDStorage getDataExplorerWidgetStorage() { return new DefaultCrudStorage<>( () -> Utils.getCouchDbGsonClient("dataexplorerwidget"), DataExplorerWidgetModel.class @@ -206,29 +210,41 @@ public IDataStreamStorage getDataStreamStorage() { } @Override - public IPasswordRecoveryTokenStorage getPasswordRecoveryTokenStorage() { - return new PasswordRecoveryTokenImpl(); + public CRUDStorage getPasswordRecoveryTokenStorage() { + return new DefaultViewCrudStorage<>( + Utils::getCouchDbUserClient, + PasswordRecoveryToken.class, + "users/password-recovery" + ); } @Override - public IUserActivationTokenStorage getUserActivationTokenStorage() { - return new UserActivationTokenImpl(); + public CRUDStorage getUserActivationTokenStorage() { + return new DefaultViewCrudStorage<>( + Utils::getCouchDbUserClient, + UserActivationToken.class, + "users/user-activation" + ); } @Override - public CRUDStorage getExtensionsServiceStorage() { - return new ExtensionsServiceStorageImpl(); + public CRUDStorage getExtensionsServiceStorage() { + return new DefaultCrudStorage<>( + () -> Utils.getCouchDbGsonClient("extensions-services"), + SpServiceRegistration.class + ); } @Override - public CRUDStorage getExtensionsServiceConfigurationStorage() { - return new ExtensionsServiceConfigStorageImpl(); + public CRUDStorage getExtensionsServiceConfigurationStorage() { + return new DefaultCrudStorage<>( + () -> Utils.getCouchDbGsonClient("extensions-services-configurations"), + SpServiceConfiguration.class + ); } @Override public ISpCoreConfigurationStorage getSpCoreConfigurationStorage() { return new CoreConfigurationStorageImpl(); } - - } diff --git a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/AssetDashboardStorageImpl.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/AssetDashboardStorageImpl.java deleted file mode 100644 index 665259c0bf..0000000000 --- a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/AssetDashboardStorageImpl.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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.assetdashboard.AssetDashboardConfig; -import org.apache.streampipes.storage.api.IAssetDashboardStorage; -import org.apache.streampipes.storage.couchdb.dao.AbstractDao; -import org.apache.streampipes.storage.couchdb.utils.Utils; - -import java.util.List; - -public class AssetDashboardStorageImpl extends AbstractDao implements IAssetDashboardStorage { - - public AssetDashboardStorageImpl() { - super(Utils::getCouchDbAssetDashboardClient, AssetDashboardConfig.class); - } - - @Override - public List getAllAssetDashboards() { - return findAll(); - } - - @Override - public AssetDashboardConfig getAssetDashboard(String dashboardId) { - return findWithNullIfEmpty(dashboardId); - } - - @Override - public void storeAssetDashboard(AssetDashboardConfig assetDashboardConfig) { - persist(assetDashboardConfig); - } - - @Override - public void updateAssetDashboard(AssetDashboardConfig assetDashboardConfig) { - update(assetDashboardConfig); - } - - @Override - public void deleteAssetDashboard(String dashboardId) { - delete(dashboardId); - } -} diff --git a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/DefaultCrudStorage.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/DefaultCrudStorage.java index 88e9f275a6..84c6b80dc8 100644 --- a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/DefaultCrudStorage.java +++ b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/DefaultCrudStorage.java @@ -18,7 +18,7 @@ package org.apache.streampipes.storage.couchdb.impl; -import org.apache.streampipes.model.api.Storable; +import org.apache.streampipes.model.shared.api.Storable; import org.apache.streampipes.storage.api.CRUDStorage; import org.apache.streampipes.storage.couchdb.dao.AbstractDao; @@ -26,7 +26,7 @@ import java.util.function.Supplier; -public class DefaultCrudStorage extends AbstractDao implements CRUDStorage { +public class DefaultCrudStorage extends AbstractDao implements CRUDStorage { public DefaultCrudStorage(Supplier couchDbClientSupplier, Class clazz) { @@ -35,7 +35,7 @@ public DefaultCrudStorage(Supplier couchDbClientSupplier, @Override public T getElementById(String id) { - return find(id).orElseThrow(IllegalArgumentException::new); + return findWithNullIfEmpty(id); } @Override diff --git a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IFileMetadataStorage.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/DefaultViewCrudStorage.java similarity index 56% rename from streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IFileMetadataStorage.java rename to streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/DefaultViewCrudStorage.java index 13eae66ed7..a28c70147f 100644 --- a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IFileMetadataStorage.java +++ b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/DefaultViewCrudStorage.java @@ -15,23 +15,30 @@ * limitations under the License. * */ -package org.apache.streampipes.storage.api; -import org.apache.streampipes.model.file.FileMetadata; +package org.apache.streampipes.storage.couchdb.impl; -import java.util.List; +import org.apache.streampipes.model.shared.api.Storable; -public interface IFileMetadataStorage { +import org.lightcouch.CouchDbClient; - FileMetadata getMetadataById(String id); +import java.util.List; +import java.util.function.Supplier; - List getAllFileMetadataDescriptions(); +public class DefaultViewCrudStorage extends DefaultCrudStorage { - List getFilteredFileMetadataDescriptions(String filetype); + private final String viewName; - void deleteFileMetadata(String id); + public DefaultViewCrudStorage(Supplier couchDbClientSupplier, + Class clazz, + String viewName) { + super(couchDbClientSupplier, clazz); + this.viewName = viewName; + } - void addFileMetadata(FileMetadata fileMetadata); + @Override + public List findAll() { + return findAll(viewName, clazz); + } - void updateFileMetadata(FileMetadata fileMetadata); } diff --git a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/ExtensionsServiceConfigStorageImpl.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/ExtensionsServiceConfigStorageImpl.java deleted file mode 100644 index 554632ca80..0000000000 --- a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/ExtensionsServiceConfigStorageImpl.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * 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.extensions.configuration.SpServiceConfiguration; -import org.apache.streampipes.storage.api.CRUDStorage; -import org.apache.streampipes.storage.couchdb.dao.AbstractDao; -import org.apache.streampipes.storage.couchdb.utils.Utils; - -public class ExtensionsServiceConfigStorageImpl extends AbstractDao - implements CRUDStorage { - - public ExtensionsServiceConfigStorageImpl() { - super(Utils::getCouchDbServiceConfigStorage, SpServiceConfiguration.class); - } - - @Override - public SpServiceConfiguration getElementById(String id) { - return findWithNullIfEmpty(id); - } - - @Override - public SpServiceConfiguration updateElement(SpServiceConfiguration element) { - update(element); - return getElementById(element.getServiceName()); - } - - @Override - public void deleteElement(SpServiceConfiguration element) { - delete(element.getServiceName()); - } -} diff --git a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/ExtensionsServiceStorageImpl.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/ExtensionsServiceStorageImpl.java deleted file mode 100644 index 230c7a3393..0000000000 --- a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/ExtensionsServiceStorageImpl.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * 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.extensions.svcdiscovery.SpServiceRegistration; -import org.apache.streampipes.storage.api.CRUDStorage; -import org.apache.streampipes.storage.couchdb.dao.AbstractDao; -import org.apache.streampipes.storage.couchdb.utils.Utils; - -public class ExtensionsServiceStorageImpl extends AbstractDao - implements CRUDStorage { - - public ExtensionsServiceStorageImpl() { - super(Utils::getCouchDbExtensionsStorage, SpServiceRegistration.class); - } - - @Override - public SpServiceRegistration getElementById(String id) { - return findWithNullIfEmpty(id); - } - - @Override - public SpServiceRegistration updateElement(SpServiceRegistration element) { - update(element); - return getElementById(element.getSvcId()); - } - - @Override - public void deleteElement(SpServiceRegistration element) { - delete(element.getSvcId()); - } -} diff --git a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/FileMetadataStorageImpl.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/FileMetadataStorageImpl.java deleted file mode 100644 index 2f65f09912..0000000000 --- a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/FileMetadataStorageImpl.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * 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.file.FileMetadata; -import org.apache.streampipes.storage.api.IFileMetadataStorage; -import org.apache.streampipes.storage.couchdb.dao.AbstractDao; -import org.apache.streampipes.storage.couchdb.utils.Utils; - -import java.util.List; -import java.util.stream.Collectors; - -public class FileMetadataStorageImpl extends AbstractDao implements - IFileMetadataStorage { - - public FileMetadataStorageImpl() { - super(Utils::getCouchDbFileMetadataClient, FileMetadata.class); - } - - @Override - public FileMetadata getMetadataById(String id) { - return findWithNullIfEmpty(id); - } - - @Override - public List getAllFileMetadataDescriptions() { - return findAll(); - } - - @Override - public List getFilteredFileMetadataDescriptions(String filetype) { - List allFiles = getAllFileMetadataDescriptions(); - return allFiles - .stream() - .filter(f -> f.getFiletype().equals(filetype)) - .collect(Collectors.toList()); - } - - @Override - public void deleteFileMetadata(String id) { - delete(id); - } - - @Override - public void addFileMetadata(FileMetadata fileMetadata) { - persist(fileMetadata); - } - - @Override - public void updateFileMetadata(FileMetadata fileMetadata) { - update(fileMetadata); - } -} diff --git a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/PasswordRecoveryTokenImpl.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/PasswordRecoveryTokenImpl.java deleted file mode 100644 index 4a8b687658..0000000000 --- a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/PasswordRecoveryTokenImpl.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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.PasswordRecoveryToken; -import org.apache.streampipes.storage.api.IPasswordRecoveryTokenStorage; -import org.apache.streampipes.storage.couchdb.dao.AbstractDao; -import org.apache.streampipes.storage.couchdb.utils.Utils; - -import java.util.List; - -public class PasswordRecoveryTokenImpl extends AbstractDao - implements IPasswordRecoveryTokenStorage { - - private static final String viewName = "users/password-recovery"; - - public PasswordRecoveryTokenImpl() { - super(Utils::getCouchDbUserClient, PasswordRecoveryToken.class); - } - - - @Override - public List findAll() { - return findAll(viewName, PasswordRecoveryToken.class); - } - - @Override - public PasswordRecoveryToken getElementById(String s) { - return findWithNullIfEmpty(s, PasswordRecoveryToken.class); - } - - @Override - public PasswordRecoveryToken updateElement(PasswordRecoveryToken element) { - update(element, PasswordRecoveryToken.class); - return getElementById(element.getToken()); - } - - @Override - public void deleteElement(PasswordRecoveryToken element) { - delete(element.getToken(), PasswordRecoveryToken.class); - } -} diff --git a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/UserActivationTokenImpl.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/UserActivationTokenImpl.java deleted file mode 100644 index 79d5f93509..0000000000 --- a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/UserActivationTokenImpl.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * 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.dao.AbstractDao; -import org.apache.streampipes.storage.couchdb.utils.Utils; - -import java.util.List; - -public class UserActivationTokenImpl extends AbstractDao implements IUserActivationTokenStorage { - - private static final String viewName = "users/user-activation"; - - public UserActivationTokenImpl() { - super(Utils::getCouchDbUserClient, UserActivationToken.class); - } - - @Override - public List findAll() { - return findAll(viewName, UserActivationToken.class); - } - - @Override - public UserActivationToken getElementById(String s) { - return findWithNullIfEmpty(s, UserActivationToken.class); - } - - @Override - public UserActivationToken updateElement(UserActivationToken element) { - update(element, UserActivationToken.class); - return getElementById(element.getToken()); - } - - @Override - public void deleteElement(UserActivationToken element) { - delete(element.getToken(), UserActivationToken.class); - } -} diff --git a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/UserGroupStorageImpl.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/UserGroupStorageImpl.java deleted file mode 100644 index e657e960a2..0000000000 --- a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/UserGroupStorageImpl.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * 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.Group; -import org.apache.streampipes.storage.api.IUserGroupStorage; -import org.apache.streampipes.storage.couchdb.dao.AbstractDao; -import org.apache.streampipes.storage.couchdb.utils.Utils; - -import java.util.List; - -public class UserGroupStorageImpl extends AbstractDao implements IUserGroupStorage { - - private static final String viewName = "users/groups"; - - public UserGroupStorageImpl() { - super(Utils::getCouchDbUserClient, Group.class); - } - - @Override - public List findAll() { - return findAll(viewName, Group.class); - } - - @Override - public Group getElementById(String s) { - return findWithNullIfEmpty(s, Group.class); - } - - @Override - public Group updateElement(Group element) { - update(element, Group.class); - return getElementById(element.getGroupId()); - } - - @Override - public void deleteElement(Group element) { - delete(element.getGroupId(), Group.class); - } -} diff --git a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/utils/Utils.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/utils/Utils.java index 7f9cfd15ff..a9e1be34f9 100644 --- a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/utils/Utils.java +++ b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/utils/Utils.java @@ -66,10 +66,6 @@ public static CouchDbClient getCouchDbGeneralConfigStorage() { return getCouchDbGsonClient("general-configuration"); } - public static CouchDbClient getCouchDbServiceConfigStorage() { - return getCouchDbGsonClient("extensions-services-configurations"); - } - public static CouchDbClient getCouchDbExtensionsStorage() { return getCouchDbGsonClient("extensions-services"); } @@ -82,10 +78,6 @@ public static CouchDbClient getCouchDbFileMetadataClient() { return getCouchDbGsonClient("filemetadata"); } - public static CouchDbClient getCouchDbAssetDashboardClient() { - return getCouchDbGsonClient("assetdashboard"); - } - public static CouchDbClient getCouchDbAdapterInstanceClient() { return getCouchDbAdapterClient("adapterinstance"); }