External folder interface added

This commit is contained in:
lucio.lelii 2021-04-28 16:29:43 +02:00
parent 456e587aa0
commit 2d2ba1c58b
6 changed files with 24 additions and 15 deletions

View File

@ -44,19 +44,14 @@
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.11</version>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.8.11</version>
<version>2.3.0</version>
</dependency>
<!-- <dependency> <groupId>org.gcube.common</groupId> <artifactId>gcube-jackson-core</artifactId>
</dependency> <dependency> <groupId>org.gcube.common</groupId> <artifactId>gcube-jackson-annotations</artifactId>
</dependency> -->
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
<groupId>org.gcube.core</groupId>
<artifactId>common-clients</artifactId>

View File

@ -5,16 +5,24 @@ import static org.gcube.common.storagehub.model.NodeConstants.PARAMETERS_NAME;
import org.gcube.common.storagehub.model.Metadata;
import org.gcube.common.storagehub.model.annotations.Attribute;
import org.gcube.common.storagehub.model.annotations.NodeAttribute;
import org.gcube.common.storagehub.model.annotations.RootNode;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
@RootNode("nthl:externalFolder")
public class ExternalFolder extends FolderItem {
@Attribute("hl:pluginName")
String plugin;
String managedBy;
@JsonIgnore
@NodeAttribute(value=PARAMETERS_NAME)
Metadata metadata = new Metadata();
Metadata connectionParameters = new Metadata();
}

View File

@ -2,6 +2,7 @@ package org.gcube.common.storagehub.model.items;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@ -9,6 +10,7 @@ import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(of = "id" )
public abstract class RootItem {
//for service internal use

View File

@ -5,6 +5,8 @@ import org.gcube.common.storagehub.model.storages.StorageBackend;
public interface FolderManager {
FolderItem getRootFolder();
StorageBackend getStorageBackend();
boolean manageVersion();

View File

@ -1,5 +1,7 @@
package org.gcube.common.storagehub.model.plugins;
import java.util.Map;
import org.gcube.common.storagehub.model.exceptions.PluginInitializationException;
import org.gcube.common.storagehub.model.items.FolderItem;
@ -9,7 +11,7 @@ public interface FolderManagerConnector {
return this.getClass().getCanonicalName();
}
FolderManager connect(FolderItem item, PluginParameters parameters) throws PluginInitializationException;
FolderManager connect(FolderItem item, Map<String, Object> parameters) throws PluginInitializationException;
}

View File

@ -3,6 +3,7 @@ package org.gcube.common.storagehub.model.storages;
import java.io.InputStream;
import org.gcube.common.storagehub.model.items.AbstractFileItem;
import org.gcube.common.storagehub.model.items.nodes.Content;
public interface StorageBackend {
@ -12,16 +13,15 @@ public interface StorageBackend {
String onMove(AbstractFileItem item);
void onDelete(AbstractFileItem item);
void onDelete(Content item);
MetaInfo upload(InputStream stream, String itemPath);
MetaInfo upload(InputStream stream, String relativePath, String name);
InputStream download(Content item);
InputStream download(String id);
@Deprecated
String getTotalSizeStored();
@Deprecated
String getTotalItemsCount();
}