Feature #21412 Added some missing HL methods needed for performfish apps
This commit is contained in:
parent
3bf02b8d41
commit
cc56f9889f
|
@ -31,8 +31,8 @@
|
|||
</classpathentry>
|
||||
<classpathentry kind="src" output="target/test-classes" path=".apt_generated_tests">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="test" value="true"/>
|
||||
<attribute name="optional" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
|
||||
org.eclipse.jdt.core.compiler.processAnnotations=enabled
|
||||
|
|
12
CHANGELOG.md
12
CHANGELOG.md
|
@ -3,12 +3,16 @@
|
|||
All notable changes to this project will be documented in this file.
|
||||
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [v1-1-0-SNAPSHOT] - 2021-05-12
|
||||
|
||||
Added some methods that were missing
|
||||
|
||||
## [v1-0-1-SNAPSHOT] - 2021-03-03
|
||||
|
||||
Improved JUnit Test
|
||||
|
||||
|
||||
## [v1-0-0] [r4-25-0] - 2020-07-15
|
||||
## [v1-0-0]- 2020-07-15
|
||||
|
||||
#### Enhancements
|
||||
|
||||
|
@ -17,14 +21,14 @@ Improved JUnit Test
|
|||
[#19668] add the method updateDescriptionForItem
|
||||
|
||||
|
||||
## [v0-7-1] [r4-23-0] - 2020-05-18
|
||||
## [v0-7-1] - 2020-05-18
|
||||
|
||||
#### Enhancements
|
||||
|
||||
[#19058] added the folder destination Id to restore operation
|
||||
|
||||
|
||||
## [v0-7-0] [r4-22-0] - 2020-04-16
|
||||
## [v0-7-0] - 2020-04-16
|
||||
|
||||
#### Enhancements
|
||||
|
||||
|
@ -32,7 +36,7 @@ Improved JUnit Test
|
|||
|
||||
|
||||
|
||||
## [v0-6-2] [r4-21-0] - 2020-03-11
|
||||
## [v0-6-2] - 2020-03-11
|
||||
|
||||
#### New features
|
||||
|
||||
|
|
20
pom.xml
20
pom.xml
|
@ -10,7 +10,7 @@
|
|||
</parent>
|
||||
<groupId>org.gcube.common</groupId>
|
||||
<artifactId>storagehub-client-wrapper</artifactId>
|
||||
<version>1.0.1-SNAPSHOT</version>
|
||||
<version>1.1.0-SNAPSHOT</version>
|
||||
<name>storagehub-client-wrapper</name>
|
||||
<description>This is a wrapper of storagehub-client library. It allows to interact with storagehub in a simplified way by exposing several utilities. Moreover, It exposes by another inteface java beans as defined in (the old) HL interfaces</description>
|
||||
<scm>
|
||||
|
@ -143,6 +143,24 @@
|
|||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<configuration>
|
||||
<additionalparam>-Xdoclint:none</additionalparam>
|
||||
<additionalJOption>-Xdoclint:none</additionalJOption>
|
||||
</configuration>
|
||||
<version>3.1.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>generate-doc</id>
|
||||
<phase>install</phase>
|
||||
<goals>
|
||||
<goal>jar</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
|
@ -4,6 +4,7 @@ import java.io.InputStream;
|
|||
import java.net.URL;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
||||
|
@ -15,12 +16,14 @@ import org.gcube.common.storagehub.client.dsl.GenericItemContainer;
|
|||
import org.gcube.common.storagehub.client.dsl.ItemContainer;
|
||||
import org.gcube.common.storagehub.client.dsl.ListResolver;
|
||||
import org.gcube.common.storagehub.client.dsl.ListResolverTyped;
|
||||
import org.gcube.common.storagehub.client.dsl.OpenResolver;
|
||||
import org.gcube.common.storagehub.client.dsl.StorageHubClient;
|
||||
import org.gcube.common.storagehub.client.plugins.AbstractPlugin;
|
||||
import org.gcube.common.storagehub.client.proxies.ItemManagerClient;
|
||||
import org.gcube.common.storagehub.client.proxies.WorkspaceManagerClient;
|
||||
import org.gcube.common.storagehub.model.Metadata;
|
||||
import org.gcube.common.storagehub.model.acls.ACL;
|
||||
import org.gcube.common.storagehub.model.acls.AccessType;
|
||||
import org.gcube.common.storagehub.model.exceptions.StorageHubException;
|
||||
import org.gcube.common.storagehub.model.items.AbstractFileItem;
|
||||
import org.gcube.common.storagehub.model.items.ExternalLink;
|
||||
|
@ -32,7 +35,10 @@ import org.gcube.common.storagehub.model.items.VreFolder;
|
|||
import org.gcube.common.storagehub.model.items.nodes.Accounting;
|
||||
import org.gcube.common.storagehub.model.items.nodes.ImageContent;
|
||||
import org.gcube.common.storagehub.model.service.Version;
|
||||
import org.gcube.common.storagehubwrapper.server.converter.HLMapper;
|
||||
import org.gcube.common.storagehubwrapper.server.converter.ObjectMapper;
|
||||
import org.gcube.common.storagehubwrapper.shared.ACLType;
|
||||
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceSharedFolder;
|
||||
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.ItemNotFoundException;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -141,6 +147,34 @@ public class StorageHubClientService {
|
|||
return theResolver.getItems();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the children.
|
||||
*
|
||||
* @param id the id
|
||||
* @param withAccounting the with accounting
|
||||
* @param withMapProperties the with map properties
|
||||
* @return the children
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
public List<? extends Item> getChildren(String id, boolean withAccounting, boolean withMapProperties, boolean includeHidden) throws Exception{
|
||||
setContextProviders(scope, authorizationToken);
|
||||
logger.trace("Requesting getChildren for id: "+id+" [withAccounting: "+withAccounting+", withMapProperties: "+withMapProperties+"]");
|
||||
if (!includeHidden) {
|
||||
return getChildren(id, withAccounting, withMapProperties);
|
||||
}
|
||||
|
||||
ListResolver theResolver = shClient.open(id).asFolder().list().includeHidden().withContent();
|
||||
|
||||
if(withAccounting)
|
||||
theResolver = theResolver.withAccounting();
|
||||
|
||||
if(withMapProperties)
|
||||
theResolver = theResolver.withMetadata();
|
||||
|
||||
return theResolver.getItems();
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
@ -194,6 +228,26 @@ public class StorageHubClientService {
|
|||
|
||||
return itemCont.get();
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param folderId
|
||||
* @param relativePath
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public Item getItemByPath(String folderId, String relativePath) throws Exception {
|
||||
setContextProviders(scope, authorizationToken);
|
||||
FolderContainer itemCont = shClient.open(folderId).asFolder();
|
||||
FolderContainer attachmentFolder = null;
|
||||
try {
|
||||
OpenResolver oRes = itemCont.openByRelativePath(relativePath);
|
||||
attachmentFolder = oRes.asFolder();
|
||||
return (Item) attachmentFolder.get();
|
||||
} catch (StorageHubException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the item.
|
||||
|
@ -879,7 +933,70 @@ public class StorageHubClientService {
|
|||
shClient.open(itemId).asItem().setMetadata(new Metadata(mapProperties));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the Folder As Hidden or visible .
|
||||
*
|
||||
* @param itemId the folder id
|
||||
* @param hide true to set hide, false to set visible
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
public void setFolderAsHidden(String folderId, boolean hide) throws Exception {
|
||||
Validate.notNull(folderId, "Bad request to setFolderAsHidden the folderId is null");
|
||||
setContextProviders(scope, authorizationToken);
|
||||
FolderContainer folderContainer = shClient.open(folderId).asFolder();
|
||||
if (hide)
|
||||
folderContainer.setHidden(); //will not appear in the workspace GUI
|
||||
else
|
||||
folderContainer.setVisible(); //will appear in the workspace GUI
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param folderId the folder id to share
|
||||
* @param users the users to share
|
||||
* @param type the permission
|
||||
*/
|
||||
public WorkspaceSharedFolder shareFolder(String folderId, Set<String> users, ACLType type) throws Exception {
|
||||
Validate.notNull(folderId, "Bad request to setFolderAsHidden the folderId is null");
|
||||
setContextProviders(scope, authorizationToken);
|
||||
AccessType acType;
|
||||
switch (type) {
|
||||
case READ_ONLY:
|
||||
acType = AccessType.READ_ONLY;
|
||||
break;
|
||||
case ADMINISTRATOR:
|
||||
acType = AccessType.ADMINISTRATOR;
|
||||
break;
|
||||
case WRITE_ALL:
|
||||
acType = AccessType.WRITE_ALL;
|
||||
break;
|
||||
case WRITE_OWNER:
|
||||
acType = AccessType.WRITE_OWNER;
|
||||
break;
|
||||
case NONE:
|
||||
acType = null;
|
||||
break;
|
||||
default:
|
||||
acType = AccessType.WRITE_OWNER;
|
||||
break;
|
||||
}
|
||||
FolderContainer fContainer = shClient.open(folderId).asFolder().share(users, acType);
|
||||
return HLMapper.toWorkspaceItem(fContainer.get());
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param folderId the folder id to share
|
||||
* @param users the users to share
|
||||
*/
|
||||
public WorkspaceSharedFolder unshareFolder(String folderId, Set<String> users) throws Exception {
|
||||
Validate.notNull(folderId, "Bad request to setFolderAsHidden the folderId is null");
|
||||
setContextProviders(scope, authorizationToken);
|
||||
FolderContainer fContainer = shClient.open(folderId).asFolder().unshare(users);
|
||||
return HLMapper.toWorkspaceItem(fContainer.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the URL.
|
||||
|
|
|
@ -11,6 +11,7 @@ import java.util.Arrays;
|
|||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.gcube.common.storagehub.client.StreamDescriptor;
|
||||
|
@ -25,7 +26,9 @@ import org.gcube.common.storagehub.model.items.nodes.accounting.AccountEntry;
|
|||
import org.gcube.common.storagehub.model.service.Version;
|
||||
import org.gcube.common.storagehubwrapper.server.converter.HLMapper;
|
||||
import org.gcube.common.storagehubwrapper.server.tohl.Workspace;
|
||||
import org.gcube.common.storagehubwrapper.shared.ACLType;
|
||||
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem;
|
||||
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceSharedFolder;
|
||||
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InsufficientPrivilegesException;
|
||||
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException;
|
||||
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.ItemAlreadyExistException;
|
||||
|
@ -345,6 +348,33 @@ public final class WorkspaceStorageHubClientService implements Workspace{
|
|||
return toChildren;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the children.
|
||||
*
|
||||
* @param id the id
|
||||
* @return the children
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
/* (non-Javadoc)
|
||||
* @see org.gcube.portal.storagehubwrapper.shared.tohl.Workspace#getChildren(java.lang.String)
|
||||
*/
|
||||
public List<? extends WorkspaceItem> getChildren(String id, boolean includeHidden)throws Exception{
|
||||
|
||||
LOGGER.debug("called get Children include hidden");
|
||||
Validate.notNull(id,"The input id is null");
|
||||
List<? extends Item> children = storageHubClientService.getChildren(id, withAccounting, withMapProperties, includeHidden);
|
||||
List<WorkspaceItem> toChildren = new ArrayList<WorkspaceItem>(children.size());
|
||||
|
||||
for (Item item : children) {
|
||||
WorkspaceItem child = HLMapper.toWorkspaceItem(item, withAccounting, withFileDetails, withMapProperties);
|
||||
toChildren.add(child);
|
||||
}
|
||||
|
||||
return toChildren;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the filtered children.
|
||||
*
|
||||
|
@ -523,6 +553,23 @@ public final class WorkspaceStorageHubClientService implements Workspace{
|
|||
return workspaceItem;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WorkspaceItem getItemByPath(String folderId, String relativePath) throws ItemNotFoundException, InternalErrorException, Exception {
|
||||
LOGGER.debug("called get getItemByPath");
|
||||
Validate.notNull(folderId,"The input folderId is null");
|
||||
Item item;
|
||||
try {
|
||||
item = storageHubClientService.getItemByPath(folderId, relativePath);
|
||||
}
|
||||
catch (Exception e) {
|
||||
LOGGER.error("Error during get item with id: "+folderId,e);
|
||||
throw new InternalErrorException(e.getMessage());
|
||||
}
|
||||
WorkspaceItem workspaceItem = HLMapper.toWorkspaceItem(item, withAccounting, withFileDetails, withMapProperties);
|
||||
setIsRoot((org.gcube.common.storagehubwrapper.shared.tohl.impl.WorkspaceItem) workspaceItem);
|
||||
return workspaceItem;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the item. This call is the same of {@link WorkspaceStorageHubClientService#getItem(String, boolean, boolean, boolean)}
|
||||
* except to getRoot called inside (to check if an item is root or not). {@link WorkspaceItem#isRoot()} returns always false.
|
||||
|
@ -666,7 +713,6 @@ public final class WorkspaceStorageHubClientService implements Workspace{
|
|||
public boolean exists(String name, String folderId)
|
||||
throws InternalErrorException, ItemNotFoundException,
|
||||
WrongItemTypeException {
|
||||
|
||||
LOGGER.debug("called exists");
|
||||
List<WorkspaceItem> foundItems = find(name, folderId);
|
||||
|
||||
|
@ -691,7 +737,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
|
|||
throws InternalErrorException, ItemNotFoundException,
|
||||
WrongItemTypeException {
|
||||
|
||||
LOGGER.debug("called find");
|
||||
LOGGER.debug("called find ");
|
||||
Validate.notNull(folderId,"The input folderid is null");
|
||||
try {
|
||||
List<? extends Item> items = storageHubClientService.findByName(name, folderId);
|
||||
|
@ -1513,4 +1559,22 @@ public final class WorkspaceStorageHubClientService implements Workspace{
|
|||
return updatedDescription;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void setFolderAsHidden(String folderId, boolean hide) throws Exception {
|
||||
storageHubClientService.setFolderAsHidden(folderId, hide);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public WorkspaceSharedFolder shareFolder(String folderId, Set<String> users, ACLType type) throws Exception {
|
||||
return storageHubClientService.shareFolder(folderId, users, type);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public WorkspaceSharedFolder unshareFolder(String folderId, Set<String> users) throws Exception {
|
||||
return storageHubClientService.unshareFolder(folderId, users);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -7,12 +7,15 @@ import java.io.InputStream;
|
|||
import java.net.URL;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.gcube.common.storagehub.model.items.Item;
|
||||
import org.gcube.common.storagehub.model.items.nodes.accounting.AccountEntry;
|
||||
import org.gcube.common.storagehubwrapper.server.WorkspaceStorageHubClientService;
|
||||
import org.gcube.common.storagehubwrapper.shared.ACLType;
|
||||
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceFolder;
|
||||
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem;
|
||||
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceSharedFolder;
|
||||
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InsufficientPrivilegesException;
|
||||
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException;
|
||||
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.ItemAlreadyExistException;
|
||||
|
@ -55,13 +58,23 @@ public interface Workspace {
|
|||
public WorkspaceFolder getRoot() throws InternalErrorException, Exception;
|
||||
|
||||
/**
|
||||
* Gets the children.
|
||||
* Gets the children not including the ones marked as hidden.
|
||||
*
|
||||
* @param id the id
|
||||
* @return the children
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
public List<? extends WorkspaceItem> getChildren(String id) throws Exception;
|
||||
|
||||
/**
|
||||
* Gets the children including the ones marked as hidden if the bool param is true.
|
||||
*
|
||||
* @param id the id
|
||||
* @param hidden true to return also the hidden ones
|
||||
* @return the children
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
public List<? extends WorkspaceItem> getChildren(String id, boolean includeHidden) throws Exception;
|
||||
|
||||
/**
|
||||
* Gets the parents by id.
|
||||
|
@ -99,6 +112,19 @@ public interface Workspace {
|
|||
public WorkspaceItem getItem(String itemId, boolean withAccounting, boolean withFileDetails,
|
||||
boolean withMapProperties) throws ItemNotFoundException, InternalErrorException, Exception;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param idFolder
|
||||
* @param relativePath
|
||||
* @return the item.
|
||||
* @throws ItemNotFoundException if the item has not been found.
|
||||
* @throws InternalErrorException the internal error exception
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
public WorkspaceItem getItemByPath(String idFolder, String relativePath) throws ItemNotFoundException, InternalErrorException, Exception;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Create a new folder with specified name. The new folder is created into the
|
||||
* specified folder.
|
||||
|
@ -591,5 +617,27 @@ public interface Workspace {
|
|||
*/
|
||||
public String updateDescriptionForItem(String itemId, String newDescription) throws Exception;
|
||||
|
||||
|
||||
/**
|
||||
* Sets the Folder As Hidden or visible .
|
||||
*
|
||||
* @param folderId the folder id to set as hidden
|
||||
* @param hide true to set hide, false to set visible
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
public void setFolderAsHidden(String folderId, boolean hide) throws Exception;
|
||||
/**
|
||||
*
|
||||
* @param folderId the folder id to share
|
||||
* @param users the Set of users to share
|
||||
* @param type the permission
|
||||
*/
|
||||
public WorkspaceSharedFolder shareFolder(String folderId, Set<String> users, ACLType type) throws Exception;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param folderId the folder id to share
|
||||
* @param users the Set of users to share
|
||||
* @param type the permission
|
||||
*/
|
||||
public WorkspaceSharedFolder unshareFolder(String folderId, Set<String> users) throws Exception;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue