From e0a11206b7e54a50b432c54a9e8e7b69647db5ea Mon Sep 17 00:00:00 2001 From: roberto cirillo Date: Tue, 22 Dec 2020 17:57:44 +0100 Subject: [PATCH] added token and region parameters. refactoring code --- .../resource/OperationDefinition.java | 2 +- .../{MyFile.java => RequestObject.java} | 44 +++-- .../directoryOperation/DirectoryBucket.java | 12 +- .../directoryOperation/DirectoryEntity.java | 4 +- .../service/impl/AmbiguousResource.java | 4 +- .../service/impl/LocalResource.java | 8 +- .../service/impl/RemoteResource.java | 8 +- .../service/impl/RemoteResourceBoolean.java | 4 +- .../impl/RemoteResourceComplexInfo.java | 6 +- .../impl/RemoteResourceDestination.java | 4 +- .../impl/RemoteResourceFolderInfo.java | 4 +- .../service/impl/RemoteResourceInfo.java | 4 +- .../service/impl/RemoteResourceSource.java | 4 +- .../blobstorage/service/impl/Resource.java | 20 +- .../service/impl/ServiceEngine.java | 171 +++++++++++------- .../service/operation/ChunkConsumer.java | 12 +- .../service/operation/ChunkProducer.java | 8 +- .../blobstorage/service/operation/Close.java | 8 +- .../blobstorage/service/operation/Copy.java | 16 +- .../service/operation/CopyDir.java | 16 +- .../service/operation/Download.java | 14 +- .../service/operation/DownloadAndLock.java | 8 +- .../service/operation/DuplicateFile.java | 14 +- .../blobstorage/service/operation/Exist.java | 8 +- .../service/operation/FileWriter.java | 4 +- .../service/operation/GetFolderCount.java | 8 +- .../operation/GetFolderLastUpdate.java | 8 +- .../service/operation/GetFolderSize.java | 8 +- .../service/operation/GetHttpUrl.java | 10 +- .../service/operation/GetHttpsUrl.java | 10 +- .../service/operation/GetMetaFile.java | 8 +- .../service/operation/GetMetaInfo.java | 8 +- .../service/operation/GetRemotePath.java | 8 +- .../service/operation/GetSize.java | 8 +- .../blobstorage/service/operation/GetTTL.java | 8 +- .../blobstorage/service/operation/GetUrl.java | 10 +- .../service/operation/GetUserTotalItems.java | 8 +- .../service/operation/GetUserTotalVolume.java | 8 +- .../blobstorage/service/operation/Link.java | 16 +- .../blobstorage/service/operation/Lock.java | 16 +- .../service/operation/Monitor.java | 14 +- .../blobstorage/service/operation/Move.java | 16 +- .../service/operation/MoveDir.java | 16 +- .../service/operation/Operation.java | 24 +-- .../service/operation/OperationFactory.java | 10 + .../service/operation/OperationManager.java | 15 +- .../blobstorage/service/operation/Remove.java | 10 +- .../service/operation/RenewTTL.java | 8 +- .../service/operation/SetMetaInfo.java | 8 +- .../service/operation/SoftCopy.java | 16 +- .../blobstorage/service/operation/Unlock.java | 16 +- .../blobstorage/service/operation/Upload.java | 17 +- .../service/operation/UploadAndUnlock.java | 10 +- .../transport/TransportManager.java | 19 +- .../transport/TransportManagerFactory.java | 12 +- .../transport/backend/MongoIOManager.java | 64 +++---- .../backend/MongoOperationManager.java | 22 +-- .../backend/operation/CopyDirOperator.java | 4 +- .../backend/operation/CopyOperator.java | 18 +- .../backend/operation/DuplicateOperator.java | 6 +- .../backend/operation/LinkOperator.java | 6 +- .../backend/operation/LockOperator.java | 4 +- .../backend/operation/MoveDirOperator.java | 4 +- .../backend/operation/MoveOperator.java | 12 +- .../backend/operation/SoftCopyOperator.java | 30 +-- .../backend/operation/UnlockOperator.java | 14 +- .../backend/operation/UploadOperator.java | 20 +- 67 files changed, 516 insertions(+), 448 deletions(-) rename src/main/java/org/gcube/contentmanagement/blobstorage/resource/{MyFile.java => RequestObject.java} (94%) diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/resource/OperationDefinition.java b/src/main/java/org/gcube/contentmanagement/blobstorage/resource/OperationDefinition.java index a5e4cf4..d714d0f 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/resource/OperationDefinition.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/resource/OperationDefinition.java @@ -16,7 +16,7 @@ package org.gcube.contentmanagement.blobstorage.resource; * * It means that the client would be upload a file that have an absolute local path defined in pathClient field, * on the remote location identifies by pathServer field of the resource MyFile - * @see org.gcube.contentmanagement.blobstorage.resource.MyFile + * @see org.gcube.contentmanagement.blobstorage.resource.RequestObject * * @author Roberto Cirillo (ISTI-CNR) * diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/resource/MyFile.java b/src/main/java/org/gcube/contentmanagement/blobstorage/resource/RequestObject.java similarity index 94% rename from src/main/java/org/gcube/contentmanagement/blobstorage/resource/MyFile.java rename to src/main/java/org/gcube/contentmanagement/blobstorage/resource/RequestObject.java index 0c745a3..f1bd800 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/resource/MyFile.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/resource/RequestObject.java @@ -19,7 +19,7 @@ import org.slf4j.LoggerFactory; * @author Roberto Cirillo (ISTI - CNR) * */ -public class MyFile { +public class RequestObject { // file name private String name; @@ -88,9 +88,17 @@ public class MyFile { private String readPreference; private String rootPath; private boolean replace=false; - final Logger logger = LoggerFactory.getLogger(MyFile.class); + private String token; + private String region; - public MyFile(boolean lock){ + + + + + final Logger logger = LoggerFactory.getLogger(RequestObject.class); + + + public RequestObject(boolean lock){ setLock(lock); } @@ -100,7 +108,7 @@ public class MyFile { * @param name name of the file * @param pathClient local path of the file */ - public MyFile(String author, String name, String pathClient, MemoryType memoryType){ + public RequestObject(String author, String name, String pathClient, MemoryType memoryType){ this.setOwner(author); this.setName(name); this.setLocalPath(pathClient); @@ -115,7 +123,7 @@ public class MyFile { * @param pathServer remote path of the file */ - public MyFile(String author, String name, String pathClient, String pathServer, MemoryType memoryType){ + public RequestObject(String author, String name, String pathClient, String pathServer, MemoryType memoryType){ this.setOwner(author); this.setName(name); this.setLocalPath(pathClient); @@ -123,7 +131,7 @@ public class MyFile { setGcubeMemoryType(memoryType); } - public MyFile(MemoryType memoryType) { + public RequestObject(MemoryType memoryType) { setGcubeMemoryType(memoryType); } @@ -132,7 +140,7 @@ public class MyFile { * build a new object with only the name setted * @param name file name */ - public MyFile(String name, MemoryType memoryType){ + public RequestObject(String name, MemoryType memoryType){ setName(name); setGcubeMemoryType(memoryType); } @@ -237,8 +245,8 @@ public class MyFile { * returns a copy of the current resource * @return the file copy */ - public MyFile copyProperties(){ - MyFile dest=new MyFile(getGcubeMemoryType()); + public RequestObject copyProperties(){ + RequestObject dest=new RequestObject(getGcubeMemoryType()); dest.setOwner(getOwner()); dest.setLocalDir(this.getLocalDir()); dest.setRemoteDir(this.getRemoteDir()); @@ -689,6 +697,20 @@ public class MyFile { public void setId2(String id2) { this.id2 = id2; } - - + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + + public void setRegion(String region) { + this.region=region; + + } + public String getRegion() { + return region; + } + } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/directoryOperation/DirectoryBucket.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/directoryOperation/DirectoryBucket.java index 5687e0b..69f5d39 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/directoryOperation/DirectoryBucket.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/directoryOperation/DirectoryBucket.java @@ -5,7 +5,7 @@ import java.net.UnknownHostException; import java.util.Iterator; import java.util.Map; import java.util.Set; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.StorageObject; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; @@ -85,13 +85,13 @@ public class DirectoryBucket { * @param bucket remote file to remove */ @Deprecated - public void removeKeysOnDirBucket(MyFile resource, String bucket, String rootArea, String backendType, String[] dbNames){ + public void removeKeysOnDirBucket(RequestObject resource, String bucket, String rootArea, String backendType, String[] dbNames){ if(logger.isDebugEnabled()) logger.debug("CHECK REMOVE: "+bucket); String[] bucketList=null; bucketList=retrieveBucketsName(path, rootArea); TransportManagerFactory tmf=new TransportManagerFactory(server, user, password); - TransportManager tm=tmf.getTransport(backendType, resource.getGcubeMemoryType(), dbNames, resource.getWriteConcern(), resource.getReadPreference()); + TransportManager tm=tmf.getTransport(backendType, resource.getGcubeMemoryType(), dbNames, resource.getWriteConcern(), resource.getReadPreference(), resource.getToken(), resource.getRegion()); // TerrastoreClient client=new TerrastoreClient( new OrderedHostManager(Arrays.asList(server)), new HTTPConnectionFactory()); for(int i=0;i dirs=null; try{ diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/directoryOperation/DirectoryEntity.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/directoryOperation/DirectoryEntity.java index bab7704..2508483 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/directoryOperation/DirectoryEntity.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/directoryOperation/DirectoryEntity.java @@ -1,6 +1,6 @@ package org.gcube.contentmanagement.blobstorage.service.directoryOperation; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; /** @@ -38,7 +38,7 @@ public class DirectoryEntity { setAuthor(author); } - public DirectoryEntity(String dir, String author, MyFile file){ + public DirectoryEntity(String dir, String author, RequestObject file){ setDirectory(dir); setAuthor(author); } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/AmbiguousResource.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/AmbiguousResource.java index 9f21fd4..eda5a1d 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/AmbiguousResource.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/AmbiguousResource.java @@ -1,6 +1,6 @@ package org.gcube.contentmanagement.blobstorage.service.impl; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.LOCAL_RESOURCE; /** * This class is used from methods that can have both a RemoteResource or a LocalResource @@ -10,7 +10,7 @@ import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.LOCA */ public class AmbiguousResource extends RemoteResource { - public AmbiguousResource(MyFile file, ServiceEngine engine) { + public AmbiguousResource(RequestObject file, ServiceEngine engine) { super(file, engine); } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/LocalResource.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/LocalResource.java index c37e740..9c02ed5 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/LocalResource.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/LocalResource.java @@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.impl; import java.io.InputStream; import java.io.OutputStream; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.LOCAL_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; @@ -17,7 +17,7 @@ import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMO public class LocalResource extends Resource{ - public LocalResource(MyFile file, ServiceEngine engine) { + public LocalResource(RequestObject file, ServiceEngine engine) { super(file, engine); } @@ -46,7 +46,7 @@ public class LocalResource extends Resource{ if(getMyFile() != null){ getMyFile().setInputStream(is); }else{ - setMyFile(new MyFile(engine.getGcubeMemoryType())); + setMyFile(new RequestObject(engine.getGcubeMemoryType())); getMyFile().setInputStream(is); } getMyFile().setLocalResource(LOCAL_RESOURCE.INPUT_STREAM); @@ -62,7 +62,7 @@ public class LocalResource extends Resource{ if(getMyFile() != null){ getMyFile().setOutputStream(os); }else{ - setMyFile(new MyFile(engine.getGcubeMemoryType())); + setMyFile(new RequestObject(engine.getGcubeMemoryType())); getMyFile().setOutputStream(os); } getMyFile().setLocalResource(LOCAL_RESOURCE.OUTPUT_STREAM); diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResource.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResource.java index c66a1c0..dff94b4 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResource.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResource.java @@ -4,7 +4,7 @@ import java.net.UnknownHostException; import java.util.Collections; import java.util.List; import java.util.Map; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryEntity; @@ -29,7 +29,7 @@ public class RemoteResource extends Resource{ - public RemoteResource(MyFile file, ServiceEngine engine) { + public RemoteResource(RequestObject file, ServiceEngine engine) { super(file, engine); logger.info("file gCube parameter costructor: "+file.getGcubeAccessType()+" "+file.getGcubeScope()); } @@ -112,7 +112,7 @@ public class RemoteResource extends Resource{ if(engine.getCurrentOperation().equalsIgnoreCase("showdir")){ dir = new BucketCoding().bucketDirCoding(dir, engine.getContext()); TransportManagerFactory tmf= new TransportManagerFactory(engine.primaryBackend, engine.getBackendUser(), engine.getBackendPassword()); - TransportManager tm=tmf.getTransport(engine.getBackendType(), engine.getGcubeMemoryType(), engine.getDbNames(), engine.getWriteConcern(), engine.getReadConcern()); + TransportManager tm=tmf.getTransport(engine.getBackendType(), engine.getGcubeMemoryType(), engine.getDbNames(), engine.getWriteConcern(), engine.getReadConcern(), engine.getToken(), engine.getRegion()); Map mapDirs=null; try { mapDirs = tm.getValues(getMyFile(), dir, DirectoryEntity.class); @@ -133,7 +133,7 @@ public class RemoteResource extends Resource{ dirBuc.removeDirBucket(getMyFile(), dir, engine.getContext(), engine.getBackendType(), engine.getDbNames()); else{ TransportManagerFactory tmf=new TransportManagerFactory(engine.primaryBackend, engine.getBackendUser(), engine.getBackendPassword()); - TransportManager tm=tmf.getTransport(Costants.CLIENT_TYPE, engine.getGcubeMemoryType(), engine.getDbNames(), engine.getWriteConcern(), engine.getReadConcern()); + TransportManager tm=tmf.getTransport(Costants.CLIENT_TYPE, engine.getGcubeMemoryType(), engine.getDbNames(), engine.getWriteConcern(), engine.getReadConcern(), engine.getToken(), engine.getRegion()); dir=new BucketCoding().bucketFileCoding(dir, engine.getContext()); try { tm.removeDir(dir, getMyFile()); diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceBoolean.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceBoolean.java index 1daf672..1155ce3 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceBoolean.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceBoolean.java @@ -3,7 +3,7 @@ */ package org.gcube.contentmanagement.blobstorage.service.impl; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; @@ -17,7 +17,7 @@ public class RemoteResourceBoolean extends Resource{ * @param file * @param engine */ - public RemoteResourceBoolean(MyFile file, ServiceEngine engine) { + public RemoteResourceBoolean(RequestObject file, ServiceEngine engine) { super(file, engine); logger.info("file gCube parameter costructor: "+file.getGcubeAccessType()+" "+file.getGcubeScope()); } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceComplexInfo.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceComplexInfo.java index 3bc370b..bf5bdbf 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceComplexInfo.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceComplexInfo.java @@ -1,6 +1,6 @@ package org.gcube.contentmanagement.blobstorage.service.impl; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; @@ -12,7 +12,7 @@ import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendEx public class RemoteResourceComplexInfo extends Resource{ - public RemoteResourceComplexInfo(MyFile file, ServiceEngine engine) { + public RemoteResourceComplexInfo(RequestObject file, ServiceEngine engine) { super(file, engine); } @@ -23,7 +23,7 @@ public class RemoteResourceComplexInfo extends Resource{ * @throws RemoteBackendException if there are runtime exception from the remote backend */ - public MyFile RFile(String path) throws RemoteBackendException{ + public RequestObject RFile(String path) throws RemoteBackendException{ setMyFile(setGenericProperties(engine.getContext(), engine.owner, path, "remote")); getMyFile().setRemotePath(path); getMyFile().setRemoteResource(REMOTE_RESOURCE.PATH); diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceDestination.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceDestination.java index 3ae2470..999a061 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceDestination.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceDestination.java @@ -1,7 +1,7 @@ package org.gcube.contentmanagement.blobstorage.service.impl; import org.bson.types.ObjectId; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; @@ -12,7 +12,7 @@ import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendEx */ public class RemoteResourceDestination extends Resource{ - public RemoteResourceDestination(MyFile file, ServiceEngine engine) { + public RemoteResourceDestination(RequestObject file, ServiceEngine engine) { super(file, engine); } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceFolderInfo.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceFolderInfo.java index d151d2e..4783385 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceFolderInfo.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceFolderInfo.java @@ -1,6 +1,6 @@ package org.gcube.contentmanagement.blobstorage.service.impl; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; @@ -18,7 +18,7 @@ public class RemoteResourceFolderInfo extends Resource { private String gcubeAccessType; private String gcubeMemoryType; - public RemoteResourceFolderInfo(MyFile file, ServiceEngine engine) { + public RemoteResourceFolderInfo(RequestObject file, ServiceEngine engine) { super(file, engine); } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceInfo.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceInfo.java index 6297d2b..6e5df68 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceInfo.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceInfo.java @@ -1,6 +1,6 @@ package org.gcube.contentmanagement.blobstorage.service.impl; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; @@ -14,7 +14,7 @@ import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendEx public class RemoteResourceInfo extends Resource{ - public RemoteResourceInfo(MyFile file, ServiceEngine engine) { + public RemoteResourceInfo(RequestObject file, ServiceEngine engine) { super(file, engine); } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceSource.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceSource.java index 345f419..b17ea16 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceSource.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/RemoteResourceSource.java @@ -1,7 +1,7 @@ package org.gcube.contentmanagement.blobstorage.service.impl; import org.bson.types.ObjectId; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.LOCAL_RESOURCE; /** @@ -11,7 +11,7 @@ import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.LOCA */ public class RemoteResourceSource extends Resource { - public RemoteResourceSource(MyFile file, ServiceEngine engine) { + public RemoteResourceSource(RequestObject file, ServiceEngine engine) { super(file, engine); } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/Resource.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/Resource.java index d24694f..d42d634 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/Resource.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/Resource.java @@ -1,7 +1,7 @@ package org.gcube.contentmanagement.blobstorage.service.impl; import org.bson.types.ObjectId; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; import org.gcube.contentmanagement.blobstorage.transport.backend.util.Costants; @@ -19,11 +19,11 @@ public class Resource { final Logger logger = LoggerFactory.getLogger(ServiceEngine.class); protected static final String BACKEND_STRING_SEPARATOR="%"; - protected MyFile file; + protected RequestObject file; protected ServiceEngine engine; - public Resource(MyFile file, ServiceEngine engine){ + public Resource(RequestObject file, ServiceEngine engine){ setMyFile(file); setEngine(engine); } @@ -36,11 +36,11 @@ public class Resource { this.engine = engine; } - protected MyFile getMyFile(){ + protected RequestObject getMyFile(){ return file; } - protected void setMyFile(MyFile f){ + protected void setMyFile(RequestObject f){ if (f!=null) file=f; else @@ -56,11 +56,11 @@ public class Resource { * @param type remote or local * @return the current resource */ - protected MyFile setGenericProperties(String context, String owner, String path, String type) { + protected RequestObject setGenericProperties(String context, String owner, String path, String type) { if((path != null) && (path.length()>0)){ if(ObjectId.isValid(path)){ if(file==null) - file= new MyFile(path, engine.getGcubeMemoryType()); + file= new RequestObject(path, engine.getGcubeMemoryType()); String id = file.getId(); if((id != null) && (!id.isEmpty())) file.setId2(path); @@ -75,7 +75,7 @@ public class Resource { logger.debug("path(String) - name: " + name); } if(file == null){ - file= new MyFile(name, engine.getGcubeMemoryType()); + file= new RequestObject(name, engine.getGcubeMemoryType()); }else{ file.setName(name); } @@ -107,7 +107,7 @@ public class Resource { return file; } - protected Object getRemoteObject(MyFile file, String[] backend, String[] vltBackend)throws RemoteBackendException { + protected Object getRemoteObject(RequestObject file, String[] backend, String[] vltBackend)throws RemoteBackendException { Object obj=null; try{ obj=retrieveRemoteObject(file, backend); @@ -122,7 +122,7 @@ public class Resource { return obj; } - protected Object retrieveRemoteObject(MyFile file, String[] backend) throws RemoteBackendException { + protected Object retrieveRemoteObject(RequestObject file, String[] backend) throws RemoteBackendException { Object obj=null; if(((file.getInputStream() != null) || (file.getOutputStream()!=null)) || ((file.getLocalPath() != null) || (file.getRemotePath() != null))) obj=engine.service.startOperation(file,file.getRemotePath(), file.getOwner(), backend, Costants.DEFAULT_CHUNK_OPTION, file.getRootPath(), file.isReplace()); diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/ServiceEngine.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/ServiceEngine.java index 6932871..3f24b37 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/ServiceEngine.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/impl/ServiceEngine.java @@ -4,11 +4,12 @@ import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import org.gcube.contentmanagement.blobstorage.resource.AccessType; import org.gcube.contentmanagement.blobstorage.resource.MemoryType; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.StorageObject; @@ -44,7 +45,7 @@ public class ServiceEngine implements IClient { public String[] primaryBackend; public String[] volatileBackend; protected OperationManager service; - protected MyFile file; + protected RequestObject file; protected String bucket; protected String bucketID; protected String author; @@ -71,13 +72,19 @@ public class ServiceEngine implements IClient { private String user; //backend server password private String password; +// if the backend is mongodb, this field is used for crypt/decrypt. If the backend is S3, this field is a token. private String passPhrase; private String resolverHost; private String[] dbNames; // private static final String DEFAULT_RESOLVER_HOST= "data.d4science.org"; private String write; private String read; + private String token; + private String region; + + + public ServiceEngine(String[] server){ this.primaryBackend=server; } @@ -142,24 +149,24 @@ public class ServiceEngine implements IClient { } - public String getPublicArea() { + private String getPublicArea() { return publicArea; } - public void setPublicArea(String publicArea) { + private void setPublicArea(String publicArea) { logger.trace("public area is "+publicArea); this.publicArea = publicArea; } - public String getHomeArea() { + private String getHomeArea() { return homeArea; } - public void setHomeArea(String rootPath) { + private void setHomeArea(String rootPath) { this.homeArea = rootPath; } - public String getEnvironment() { + private String getEnvironment() { return environment; } @@ -167,7 +174,7 @@ public class ServiceEngine implements IClient { * set the remote root path * @param environment */ - public void setEnvironment(String environment) { + private void setEnvironment(String environment) { // delete initial / from variable environment String newEnv=environment; int ind=newEnv.indexOf('/'); @@ -179,11 +186,11 @@ public class ServiceEngine implements IClient { this.environment = newEnv; } - public String getBucketID() { + private String getBucketID() { return bucketID; } - public void setBucketID(String bucketID) { + private void setBucketID(String bucketID) { this.bucketID=bucketID; } @@ -210,7 +217,7 @@ public class ServiceEngine implements IClient { logger.debug("get() - start"); } setCurrentOperation("download"); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); file=setOperationInfo(file, OPERATION.DOWNLOAD); return new LocalResource(file, this); } @@ -235,7 +242,7 @@ public class ServiceEngine implements IClient { logger.debug("get() - start"); } setCurrentOperation("getSize"); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); file=setOperationInfo(file, OPERATION.GET_SIZE); return new RemoteResourceInfo(file, this); } @@ -248,7 +255,7 @@ public class ServiceEngine implements IClient { logger.debug("get() - start"); } setCurrentOperation("getMetaFile"); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); file=setOperationInfo(file, OPERATION.GET_META_FILE); return new RemoteResourceComplexInfo(file, this); } @@ -259,7 +266,7 @@ public class ServiceEngine implements IClient { logger.debug("get() - start"); } setCurrentOperation("getTotalUserVolume"); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); file=setOperationInfo(file, OPERATION.GET_TOTAL_USER_VOLUME); file = new Resource(file, this).setGenericProperties(getContext(), owner, null, "remote"); file.setRemotePath("/"); @@ -291,7 +298,7 @@ public class ServiceEngine implements IClient { logger.debug("get() - start"); } setCurrentOperation("getTotalUserItems"); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); file=setOperationInfo(file, OPERATION.GET_USER_TOTAL_ITEMS); file = new Resource(file, this).setGenericProperties(getContext(), owner, "", "remote"); file.setRemotePath("/"); @@ -323,7 +330,7 @@ public class ServiceEngine implements IClient { logger.debug("get() - start"); } setCurrentOperation("getFolderSize"); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); file=setOperationInfo(file, OPERATION.GET_FOLDER_TOTAL_VOLUME); return new RemoteResourceFolderInfo(file, this); } @@ -334,7 +341,7 @@ public class ServiceEngine implements IClient { logger.debug("get() - start"); } setCurrentOperation("getFolderCount"); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); file=setOperationInfo(file, OPERATION.GET_FOLDER_TOTAL_ITEMS); return new RemoteResourceFolderInfo(file, this); } @@ -345,7 +352,7 @@ public class ServiceEngine implements IClient { logger.debug("get() - start"); } setCurrentOperation("getFolderLastUpdate"); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); file=setOperationInfo(file, OPERATION.GET_FOLDER_LAST_UPDATE); return new RemoteResourceFolderInfo(file, this); } @@ -365,7 +372,7 @@ public class ServiceEngine implements IClient { } setCurrentOperation("upload"); setReplaceOption(replace); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames(), getToken()); file=setOperationInfo(file, OPERATION.UPLOAD); file.setReplaceOption(replace); return new LocalResource(file, this); @@ -387,7 +394,7 @@ public class ServiceEngine implements IClient { } setCurrentOperation("upload"); setReplaceOption(replace); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames(), getToken()); file=setOperationInfo(file, OPERATION.UPLOAD); file=setMimeType(file, mimeType); file.setReplaceOption(replace); @@ -407,7 +414,7 @@ public class ServiceEngine implements IClient { @Override public RemoteResource remove(String backendType){ backendType=setBackendType(backendType); - file=new MyFile(getGcubeMemoryType()); + file=new RequestObject(getGcubeMemoryType()); file.setGcubeAccessType(this.getGcubeAccessType()); file.setGcubeScope(this.getGcubeScope()); file.setOwnerGcube(this.getOwnerGcube()); @@ -416,16 +423,16 @@ public class ServiceEngine implements IClient { // remove object operation setCurrentOperation("remove"); file=setOperationInfo(file, OPERATION.REMOVE); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); return new RemoteResource(file, this); } - public MyFile getMyFile() { + public RequestObject getMyFile() { return file; } - public void setMyFile(MyFile myFile) { + public void setMyFile(RequestObject myFile) { this.file = myFile; } @@ -452,7 +459,7 @@ public class ServiceEngine implements IClient { @Override public RemoteResource showDir(String backendType){ backendType=setBackendType(backendType); - file=new MyFile(this.getGcubeMemoryType()); + file=new RequestObject(this.getGcubeMemoryType()); file.setGcubeAccessType(this.getGcubeAccessType()); file.setGcubeScope(this.getGcubeScope()); file.setOwnerGcube(this.getOwnerGcube()); @@ -490,7 +497,7 @@ public class ServiceEngine implements IClient { @Override public RemoteResource removeDir(String backendType){ backendType=setBackendType(backendType); - file=new MyFile(this.getGcubeMemoryType()); + file=new RequestObject(this.getGcubeMemoryType()); file.setGcubeAccessType(this.getGcubeAccessType()); file.setGcubeScope(this.getGcubeScope()); file.setOwnerGcube(this.getOwnerGcube()); @@ -522,7 +529,7 @@ public class ServiceEngine implements IClient { @Override public RemoteResource getUrl(String backendType, boolean forceCreation){ backendType=setBackendType(backendType); - file=new MyFile(this.getGcubeMemoryType()); + file=new RequestObject(this.getGcubeMemoryType()); file.setGcubeAccessType(this.getGcubeAccessType()); file.setGcubeScope(this.getGcubeScope()); file.setOwnerGcube(this.getOwnerGcube()); @@ -533,7 +540,7 @@ public class ServiceEngine implements IClient { file.setPassPhrase(passPhrase); setCurrentOperation("getUrl"); file=setOperationInfo(file, OPERATION.GET_URL); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); RemoteResource resource=new RemoteResource(file, this); return resource; } @@ -557,7 +564,7 @@ public class ServiceEngine implements IClient { @Override public RemoteResource getHttpUrl(String backendType, boolean forceCreation){ backendType=setBackendType(backendType); - file=new MyFile(this.getGcubeMemoryType()); + file=new RequestObject(this.getGcubeMemoryType()); file.setGcubeAccessType(this.getGcubeAccessType()); file.setGcubeScope(this.getGcubeScope()); file.setOwnerGcube(this.getOwnerGcube()); @@ -568,7 +575,7 @@ public class ServiceEngine implements IClient { file.setPassPhrase(passPhrase); setCurrentOperation("getHttpUrl"); file=setOperationInfo(file, OPERATION.GET_HTTP_URL); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); RemoteResource resource=new RemoteResource(file, this); return resource; } @@ -594,7 +601,7 @@ public class ServiceEngine implements IClient { @Override public RemoteResource getHttpsUrl(String backendType, boolean forceCreation){ backendType=setBackendType(backendType); - file=new MyFile(this.getGcubeMemoryType()); + file=new RequestObject(this.getGcubeMemoryType()); file.setGcubeAccessType(this.getGcubeAccessType()); file.setGcubeScope(this.getGcubeScope()); file.setOwnerGcube(this.getOwnerGcube()); @@ -605,7 +612,7 @@ public class ServiceEngine implements IClient { file.setPassPhrase(passPhrase); setCurrentOperation("getHttpsUrl"); file=setOperationInfo(file, OPERATION.GET_HTTPS_URL); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); RemoteResource resource=new RemoteResource(file, this); return resource; } @@ -667,9 +674,9 @@ public class ServiceEngine implements IClient { public AmbiguousResource lock(String backendType) { backendType=setBackendType(backendType); - file = new MyFile(true); + file = new RequestObject(true); setCurrentOperation("lock"); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); file=setOperationInfo(file, OPERATION.LOCK); return new AmbiguousResource(file, this); } @@ -683,12 +690,12 @@ public class ServiceEngine implements IClient { @Override public AmbiguousResource unlock(String key, String backendType) { backendType=setBackendType(backendType); - file=new MyFile(this.getGcubeMemoryType()); + file=new RequestObject(this.getGcubeMemoryType()); file.setLockedKey(key); // put(true); setCurrentOperation("unlock"); file=setOperationInfo(file, OPERATION.UNLOCK); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); return new AmbiguousResource(file, this); } @@ -701,11 +708,11 @@ public class ServiceEngine implements IClient { @Override public RemoteResourceInfo getTTL(String backendType) { backendType=setBackendType(backendType); - file=new MyFile(this.getGcubeMemoryType()); + file=new RequestObject(this.getGcubeMemoryType()); // put(true); setCurrentOperation("getTTL"); file=setOperationInfo(file, OPERATION.GET_TTL); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); return new RemoteResourceInfo(file, this); } @@ -719,11 +726,11 @@ public class ServiceEngine implements IClient { @Override public RemoteResource getMetaInfo(String field, String backendType) { backendType=setBackendType(backendType); - file=new MyFile(this.getGcubeMemoryType()); + file=new RequestObject(this.getGcubeMemoryType()); file.setGenericPropertyField(field); setCurrentOperation("getMetaInfo"); file=setOperationInfo(file, OPERATION.GET_META_INFO); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); return new RemoteResource(file, this); } @@ -735,12 +742,12 @@ public class ServiceEngine implements IClient { @Override public RemoteResource setMetaInfo(String field, String value, String backendType) { backendType=setBackendType(backendType); - file=new MyFile(this.getGcubeMemoryType()); + file=new RequestObject(this.getGcubeMemoryType()); file.setGenericPropertyField(field); file.setGenericPropertyValue(value); setCurrentOperation("setMetaInfo"); file=setOperationInfo(file, OPERATION.SET_META_INFO); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); return new RemoteResource(file, this); } @@ -752,12 +759,12 @@ public class ServiceEngine implements IClient { @Override public RemoteResourceInfo renewTTL(String key, String backendType) { backendType=setBackendType(backendType); - file=new MyFile(this.getGcubeMemoryType()); + file=new RequestObject(this.getGcubeMemoryType()); file.setLockedKey(key); // put(true); setCurrentOperation("renewTTL"); file=setOperationInfo(file, OPERATION.RENEW_TTL); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); return new RemoteResourceInfo(file, this); } @@ -774,7 +781,7 @@ public class ServiceEngine implements IClient { file=null; setCurrentOperation("link"); file=setOperationInfo(file, OPERATION.LINK); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames(), getToken()); return new RemoteResourceSource(file, this); } @@ -803,7 +810,7 @@ public class ServiceEngine implements IClient { setCurrentOperation("copy"); file=setOperationInfo(file, OPERATION.COPY); file.setReplaceOption(replaceOption); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames(), getToken()); return new RemoteResourceSource(file, this); } @@ -820,7 +827,7 @@ public class ServiceEngine implements IClient { file=null; setCurrentOperation("duplicate"); file=setOperationInfo(file, OPERATION.DUPLICATE); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames(), getToken()); return new RemoteResource(file, this); } @@ -846,7 +853,7 @@ public class ServiceEngine implements IClient { setCurrentOperation("softcopy"); file=setOperationInfo(file, OPERATION.SOFT_COPY); file.setReplaceOption(replaceOption); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames(), getToken()); return new RemoteResourceSource(file, this); } @@ -865,7 +872,7 @@ public class ServiceEngine implements IClient { file=null; setCurrentOperation("move"); file=setOperationInfo(file, OPERATION.MOVE); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames(), getToken()); return new RemoteResourceSource(file, this); } @@ -882,7 +889,7 @@ public class ServiceEngine implements IClient { file=null; setCurrentOperation("copy_dir"); file=setOperationInfo(file, OPERATION.COPY_DIR); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames(), getToken()); return new RemoteResourceSource(file, this); } @@ -899,7 +906,7 @@ public class ServiceEngine implements IClient { file=null; setCurrentOperation("move_dir"); file=setOperationInfo(file, OPERATION.MOVE_DIR); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames(), getToken()); return new RemoteResourceSource(file, this); } @@ -994,20 +1001,24 @@ public class ServiceEngine implements IClient { // this.gcubeMemoryType = gcubeMemoryType; } - private MyFile setOperationInfo(MyFile file, OPERATION op) { + private RequestObject setOperationInfo(RequestObject file, OPERATION op) { if(file==null) - file=new MyFile(this.getGcubeMemoryType()); + file=new RequestObject(this.getGcubeMemoryType()); file.setOperation(op); if(getWriteConcern() != null) file.setWriteConcern(getWriteConcern()); if(getReadConcern() != null) file.setReadPreference(getReadConcern()); + if(!Objects.isNull(getToken())) + file.setToken(getToken()); + if(!Objects.isNull(getRegion())) + file.setRegion(getRegion()); return file; } - private MyFile setMimeType(MyFile file, String mime) { + private RequestObject setMimeType(RequestObject file, String mime) { if(file==null) - file=new MyFile(this.getGcubeMemoryType()); + file=new RequestObject(this.getGcubeMemoryType()); file.setMimeType(mime); return file; } @@ -1063,30 +1074,35 @@ public class ServiceEngine implements IClient { public String getId(String id){ - if(ObjectId.isValid(id)) - return id; - try { - if(Base64.isBase64(id)){ - byte[] valueDecoded= Base64.decodeBase64(id); - String encryptedID = new String(valueDecoded); - return new Encrypter("DES", getPassPhrase()).decrypt(encryptedID); - }else{ - return new Encrypter("DES", getPassPhrase()).decrypt(id); + if (getBackendType().equals("MongoDB")){ + if(ObjectId.isValid(id)) + return id; + try { + if(Base64.isBase64(id)){ + byte[] valueDecoded= Base64.decodeBase64(id); + String encryptedID = new String(valueDecoded); + return new Encrypter("DES", getPassPhrase()).decrypt(encryptedID); + }else{ + return new Encrypter("DES", getPassPhrase()).decrypt(id); + } + } catch (EncryptionException e) { + e.printStackTrace(); } - } catch (EncryptionException e) { - e.printStackTrace(); + }else { + throw new RemoteBackendException("THe backend is not mongodb, the id cannot be decrypted because it should be not crypted"); } + return null; } public RemoteResource getRemotePath(){ backendType=setBackendType(backendType); - file=new MyFile(this.getGcubeMemoryType()); + file=new RequestObject(this.getGcubeMemoryType()); // put(true); setCurrentOperation("getRemotePath"); file=setOperationInfo(file, OPERATION.GET_REMOTE_PATH); file.setRootPath(this.getPublicArea()); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); return new RemoteResource(file, this); } @@ -1134,7 +1150,7 @@ public class ServiceEngine implements IClient { } - protected String[] getDbNames(){ + public String[] getDbNames(){ return this.dbNames; } @@ -1157,9 +1173,24 @@ public class ServiceEngine implements IClient { logger.debug("get() - start"); } setCurrentOperation("exist"); - this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); + this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken()); file=setOperationInfo(file, OPERATION.EXIST); return new RemoteResourceBoolean(file, this); } + + public String getToken() { + return token; + } + public void setToken(String token) { + this.token = token; + } + + public String getRegion() { + return region; + } + + public void setRegion(String region) { + this.region = region; + } } \ No newline at end of file diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/ChunkConsumer.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/ChunkConsumer.java index bd8b631..6dd1e7a 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/ChunkConsumer.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/ChunkConsumer.java @@ -1,6 +1,6 @@ package org.gcube.contentmanagement.blobstorage.service.operation; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.backend.operation.UploadOperator; @@ -28,7 +28,7 @@ public class ChunkConsumer implements Runnable { boolean isChunk=false; String[] dbNames; public static ThreadLocal client=new ThreadLocal(); - public static ThreadLocal resource=new ThreadLocal(); + public static ThreadLocal resource=new ThreadLocal(); private boolean replaceOpt; Thread producer; @@ -36,7 +36,7 @@ public class ChunkConsumer implements Runnable { if (logger.isDebugEnabled()) { logger.debug("run() - start"); } - MyFile request = null; + RequestObject request = null; synchronized (ChunkConsumer.class) { request=monitor.getRequest(); resource.set(request); @@ -48,7 +48,7 @@ public class ChunkConsumer implements Runnable { } } - private void connection(MyFile richiesta) { + private void connection(RequestObject richiesta) { if (logger.isDebugEnabled()) { logger.debug("connection(MyFile) - start"); } @@ -107,7 +107,7 @@ public class ChunkConsumer implements Runnable { return server; } - private void putInTerrastore(MyFile myFile) { + private void putInTerrastore(RequestObject myFile) { if (logger.isDebugEnabled()) { logger.debug("putInTerrastore(MyFile) - start"); } @@ -117,7 +117,7 @@ public class ChunkConsumer implements Runnable { synchronized(ChunkConsumer.class){ String [] randomServer=randomizeServer(server); TransportManagerFactory tmf=new TransportManagerFactory(randomServer, null, null); - client.set(tmf.getTransport(Costants.CLIENT_TYPE, null, null, myFile.getWriteConcern(), myFile.getReadPreference())); + client.set(tmf.getTransport(Costants.CLIENT_TYPE, null, null, myFile.getWriteConcern(), myFile.getReadPreference(), myFile.getToken(), myFile.getRegion())); } if(logger.isDebugEnabled()){ logger.debug("waiting time for upload: " diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/ChunkProducer.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/ChunkProducer.java index 10c4d99..dc6df35 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/ChunkProducer.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/ChunkProducer.java @@ -9,7 +9,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import org.apache.commons.io.IOUtils; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.transport.backend.util.Costants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,7 +22,7 @@ import org.slf4j.LoggerFactory; */ public class ChunkProducer implements Runnable{ - MyFile resource; + RequestObject resource; long dimensionChunk; int totChunks; int nThreads; @@ -31,7 +31,7 @@ public class ChunkProducer implements Runnable{ String bucketName; final Logger logger=LoggerFactory.getLogger(ChunkProducer.class); - public ChunkProducer(Monitor monitor, MyFile resource, long dimensionChunk, int totChunks, + public ChunkProducer(Monitor monitor, RequestObject resource, long dimensionChunk, int totChunks, int nThreads, String bucket, ChunkConsumer consumer ) throws FileNotFoundException{ this.resource=resource; this.dimensionChunk=dimensionChunk; @@ -77,7 +77,7 @@ public class ChunkProducer implements Runnable{ //---- creo i task e li invio al thread-pool ---- String key= getBucketName()+i; resource.setKey(key); - MyFile copy=resource.copyProperties(); + RequestObject copy=resource.copyProperties(); copy.setContent(chunk); if(logger.isDebugEnabled()){ logger.debug("request in queue: "+key); diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Close.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Close.java index 8b2bdbc..a556795 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Close.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Close.java @@ -1,6 +1,6 @@ package org.gcube.contentmanagement.blobstorage.service.operation; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; @@ -19,7 +19,7 @@ public class Close extends Operation{ super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=getTransport(myFile); @@ -34,14 +34,14 @@ public class Close extends Operation{ } @Override - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { return null; } @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { return null; } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Copy.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Copy.java index 453f8ff..6f4026f 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Copy.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Copy.java @@ -1,7 +1,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; import java.net.UnknownHostException; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; @@ -19,12 +19,12 @@ public abstract class Copy extends Operation{ final Logger logger=LoggerFactory.getLogger(Copy.class); protected String sourcePath; protected String destinationPath; - protected MyFile resource; + protected RequestObject resource; public Copy(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); } - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { this.sourcePath=file.getLocalPath(); this.destinationPath=remotePath; @@ -37,7 +37,7 @@ public abstract class Copy extends Operation{ } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=getTransport(myFile); @@ -55,7 +55,7 @@ public abstract class Copy extends Operation{ @Override - public String initOperation(MyFile resource, String remotePath, + public String initOperation(RequestObject resource, String remotePath, String author, String[] server, String rootArea) { // For terrastore, the name of bucket is formed: path_____fileName_____author this.sourcePath=resource.getLocalPath(); @@ -70,12 +70,12 @@ public abstract class Copy extends Operation{ // public abstract String execute(MongoIO mongoPrimaryInstance) throws UnknownHostException; - public abstract String execute(MongoIOManager mongoPrimaryInstance, MyFile resource, String sourcePath, String destinationPath) throws UnknownHostException; - public MyFile getResource() { + public abstract String execute(MongoIOManager mongoPrimaryInstance, RequestObject resource, String sourcePath, String destinationPath) throws UnknownHostException; + public RequestObject getResource() { return resource; } - public void setResource(MyFile resource) { + public void setResource(RequestObject resource) { this.resource = resource; } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/CopyDir.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/CopyDir.java index 8929c7a..487a5ad 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/CopyDir.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/CopyDir.java @@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; import java.net.UnknownHostException; import java.util.List; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; @@ -23,13 +23,13 @@ public abstract class CopyDir extends Operation{ final Logger logger=LoggerFactory.getLogger(Download.class); private String sourcePath; private String destinationPath; - private MyFile resource; + private RequestObject resource; public CopyDir(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); } - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { this.sourcePath=file.getLocalPath(); this.destinationPath=remotePath; @@ -40,7 +40,7 @@ public abstract class CopyDir extends Operation{ } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ TransportManager tm = getTransport(myFile); List ids=null; try { @@ -58,7 +58,7 @@ public abstract class CopyDir extends Operation{ @Override - public String initOperation(MyFile resource, String remotePath, + public String initOperation(RequestObject resource, String remotePath, String author, String[] server, String rootArea) { // DirectoryBucket dirBuc=new DirectoryBucket(server, user, password, remotePath, author); // For terrastore, the name of bucket is formed: path_____fileName_____author @@ -71,7 +71,7 @@ public abstract class CopyDir extends Operation{ return bucket=destinationPath; } - public abstract List execute(MongoIOManager mongoPrimaryInstance, MyFile resource, String sourcePath, String destinationPath) throws UnknownHostException; + public abstract List execute(MongoIOManager mongoPrimaryInstance, RequestObject resource, String sourcePath, String destinationPath) throws UnknownHostException; public String getSourcePath() { return sourcePath; @@ -89,11 +89,11 @@ public abstract class CopyDir extends Operation{ this.destinationPath = destinationPath; } - public MyFile getResource() { + public RequestObject getResource() { return resource; } - public void setResource(MyFile resource) { + public void setResource(RequestObject resource) { this.resource = resource; } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Download.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Download.java index 91e9d2e..8a15072 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Download.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Download.java @@ -1,7 +1,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; import org.bson.types.ObjectId; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; @@ -27,13 +27,13 @@ public abstract class Download extends Operation{ protected String localPath; protected String remotePath; protected OutputStream os; - protected MyFile resource; + protected RequestObject resource; public Download(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); } - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { this.localPath=file.getLocalPath(); this.remotePath=remotePath; @@ -41,7 +41,7 @@ public abstract class Download extends Operation{ return getRemoteIdentifier(remotePath, rootArea); } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ String id=null; if (logger.isDebugEnabled()) { logger.debug(" DOWNLOAD " + myFile.getRemotePath() @@ -64,7 +64,7 @@ public abstract class Download extends Operation{ @Override - public String initOperation(MyFile resource, String remotePath, + public String initOperation(RequestObject resource, String remotePath, String author, String[] server, String rootArea) { // DirectoryBucket dirBuc=new DirectoryBucket(server, getUser(), getPassword(), remotePath, author); // For terrastore, the name of bucket is formed: path_____fileName_____author @@ -77,11 +77,11 @@ public abstract class Download extends Operation{ public abstract ObjectId execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance) throws IOException; - public MyFile getResource() { + public RequestObject getResource() { return resource; } - public void setResource(MyFile resource) { + public void setResource(RequestObject resource) { this.resource = resource; } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/DownloadAndLock.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/DownloadAndLock.java index 5810efc..00c7922 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/DownloadAndLock.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/DownloadAndLock.java @@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; import java.io.OutputStream; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; @@ -30,7 +30,7 @@ public class DownloadAndLock extends Operation { } @Override - public String doIt(MyFile myFile) throws RemoteBackendException { + public String doIt(RequestObject myFile) throws RemoteBackendException { if (logger.isDebugEnabled()) { logger.debug(" DOWNLOAD " + myFile.getRemotePath() + " in bucket: " + getBucket()); @@ -50,7 +50,7 @@ public class DownloadAndLock extends Operation { } @Override - public String initOperation(MyFile file, String RemotePath, + public String initOperation(RequestObject file, String RemotePath, String author, String[] server, String rootArea, boolean replaceOption) { this.localPath=file.getLocalPath(); @@ -59,7 +59,7 @@ public class DownloadAndLock extends Operation { } @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { // TODO Auto-generated method stub return null; diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/DuplicateFile.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/DuplicateFile.java index 2f8515d..f627d94 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/DuplicateFile.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/DuplicateFile.java @@ -4,7 +4,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; import org.bson.types.ObjectId; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; @@ -24,13 +24,13 @@ public abstract class DuplicateFile extends Operation { */ final Logger logger=LoggerFactory.getLogger(DuplicateFile.class); protected String sourcePath; - protected MyFile resource; + protected RequestObject resource; public DuplicateFile(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=getTransport(myFile); @@ -48,7 +48,7 @@ public abstract class DuplicateFile extends Operation { } @Override - public String initOperation(MyFile file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { if(remotePath != null){ boolean isId=ObjectId.isValid(remotePath); setResource(file); @@ -67,7 +67,7 @@ public abstract class DuplicateFile extends Operation { @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); } @@ -82,11 +82,11 @@ public abstract class DuplicateFile extends Operation { this.sourcePath = sourcePath; } - public MyFile getResource() { + public RequestObject getResource() { return resource; } - public void setResource(MyFile resource) { + public void setResource(RequestObject resource) { this.resource = resource; } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Exist.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Exist.java index 24ef823..24dc7d4 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Exist.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Exist.java @@ -3,7 +3,7 @@ */ package org.gcube.contentmanagement.blobstorage.service.operation; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; import org.bson.types.ObjectId; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; @@ -30,7 +30,7 @@ public class Exist extends Operation{ super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=getTransport(myFile); @@ -47,7 +47,7 @@ public class Exist extends Operation{ } @Override - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { // String[] dirs= remotePath.split(file_separator); if(logger.isDebugEnabled()) @@ -64,7 +64,7 @@ public class Exist extends Operation{ @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { throw new IllegalArgumentException("Input/Output stream is not compatible with Exist operation"); } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/FileWriter.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/FileWriter.java index 5341488..4a6c61b 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/FileWriter.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/FileWriter.java @@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; //import org.apache.log4j.Logger; //import org.gcube.common.core.utils.logging.GCUBELog; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; @@ -36,7 +36,7 @@ public class FileWriter extends Thread{ if (logger.isDebugEnabled()) { logger.debug("run() - start"); } - MyFile request = monitor.getRequest(); + RequestObject request = monitor.getRequest(); synchronized (FileWriter.class) { if(logger.isDebugEnabled()){ logger.debug("recover request: "+request.getKey()+" length: "+request.getContent().length); diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetFolderCount.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetFolderCount.java index 12bd6f7..f0c3e5c 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetFolderCount.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetFolderCount.java @@ -1,6 +1,6 @@ package org.gcube.contentmanagement.blobstorage.service.operation; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket; import org.gcube.contentmanagement.blobstorage.service.impl.ServiceEngine; @@ -22,7 +22,7 @@ public class GetFolderCount extends Operation { super(server, user, pwd, bucket, monitor, isChunk, backendType,dbs); } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=getTransport(myFile); @@ -39,7 +39,7 @@ public class GetFolderCount extends Operation { } @Override - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { if(logger.isDebugEnabled()) logger.debug("remotePath: "+remotePath); @@ -57,7 +57,7 @@ public class GetFolderCount extends Operation { @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetFolderLastUpdate.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetFolderLastUpdate.java index a9cb5c9..b74137c 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetFolderLastUpdate.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetFolderLastUpdate.java @@ -1,6 +1,6 @@ package org.gcube.contentmanagement.blobstorage.service.operation; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; @@ -19,12 +19,12 @@ public class GetFolderLastUpdate extends Operation { super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ return null; } @Override - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { // String[] dirs= remotePath.split(file_separator); if(logger.isDebugEnabled()) @@ -43,7 +43,7 @@ public class GetFolderLastUpdate extends Operation { @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetFolderSize.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetFolderSize.java index 8bc9230..187e1a1 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetFolderSize.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetFolderSize.java @@ -1,6 +1,6 @@ package org.gcube.contentmanagement.blobstorage.service.operation; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; @@ -21,7 +21,7 @@ public class GetFolderSize extends Operation { super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=getTransport(myFile); @@ -38,7 +38,7 @@ public class GetFolderSize extends Operation { } @Override - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { // String[] dirs= remotePath.split(file_separator); if(logger.isDebugEnabled()) @@ -58,7 +58,7 @@ public class GetFolderSize extends Operation { @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetHttpUrl.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetHttpUrl.java index 21fabc3..cf6c7aa 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetHttpUrl.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetHttpUrl.java @@ -4,7 +4,7 @@ import java.io.IOException; import java.net.URL; import org.apache.commons.codec.binary.Base64; import org.gcube.contentmanagement.blobstorage.resource.MemoryType; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.Encrypter; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.Encrypter.EncryptionException; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; @@ -27,13 +27,13 @@ public class GetHttpUrl extends Operation { } @Override - public String initOperation(MyFile file, String remotePath, String author, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { return getRemoteIdentifier(remotePath, rootArea); } @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { // TODO Auto-generated method stub return null; @@ -41,7 +41,7 @@ public class GetHttpUrl extends Operation { @Override - public Object doIt(MyFile myFile) throws RemoteBackendException { + public Object doIt(RequestObject myFile) throws RemoteBackendException { String resolverHost=myFile.getResolverHOst(); String urlBase="smp://"+resolverHost+Costants.URL_SEPARATOR; String urlParam=""; @@ -76,7 +76,7 @@ public class GetHttpUrl extends Operation { String id=null; if(tm ==null){ TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); - tm=tmf.getTransport(backendType, memoryType, dbNames, writeConcern, readPreference); + tm=tmf.getTransport(backendType, memoryType, dbNames, writeConcern, readPreference, null, null); } try { id = tm.getId(bucket, forceCreation); diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetHttpsUrl.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetHttpsUrl.java index 2263f1c..55ef325 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetHttpsUrl.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetHttpsUrl.java @@ -5,7 +5,7 @@ import java.net.URL; import org.apache.commons.codec.binary.Base64; import org.gcube.contentmanagement.blobstorage.resource.MemoryType; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.Encrypter; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.Encrypter.EncryptionException; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; @@ -29,13 +29,13 @@ public class GetHttpsUrl extends Operation { } @Override - public String initOperation(MyFile file, String remotePath, String author, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { return getRemoteIdentifier(remotePath, rootArea); } @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { // TODO Auto-generated method stub return null; @@ -43,7 +43,7 @@ public class GetHttpsUrl extends Operation { @Override - public Object doIt(MyFile myFile) throws RemoteBackendException { + public Object doIt(RequestObject myFile) throws RemoteBackendException { String resolverHost=myFile.getResolverHOst(); String urlBase="smp://"+resolverHost+Costants.URL_SEPARATOR; String urlParam=""; @@ -77,7 +77,7 @@ public class GetHttpsUrl extends Operation { String id=null; if(tm ==null){ TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); - tm=tmf.getTransport(backendType, memoryType, dbNames, writeConcern, readPreference); + tm=tmf.getTransport(backendType, memoryType, dbNames, writeConcern, readPreference, null, null); } try { id = tm.getId(bucket, forceCreation); diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetMetaFile.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetMetaFile.java index 534537f..c603920 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetMetaFile.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetMetaFile.java @@ -1,7 +1,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; import org.bson.types.ObjectId; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; @@ -30,7 +30,7 @@ public class GetMetaFile extends Operation{ * size. * */ - public MyFile doIt(MyFile myFile) throws RemoteBackendException{ + public RequestObject doIt(RequestObject myFile) throws RemoteBackendException{ // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=getTransport(myFile); @@ -61,7 +61,7 @@ public class GetMetaFile extends Operation{ } @Override - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { // String[] dirs= remotePath.split(file_separator); if(logger.isDebugEnabled()) @@ -78,7 +78,7 @@ public class GetMetaFile extends Operation{ @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetMetaInfo.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetMetaInfo.java index f6fd044..7ebc4c1 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetMetaInfo.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetMetaInfo.java @@ -1,7 +1,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; import org.bson.types.ObjectId; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; @@ -20,7 +20,7 @@ public class GetMetaInfo extends Operation { super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=getTransport(myFile); @@ -38,7 +38,7 @@ public class GetMetaInfo extends Operation { } @Override - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { // String[] dirs= remotePath.split(file_separator); if(logger.isDebugEnabled()) @@ -55,7 +55,7 @@ public class GetMetaInfo extends Operation { @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { throw new IllegalArgumentException("method not compatible with getMetaInfo operation"); } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetRemotePath.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetRemotePath.java index 7ead65d..5d1ad2a 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetRemotePath.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetRemotePath.java @@ -1,7 +1,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; import org.bson.types.ObjectId; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; @@ -20,7 +20,7 @@ public class GetRemotePath extends Operation{ super(server, user, pwd, bucket, monitor, isChunk, backendType,dbs); } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=getTransport(myFile); @@ -45,7 +45,7 @@ public class GetRemotePath extends Operation{ } @Override - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { rootPath=file.getRootPath(); logger.trace("rootArea is "+file.getRootPath()+ " absoluteremotepath is "+file.getAbsoluteRemotePath()); @@ -61,7 +61,7 @@ public class GetRemotePath extends Operation{ @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetSize.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetSize.java index 3267c01..55d03b7 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetSize.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetSize.java @@ -1,7 +1,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; import org.bson.types.ObjectId; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; @@ -27,7 +27,7 @@ public class GetSize extends Operation{ super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=getTransport(myFile); @@ -44,7 +44,7 @@ public class GetSize extends Operation{ } @Override - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { if(logger.isDebugEnabled()) logger.debug("remotePath: "+remotePath); @@ -60,7 +60,7 @@ public class GetSize extends Operation{ @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetTTL.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetTTL.java index 778eae6..5ff8d49 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetTTL.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetTTL.java @@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; import java.io.OutputStream; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; @@ -27,7 +27,7 @@ public class GetTTL extends Operation { } @Override - public String doIt(MyFile myFile) throws RemoteBackendException { + public String doIt(RequestObject myFile) throws RemoteBackendException { if (logger.isDebugEnabled()) { logger.debug(" DOWNLOAD " + myFile.getRemotePath() + " in bucket: " + bucket); @@ -48,7 +48,7 @@ public class GetTTL extends Operation { } @Override - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { this.localPath=file.getLocalPath(); @@ -60,7 +60,7 @@ public class GetTTL extends Operation { @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { // TODO Auto-generated method stub return null; diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetUrl.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetUrl.java index 3f67828..b5813a1 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetUrl.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetUrl.java @@ -1,7 +1,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; import org.gcube.contentmanagement.blobstorage.resource.MemoryType; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.Encrypter; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.Encrypter.EncryptionException; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; @@ -21,13 +21,13 @@ public class GetUrl extends Operation{ } @Override - public String initOperation(MyFile file, String remotePath, String author, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { return getRemoteIdentifier(remotePath, rootArea); } @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { // TODO Auto-generated method stub return null; @@ -35,7 +35,7 @@ public class GetUrl extends Operation{ @Override - public Object doIt(MyFile myFile) throws RemoteBackendException { + public Object doIt(RequestObject myFile) throws RemoteBackendException { String resolverHost=myFile.getResolverHOst(); String urlBase="smp://"+resolverHost+Costants.URL_SEPARATOR; String urlParam=""; @@ -60,7 +60,7 @@ public class GetUrl extends Operation{ String id=null; if(tm ==null){ TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); - tm=tmf.getTransport(backendType, memoryType, dbNames, writeConcern, readPreference); + tm=tmf.getTransport(backendType, memoryType, dbNames, writeConcern, readPreference, null, null); } try { id = tm.getId(bucket, forceCreation); diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetUserTotalItems.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetUserTotalItems.java index 6ca51e5..9e918b3 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetUserTotalItems.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetUserTotalItems.java @@ -1,6 +1,6 @@ package org.gcube.contentmanagement.blobstorage.service.operation; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; @@ -19,7 +19,7 @@ public class GetUserTotalItems extends Operation { super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=getTransport(myFile); @@ -38,7 +38,7 @@ public class GetUserTotalItems extends Operation { } @Override - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { setOwner(author); if((remotePath != null) && (remotePath.length() > 0)){ @@ -64,7 +64,7 @@ public class GetUserTotalItems extends Operation { @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetUserTotalVolume.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetUserTotalVolume.java index 1bf91a0..88f3f9c 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetUserTotalVolume.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/GetUserTotalVolume.java @@ -1,6 +1,6 @@ package org.gcube.contentmanagement.blobstorage.service.operation; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; @@ -19,7 +19,7 @@ public class GetUserTotalVolume extends Operation { super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=getTransport(myFile); @@ -38,7 +38,7 @@ public class GetUserTotalVolume extends Operation { } @Override - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { setOwner(author); if(remotePath!= null && remotePath.length()>0){ @@ -63,7 +63,7 @@ public class GetUserTotalVolume extends Operation { @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Link.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Link.java index 7ce01d4..c71b35e 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Link.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Link.java @@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; import java.net.UnknownHostException; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; @@ -20,12 +20,12 @@ public abstract class Link extends Operation{ final Logger logger=LoggerFactory.getLogger(Download.class); private String sourcePath; private String destinationPath; - private MyFile resource; + private RequestObject resource; public Link(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); } - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { this.sourcePath=file.getLocalPath(); this.destinationPath=remotePath; @@ -36,7 +36,7 @@ public abstract class Link extends Operation{ } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=getTransport(myFile); @@ -53,7 +53,7 @@ public abstract class Link extends Operation{ @Override - public String initOperation(MyFile resource, String remotePath, + public String initOperation(RequestObject resource, String remotePath, String author, String[] server, String rootArea) { // For terrastore, the name of bucket is formed: path_____fileName_____author // String bucketName=new BucketCoding().bucketFileCoding(remotePath, rootArea); @@ -65,7 +65,7 @@ public abstract class Link extends Operation{ return bucket=destinationPath; } - public abstract String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, MyFile resource, String sourcePath, String destinationPath) throws UnknownHostException; + public abstract String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, RequestObject resource, String sourcePath, String destinationPath) throws UnknownHostException; public String getSourcePath() { return sourcePath; @@ -83,11 +83,11 @@ public abstract class Link extends Operation{ this.destinationPath = destinationPath; } - public MyFile getResource() { + public RequestObject getResource() { return resource; } - public void setResource(MyFile resource) { + public void setResource(RequestObject resource) { this.resource = resource; } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Lock.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Lock.java index c0395bd..283d659 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Lock.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Lock.java @@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; import java.io.OutputStream; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; @@ -24,7 +24,7 @@ public abstract class Lock extends Operation { protected String localPath; protected String remotePath; protected OutputStream os; - protected MyFile resource; + protected RequestObject resource; protected Download download; public Lock(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { @@ -33,7 +33,7 @@ public abstract class Lock extends Operation { } @Override - public String doIt(MyFile myFile) throws RemoteBackendException { + public String doIt(RequestObject myFile) throws RemoteBackendException { if (logger.isDebugEnabled()) { logger.debug(" DOWNLOAD " + myFile.getRemotePath() + " in bucket: " + getBucket()); @@ -54,7 +54,7 @@ public abstract class Lock extends Operation { } @Override - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { String bucketName=null; @@ -73,13 +73,13 @@ public abstract class Lock extends Operation { } @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { // TODO Auto-generated method stub return null; } - public abstract String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, MyFile resource, String serverLocation) throws Exception; + public abstract String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, RequestObject resource, String serverLocation) throws Exception; public String getLocalPath() { return localPath; @@ -105,11 +105,11 @@ public abstract class Lock extends Operation { this.os = os; } - public MyFile getResource() { + public RequestObject getResource() { return resource; } - public void setResource(MyFile resource) { + public void setResource(RequestObject resource) { this.resource = resource; } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Monitor.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Monitor.java index a86b3d2..bb5b204 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Monitor.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Monitor.java @@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; //import org.apache.log4j.Logger; //import org.gcube.common.core.utils.logging.GCUBELog; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.transport.backend.util.Costants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,9 +22,9 @@ public class Monitor { // private static final GCUBELog logger = new GCUBELog(Monitor.class); final Logger logger=LoggerFactory.getLogger(Monitor.class); // request queue - private Vector requestQueue = new Vector(); + private Vector requestQueue = new Vector(); // fetch the first request in the queue - public synchronized MyFile getRequest(){ + public synchronized RequestObject getRequest(){ if (logger.isDebugEnabled()) { logger.debug("getRequest() - start"); } @@ -36,7 +36,7 @@ public class Monitor { logger.error("getRequest()", e); } } - MyFile myFile=requestQueue.remove(0); + RequestObject myFile=requestQueue.remove(0); notifyAll(); if (logger.isDebugEnabled()) { logger.debug("getRequest() - end"); @@ -44,7 +44,7 @@ public class Monitor { return myFile; } - public synchronized MyFile getRequest(ChunkProducer producer){ + public synchronized RequestObject getRequest(ChunkProducer producer){ if (logger.isDebugEnabled()) { logger.debug("getRequest(ChunkProducer) - start"); } @@ -56,7 +56,7 @@ public class Monitor { logger.error("getRequest(ChunkProducer)", e); } } - MyFile myFile=requestQueue.remove(0); + RequestObject myFile=requestQueue.remove(0); notifyAll(); if (logger.isDebugEnabled()) { logger.debug("getRequest(ChunkProducer) - end"); @@ -65,7 +65,7 @@ public class Monitor { } // Accoda una nuova richiesta - public synchronized void putRequest(MyFile richiesta){ + public synchronized void putRequest(RequestObject richiesta){ if (logger.isDebugEnabled()) { logger.debug("putRequest(MyFile) - start"); logger.debug("request in queue, queue size: "+requestQueue.size()); diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Move.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Move.java index ff93223..5b10cba 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Move.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Move.java @@ -4,7 +4,7 @@ import java.io.OutputStream; import java.net.UnknownHostException; import org.gcube.contentmanagement.blobstorage.resource.MemoryType; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; @@ -23,12 +23,12 @@ public abstract class Move extends Operation{ final Logger logger=LoggerFactory.getLogger(Download.class); protected String sourcePath; protected String destinationPath; - protected MyFile resource; + protected RequestObject resource; public Move(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); } - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { this.sourcePath=file.getLocalPath(); this.destinationPath=remotePath; @@ -39,7 +39,7 @@ public abstract class Move extends Operation{ } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=getTransport(myFile); @@ -57,7 +57,7 @@ public abstract class Move extends Operation{ @Override - public String initOperation(MyFile resource, String remotePath, + public String initOperation(RequestObject resource, String remotePath, String author, String[] server, String rootArea) { this.sourcePath=resource.getLocalPath(); this.destinationPath=resource.getRemotePath(); @@ -67,7 +67,7 @@ public abstract class Move extends Operation{ return bucket=destinationPath; } - public abstract String execute(MongoIOManager mongoPrimaryInstance, MemoryType memoryType, MyFile resource, String sourcePath, String destinationPath) throws UnknownHostException; + public abstract String execute(MongoIOManager mongoPrimaryInstance, MemoryType memoryType, RequestObject resource, String sourcePath, String destinationPath) throws UnknownHostException; public String getSourcePath() { return sourcePath; @@ -85,11 +85,11 @@ public abstract class Move extends Operation{ this.destinationPath = destinationPath; } - public MyFile getResource() { + public RequestObject getResource() { return resource; } - public void setResource(MyFile resource) { + public void setResource(RequestObject resource) { this.resource = resource; } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/MoveDir.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/MoveDir.java index 137b2a7..ad20f91 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/MoveDir.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/MoveDir.java @@ -4,7 +4,7 @@ import java.net.UnknownHostException; import java.util.List; import org.gcube.contentmanagement.blobstorage.resource.MemoryType; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; @@ -21,13 +21,13 @@ public abstract class MoveDir extends Operation{ final Logger logger=LoggerFactory.getLogger(Download.class); private String sourcePath; private String destinationPath; - private MyFile resource; + private RequestObject resource; // private OutputStream os; public MoveDir(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); } - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { this.sourcePath=file.getLocalPath(); this.destinationPath=remotePath; @@ -38,7 +38,7 @@ public abstract class MoveDir extends Operation{ } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=getTransport(myFile); @@ -55,7 +55,7 @@ public abstract class MoveDir extends Operation{ @Override - public String initOperation(MyFile resource, String remotePath, + public String initOperation(RequestObject resource, String remotePath, String author, String[] server, String rootArea) { this.sourcePath=resource.getLocalPath(); this.destinationPath=resource.getRemotePath(); @@ -65,7 +65,7 @@ public abstract class MoveDir extends Operation{ return bucket=destinationPath; } - public abstract List execute(MongoIOManager mongoPrimaryInstance, MyFile resource, String sourcePath, String destinationPath, MemoryType memoryType) throws UnknownHostException; + public abstract List execute(MongoIOManager mongoPrimaryInstance, RequestObject resource, String sourcePath, String destinationPath, MemoryType memoryType) throws UnknownHostException; public String getSourcePath() { return sourcePath; @@ -83,11 +83,11 @@ public abstract class MoveDir extends Operation{ this.destinationPath = destinationPath; } - public MyFile getResource() { + public RequestObject getResource() { return resource; } - public void setResource(MyFile resource) { + public void setResource(RequestObject resource) { this.resource = resource; } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Operation.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Operation.java index adb9c50..5863e23 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Operation.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Operation.java @@ -1,7 +1,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; import org.bson.types.ObjectId; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.impl.ServiceEngine; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; @@ -99,7 +99,7 @@ public abstract class Operation { * @return a String that identifies a file * @throws Exception */ - public String put(Upload upload, MyFile resource, boolean isChunk, boolean isBase64, boolean replaceOption, boolean isLock) throws Exception{ + public String put(Upload upload, RequestObject resource, boolean isChunk, boolean isBase64, boolean replaceOption, boolean isLock) throws Exception{ if (logger.isDebugEnabled()) { logger.debug("put(MyFile, boolean, boolean) - start"); } @@ -175,7 +175,7 @@ public abstract class Operation { * @throws IOException * @throws InterruptedException */ - public String get(Download download, MyFile myFile, boolean isLock) throws IOException, InterruptedException, Exception { + public String get(Download download, RequestObject myFile, boolean isLock) throws IOException, InterruptedException, Exception { if (logger.isDebugEnabled()) { logger.debug("get(String) - start"); } @@ -190,7 +190,7 @@ public abstract class Operation { startPThreadChunk(download, myFile, tm, path); }else{ - unlocKey=tm.downloadManager(download, myFile, bucket, MyFile.class); + unlocKey=tm.downloadManager(download, myFile, bucket, RequestObject.class); } if((path!=null) && (new File(path).length()>0)){ @@ -210,12 +210,12 @@ public abstract class Operation { * @throws InterruptedException * @throws IOException */ - protected void startPThreadChunk(Download download,MyFile myFile, TransportManager tm, + protected void startPThreadChunk(Download download,RequestObject myFile, TransportManager tm, String path) throws FileNotFoundException, InterruptedException, IOException { ExecutorService executor = Executors.newFixedThreadPool (2); int j=0; - MyFile value=null; + RequestObject value=null; if(logger.isInfoEnabled()) logger.info("localPath: "+path+" bucket: "+bucket); @@ -229,7 +229,7 @@ public abstract class Operation { logger.debug("get(String) -"); } try{ - value=(MyFile) tm.get(download); + value=(RequestObject) tm.get(download); }catch(Exception e){ if (logger.isDebugEnabled()) { logger.debug("get(String) - \n Trovate " + (j) + " key"); @@ -283,7 +283,7 @@ public abstract class Operation { * @return a generic object that contains operation results * @throws IllegalAccessException */ - public abstract Object doIt(MyFile myFile) throws RemoteBackendException; + public abstract Object doIt(RequestObject myFile) throws RemoteBackendException; /** * init a operation @@ -295,7 +295,7 @@ public abstract class Operation { * @param replaceOption if true the file will be replaced * @return a string that identifies the operation */ - public abstract String initOperation(MyFile file, String remoteIdentifier, String author, String[] server, String rootArea, boolean replaceOption); + public abstract String initOperation(RequestObject file, String remoteIdentifier, String author, String[] server, String rootArea, boolean replaceOption); /** @@ -307,7 +307,7 @@ public abstract class Operation { * @param rootArea remote root path * @return a string that identifies the operation */ - public abstract String initOperation(MyFile resource, String remoteIdentifier, String author, String[] server, String rootArea); + public abstract String initOperation(RequestObject resource, String remoteIdentifier, String author, String[] server, String rootArea); public String getOwner() { return owner; @@ -381,10 +381,10 @@ public abstract class Operation { this.user = user; } - protected TransportManager getTransport(MyFile myFile) { + protected TransportManager getTransport(RequestObject myFile) { if(Objects.isNull(transport)) { TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); - transport=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); + transport=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference(), myFile.getToken(), myFile.getRegion()); } return transport; } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/OperationFactory.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/OperationFactory.java index 7b98eda..f71f871 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/OperationFactory.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/OperationFactory.java @@ -25,7 +25,9 @@ public class OperationFactory { Monitor monitor; boolean isChunk; private String backendType; + private String token; + public OperationFactory(String server[], String user, String pwd, String bucket, Monitor monitor2, boolean isChunk, String backendType, String[] dbs){ this.server=server; this.user=user; @@ -111,4 +113,12 @@ public class OperationFactory { return op; } + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/OperationManager.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/OperationManager.java index ebd9cf2..ae0aa7f 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/OperationManager.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/OperationManager.java @@ -1,6 +1,6 @@ package org.gcube.contentmanagement.blobstorage.service.operation; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -21,7 +21,7 @@ public class OperationManager { private String[] server; // private int dimension; private String operation; - private MyFile resource; + private RequestObject resource; private boolean isChunk; private String bucketName; private String fileDest; @@ -32,7 +32,8 @@ public class OperationManager { private String[] dbNames; - public OperationManager(String[] server, String user, String password, String operation, MyFile myFile, String backendType, String[] dbs){ + + public OperationManager(String[] server, String user, String password, String operation, RequestObject myFile, String backendType, String[] dbs, String token){ this.setServer(server); this.setUser(user); this.setPassword(password); @@ -41,9 +42,10 @@ public class OperationManager { this.setTypeOperation(operation); this.setDbNames(dbs); this.backendType=backendType; + } - public Object startOperation(MyFile file, String remotePath, String author, String[] server, boolean chunkOpt, String rootArea, boolean replaceOption) throws RemoteBackendException{ + public Object startOperation(RequestObject file, String remotePath, String author, String[] server, boolean chunkOpt, String rootArea, boolean replaceOption) throws RemoteBackendException{ // setUser(author); if (logger.isDebugEnabled()) { logger.debug("connection(boolean) - start"); @@ -120,11 +122,11 @@ public class OperationManager { this.operation = operation; } - public MyFile getResource() { + public RequestObject getResource() { return resource; } - public void setResource(MyFile resource) { + public void setResource(RequestObject resource) { this.resource = resource; } @@ -144,5 +146,6 @@ public class OperationManager { this.dbNames = dbNames; } + } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Remove.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Remove.java index 3f0ac0c..566291c 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Remove.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Remove.java @@ -1,6 +1,6 @@ package org.gcube.contentmanagement.blobstorage.service.operation; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; @@ -24,7 +24,7 @@ public class Remove extends Operation{ super(server,user,pwd, bucket, monitor, isChunk, backendType, dbs); } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=getTransport(myFile); @@ -36,7 +36,7 @@ public class Remove extends Operation{ } @Override - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { String[] dirs= remotePath.split(Costants.FILE_SEPARATOR); if(logger.isDebugEnabled()) @@ -64,7 +64,7 @@ public class Remove extends Operation{ * @param bucketName indicates the remote directory to remove * @throws RemoteBackendException */ - public void removeBucket(TransportManager tm, String bucketName, MyFile resource) throws RemoteBackendException { + public void removeBucket(TransportManager tm, String bucketName, RequestObject resource) throws RemoteBackendException { if(logger.isDebugEnabled()) logger.debug("removing file bucket: "+bucketName); try { @@ -77,7 +77,7 @@ public class Remove extends Operation{ } @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { throw new IllegalArgumentException("Input/Output stream is not compatible with remove operation"); } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/RenewTTL.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/RenewTTL.java index 6ba9614..1f1924c 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/RenewTTL.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/RenewTTL.java @@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; import java.io.OutputStream; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; @@ -29,7 +29,7 @@ public class RenewTTL extends Operation { } @Override - public String doIt(MyFile myFile) throws RemoteBackendException { + public String doIt(RequestObject myFile) throws RemoteBackendException { // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=getTransport(myFile); @@ -45,7 +45,7 @@ public class RenewTTL extends Operation { } @Override - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { this.localPath=file.getLocalPath(); @@ -56,7 +56,7 @@ public class RenewTTL extends Operation { } @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { // TODO Auto-generated method stub return null; diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/SetMetaInfo.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/SetMetaInfo.java index 4d93ed0..73137db 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/SetMetaInfo.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/SetMetaInfo.java @@ -1,7 +1,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; import org.bson.types.ObjectId; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; @@ -20,7 +20,7 @@ public class SetMetaInfo extends Operation { super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=getTransport(myFile); @@ -37,7 +37,7 @@ public class SetMetaInfo extends Operation { } @Override - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { if(logger.isDebugEnabled()) logger.debug("remotePath: "+remotePath); @@ -53,7 +53,7 @@ public class SetMetaInfo extends Operation { @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/SoftCopy.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/SoftCopy.java index 537f715..906fde5 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/SoftCopy.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/SoftCopy.java @@ -6,7 +6,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; import java.net.UnknownHostException; import org.bson.types.ObjectId; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; @@ -27,14 +27,14 @@ public abstract class SoftCopy extends Operation { final Logger logger=LoggerFactory.getLogger(SoftCopy.class); private String sourcePath; private String destinationPath; - private MyFile resource; + private RequestObject resource; public SoftCopy(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); } - public String initOperation(MyFile file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { // if(remotePath != null){ // boolean isId=ObjectId.isValid(remotePath); // setResource(file); @@ -59,7 +59,7 @@ public abstract class SoftCopy extends Operation { } - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=getTransport(myFile); @@ -76,7 +76,7 @@ public abstract class SoftCopy extends Operation { @Override - public String initOperation(MyFile resource, String remotePath, String author, String[] server, String rootArea) { + public String initOperation(RequestObject resource, String remotePath, String author, String[] server, String rootArea) { // For terrastore, the name of bucket is formed: path_____fileName_____author this.sourcePath=resource.getLocalPath(); this.destinationPath=resource.getRemotePath(); @@ -100,7 +100,7 @@ public abstract class SoftCopy extends Operation { // }return bucket=null;//else throw new RemoteBackendException("argument cannot be null"); } - public abstract String execute(MongoIOManager mongoPrimaryInstance, MyFile resource, String sourcePath, String destinationPath) throws UnknownHostException; + public abstract String execute(MongoIOManager mongoPrimaryInstance, RequestObject resource, String sourcePath, String destinationPath) throws UnknownHostException; public String getSourcePath() { return sourcePath; @@ -118,11 +118,11 @@ public abstract class SoftCopy extends Operation { this.destinationPath = destinationPath; } - public MyFile getResource() { + public RequestObject getResource() { return resource; } - public void setResource(MyFile resource) { + public void setResource(RequestObject resource) { this.resource = resource; } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Unlock.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Unlock.java index 9054950..4a9a8e5 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Unlock.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Unlock.java @@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation; import java.io.OutputStream; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; @@ -23,7 +23,7 @@ public abstract class Unlock extends Operation { protected String localPath; protected String remotePath; protected OutputStream os; - protected MyFile resource; + protected RequestObject resource; protected Upload upload; public Unlock(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { @@ -32,7 +32,7 @@ public abstract class Unlock extends Operation { } @Override - public String doIt(MyFile myFile) throws RemoteBackendException { + public String doIt(RequestObject myFile) throws RemoteBackendException { if (logger.isDebugEnabled()) { logger.debug(" UPLOAD " + myFile.getLocalPath() + " author: " + myFile.getOwner()); @@ -54,7 +54,7 @@ public abstract class Unlock extends Operation { } @Override - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { String bucketName=null; @@ -71,13 +71,13 @@ public abstract class Unlock extends Operation { } @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { // TODO Auto-generated method stub return null; } - public abstract String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, MyFile resource, String bucket, String key4unlock) throws Exception; + public abstract String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, RequestObject resource, String bucket, String key4unlock) throws Exception; public String getLocalPath() { return localPath; @@ -103,11 +103,11 @@ public abstract class Unlock extends Operation { this.os = os; } - public MyFile getResource() { + public RequestObject getResource() { return resource; } - public void setResource(MyFile resource) { + public void setResource(RequestObject resource) { this.resource = resource; } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Upload.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Upload.java index 1490071..3bb4d27 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Upload.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/Upload.java @@ -4,7 +4,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; @@ -32,7 +32,7 @@ public abstract class Upload extends Operation { protected String localPath; protected String remotePath; protected OutputStream os; - protected MyFile resource; + protected RequestObject resource; public Upload(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String bck, String[] dbs) { super(server, user, pwd, bucket, monitor, isChunk, bck, dbs); @@ -40,7 +40,7 @@ public abstract class Upload extends Operation { - public String doIt(MyFile myFile) throws RemoteBackendException{ + public String doIt(RequestObject myFile) throws RemoteBackendException{ if (logger.isDebugEnabled()) { logger.debug(" UPLOAD " + myFile.getLocalPath() + " author: " + myFile.getOwner()); @@ -51,6 +51,7 @@ public abstract class Upload extends Operation { } catch (Throwable e) { // TransportManagerFactory tmf=new TransportManagerFactory(server, user, password); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); + e.printStackTrace(); TransportManager tm=getTransport(myFile); tm.close(); logger.error("Problem in upload from: "+myFile.getLocalPath()+": "+e.getMessage()); @@ -63,7 +64,7 @@ public abstract class Upload extends Operation { @Override - public String initOperation(MyFile file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { // set replace option this.replaceOption=replaceOption; setResource(file); @@ -80,7 +81,7 @@ public abstract class Upload extends Operation { @Override - public String initOperation(MyFile resource, String remotePath, + public String initOperation(RequestObject resource, String remotePath, String author, String[] server, String rootArea) { // the name of bucket is formed: path_____fileName_____author String bucketName=new BucketCoding().bucketFileCoding(remotePath, rootArea); @@ -90,7 +91,7 @@ public abstract class Upload extends Operation { } - public abstract String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, MyFile resource, String bucket, boolean replace) throws IOException; + public abstract String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, RequestObject resource, String bucket, boolean replace) throws IOException; public InputStream getIs() { return is; @@ -152,13 +153,13 @@ public abstract class Upload extends Operation { - public MyFile getResource() { + public RequestObject getResource() { return resource; } - public void setResource(MyFile resource) { + public void setResource(RequestObject resource) { this.resource = resource; } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/UploadAndUnlock.java b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/UploadAndUnlock.java index 73feb72..6624c40 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/UploadAndUnlock.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/service/operation/UploadAndUnlock.java @@ -1,6 +1,6 @@ package org.gcube.contentmanagement.blobstorage.service.operation; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; @@ -21,7 +21,7 @@ public class UploadAndUnlock extends Operation { } @Override - public String doIt(MyFile myFile) throws RemoteBackendException { + public String doIt(RequestObject myFile) throws RemoteBackendException { if (logger.isDebugEnabled()) { logger.debug(" UPLOAD " + myFile.getLocalPath() + " author: " + myFile.getOwner()); @@ -33,7 +33,7 @@ public class UploadAndUnlock extends Operation { objectId=put(upload, myFile, isChunk(), false, false, true); } catch (Exception e) { TransportManagerFactory tmf=new TransportManagerFactory(server, user, password); - TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); + TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference(), myFile.getToken(), myFile.getRegion()); tm.close(); throw new RemoteBackendException(" Error in uploadAndUnlock operation ", e.getCause()); } return objectId; @@ -41,7 +41,7 @@ public class UploadAndUnlock extends Operation { } @Override - public String initOperation(MyFile file, String remotePath, + public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { // set replace option @@ -53,7 +53,7 @@ public class UploadAndUnlock extends Operation { } @Override - public String initOperation(MyFile resource, String RemotePath, + public String initOperation(RequestObject resource, String RemotePath, String author, String[] server, String rootArea) { // TODO Auto-generated method stub return null; diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/TransportManager.java b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/TransportManager.java index 0c4d1d5..cce0cd5 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/TransportManager.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/TransportManager.java @@ -7,7 +7,7 @@ import java.util.List; import java.util.Map; import org.gcube.contentmanagement.blobstorage.resource.MemoryType; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.StorageObject; import org.gcube.contentmanagement.blobstorage.service.operation.*; import org.gcube.contentmanagement.blobstorage.transport.backend.operation.LockOperator; @@ -36,8 +36,9 @@ public abstract class TransportManager { * @param server array that contains ip of backend server * @param pass * @param user + * @param token api token if is required by backend */ - public abstract void initBackend(String[] server, String user, String pass, MemoryType memoryType, String[] dbNames, String writeConcern, String readConcern); + public abstract void initBackend(String[] server, String user, String pass, MemoryType memoryType, String[] dbNames, String writeConcern, String readConcern, String token, String region); /** @@ -48,7 +49,7 @@ public abstract class TransportManager { * @return the key of remote resource * @throws IOException if there are IO problems */ - public String downloadManager(Download download, MyFile myFile, String key, Class type) throws Exception{ + public String downloadManager(Download download, RequestObject myFile, String key, Class type) throws Exception{ String key4lock=null; if(myFile.isLock()){ download.setResource(myFile); @@ -75,7 +76,7 @@ public abstract class TransportManager { */ public String uploadManager(Upload upload, Object resource, String bucket, String key, boolean replace) throws Exception{ String id=null; - MyFile file=(MyFile)resource; + RequestObject file=(RequestObject)resource; if((file.getLockedKey()!=null) && (!file.getLockedKey().isEmpty())){ Unlock unlock= new UnlockOperator(upload.getServer(), upload.getUser(), upload.getPassword(), upload.getBucket(), upload.getMonitor(), upload.isChunk(), upload.getBackendType(), upload.getDbNames()); unlock.setResource(file); @@ -132,14 +133,14 @@ public abstract class TransportManager { * @return map that contains the object in the direcotry * @throws UnknownHostException */ - public abstract Map getValues(MyFile resource, String bucket, Class< ? extends Object> type); + public abstract Map getValues(RequestObject resource, String bucket, Class< ? extends Object> type); /** * delete a remote file * @param bucket identifies the remote file * @throws UnknownHostException */ - public abstract void removeRemoteFile(String bucket, MyFile resource) throws UnknownHostException; + public abstract void removeRemoteFile(String bucket, RequestObject resource) throws UnknownHostException; /** * delete a remote directory @@ -149,7 +150,7 @@ public abstract class TransportManager { * @throws UnknownHostException * */ - public abstract void removeDir(String remoteDir, MyFile myFile) throws UnknownHostException; + public abstract void removeDir(String remoteDir, RequestObject myFile) throws UnknownHostException; /** @@ -159,7 +160,7 @@ public abstract class TransportManager { * @return the size of the remote file * @throws UnknownHostException */ - public abstract long getSize(String bucket, MyFile myFile); + public abstract long getSize(String bucket, RequestObject myFile); /** * lock a remote file @@ -209,7 +210,7 @@ public abstract class TransportManager { * @throws UnknownHostException * @throws IllegalAccessException */ - public abstract long renewTTL(MyFile resource) throws UnknownHostException, IllegalAccessException; + public abstract long renewTTL(RequestObject resource) throws UnknownHostException, IllegalAccessException; /** diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/TransportManagerFactory.java b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/TransportManagerFactory.java index 7cd64b8..73124cd 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/TransportManagerFactory.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/TransportManagerFactory.java @@ -38,16 +38,16 @@ public class TransportManagerFactory { this.password=password; } - public TransportManager getTransport(String backendType, MemoryType memoryType, String[] dbNames, String writeConcern, String readConcern){ + public TransportManager getTransport(String backendType, MemoryType memoryType, String[] dbNames, String writeConcern, String readConcern, String token, String region){ if (logger.isDebugEnabled()) { logger.debug("getOperation(String) - start"); } if(Objects.isNull(transport)) - return load(backendType, memoryType, dbNames, writeConcern, readConcern); + return load(backendType, memoryType, dbNames, writeConcern, readConcern, token, region); return transport; } - private TransportManager load(String backendType, MemoryType memoryType, String[] dbNames, String writeConcern, String readConcern){ + private TransportManager load(String backendType, MemoryType memoryType, String[] dbNames, String writeConcern, String readConcern, String token, String region){ ServiceLoader loader = ServiceLoader.load(TransportManager.class); Iterator iterator = loader.iterator(); List impls = new ArrayList(); @@ -59,11 +59,11 @@ public class TransportManagerFactory { // System.out.println("size: "+implementationCounted); if((implementationCounted==0) || backendType.equals(Costants.DEFAULT_TRANSPORT_MANAGER)){ logger.info(" 0 implementation found. Load default implementation of TransportManager"); - return new MongoOperationManager(server, user, password, memoryType, dbNames, writeConcern, readConcern); + return new MongoOperationManager(server, user, password, memoryType, dbNames, writeConcern, readConcern, null, null); }else if((implementationCounted==1) && Objects.isNull(backendType)){ TransportManager tm = impls.get(0); logger.info("1 implementation of TransportManager found. Load it. "+tm.getName()); - tm.initBackend(server, user, password, memoryType, dbNames, writeConcern, readConcern); + tm.initBackend(server, user, password, memoryType, dbNames, writeConcern, readConcern, token, region); return tm; }else{ logger.info("found "+implementationCounted+" implementations of TransportManager"); @@ -71,7 +71,7 @@ public class TransportManagerFactory { for(TransportManager tm : impls){ if(tm.getName().equalsIgnoreCase(backendType)){ logger.info("Found implementation "+backendType); - tm.initBackend(server, user, password, memoryType, dbNames, writeConcern, readConcern); + tm.initBackend(server, user, password, memoryType, dbNames, writeConcern, readConcern, token, region); return tm; } } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/MongoIOManager.java b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/MongoIOManager.java index b6f3e1e..6e47b96 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/MongoIOManager.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/MongoIOManager.java @@ -12,7 +12,7 @@ import java.util.List; import java.util.Set; import org.bson.types.ObjectId; import org.gcube.contentmanagement.blobstorage.resource.MemoryType; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; @@ -125,7 +125,7 @@ public class MongoIOManager { return db; } //PATCHED METHODS - protected ObjectId getRemoteObject(GridFS gfs, MyFile resource, GridFSDBFile f) throws IOException, IllegalAccessError { + protected ObjectId getRemoteObject(GridFS gfs, RequestObject resource, GridFSDBFile f) throws IOException, IllegalAccessError { ObjectId id; id=(ObjectId)f.getId(); String lock=(String)f.get("lock"); @@ -141,7 +141,7 @@ public class MongoIOManager { return id; } - public ObjectId getRemoteObject(MyFile resource, GridFSDBFile f) throws IOException, IllegalAccessError { + public ObjectId getRemoteObject(RequestObject resource, GridFSDBFile f) throws IOException, IllegalAccessError { ObjectId id; id=(ObjectId)f.getId(); String lock=(String)f.get("lock"); @@ -187,7 +187,7 @@ public class MongoIOManager { * @param isLock indicates if the file must be locked * @throws IOException */ - private void download(GridFS gfs, MyFile resource, GridFSDBFile f, boolean isLock) throws IOException { + private void download(GridFS gfs, RequestObject resource, GridFSDBFile f, boolean isLock) throws IOException { OperationDefinition op=resource.getOperationDefinition(); logger.info("MongoClient download method: "+op.toString()); // if contains the field link it means that is a link hence I follow ne or more links @@ -218,7 +218,7 @@ public class MongoIOManager { * @param isLock indicates if the file must be locked * @throws IOException */ - private void download( MyFile resource, GridFSDBFile f, boolean isLock) throws IOException { + private void download( RequestObject resource, GridFSDBFile f, boolean isLock) throws IOException { OperationDefinition op=resource.getOperationDefinition(); logger.info("MongoClient download method: "+op.toString()); // if contains the field link it means that is a link hence I follow ne or more links @@ -242,7 +242,7 @@ public class MongoIOManager { } } - public void updateCommonFields(DBObject f, MyFile resource, OPERATION op) { + public void updateCommonFields(DBObject f, RequestObject resource, OPERATION op) { f.put("lastAccess", DateUtils.now("dd MM yyyy 'at' hh:mm:ss z")); String owner=resource.getOwner(); f.put("lastUser", owner); @@ -289,7 +289,7 @@ public class MongoIOManager { close(); throw new IllegalAccessError("The file is locked"); }else{ - oldId=checkAndRemove(fold, (MyFile)resource); + oldId=checkAndRemove(fold, (RequestObject)resource); } } // }else if(oldir == null){ @@ -301,7 +301,7 @@ public class MongoIOManager { } - public ObjectId checkAndRemove(GridFSDBFile f, MyFile resource){ + public ObjectId checkAndRemove(GridFSDBFile f, RequestObject resource){ String idToRemove=f.getId().toString(); logger.info("check and remove object with id "+idToRemove+" and path: "+f.get("filename")); ObjectId idFile=null; @@ -408,12 +408,12 @@ public class MongoIOManager { //maybe this close is not needed // clean(); try{ - if(((MyFile)resource).getInputStream()!= null){ + if(((RequestObject)resource).getInputStream()!= null){ //upload with client inputStream f2 = writeByInputStream(resource, bucket, name, dir,idFile); f2.save(); - }else if(((((MyFile)resource).getType() != null) && (((MyFile)resource).getType().equals("output")))){ + }else if(((((RequestObject)resource).getType() != null) && (((RequestObject)resource).getType().equals("output")))){ // upload with outputstream f2 = writeByOutputStream(resource, bucket, name, dir, idFile); }else{ @@ -429,7 +429,7 @@ public class MongoIOManager { logger.debug("ObjectId: "+id); // if it is an outputstream don't close - if(!((((MyFile)resource).getType() != null) && (((MyFile)resource).getType().equals("output")))){ + if(!((((RequestObject)resource).getType() != null) && (((RequestObject)resource).getType().equals("output")))){ close(); } }catch(IOException e1){ @@ -454,9 +454,9 @@ public class MongoIOManager { throws IOException { GridFSInputFile f2; if(!(memoryType== MemoryType.VOLATILE)) - f2 = createGFSFileObject(new File(((MyFile)resource).getLocalPath()), ((MyFile)resource).getWriteConcern(), ((MyFile)resource).getReadPreference()); + f2 = createGFSFileObject(new File(((RequestObject)resource).getLocalPath()), ((RequestObject)resource).getWriteConcern(), ((RequestObject)resource).getReadPreference()); else - f2 = createGFSFileObject(new File(((MyFile)resource).getLocalPath())); + f2 = createGFSFileObject(new File(((RequestObject)resource).getLocalPath())); fillInputFile(resource, bucket, name, dir, f2, idFile); saveGFSFileObject(f2); return f2; @@ -466,11 +466,11 @@ public class MongoIOManager { String bucket, String name, String dir, ObjectId idFile) throws IOException { GridFSInputFile f2; if(!(memoryType== MemoryType.VOLATILE)) - f2 = createGFSFileObject(((MyFile)resource).getName(), ((MyFile)resource).getWriteConcern(), ((MyFile)resource).getReadPreference()); + f2 = createGFSFileObject(((RequestObject)resource).getName(), ((RequestObject)resource).getWriteConcern(), ((RequestObject)resource).getReadPreference()); else - f2 = createGFSFileObject(((MyFile)resource).getName()); + f2 = createGFSFileObject(((RequestObject)resource).getName()); fillInputFile(resource, bucket, name, dir, f2, idFile); - ((MyFile)resource).setOutputStream(new MongoOutputStream(mongo, f2.getOutputStream())); + ((RequestObject)resource).setOutputStream(new MongoOutputStream(mongo, f2.getOutputStream())); return f2; } @@ -479,13 +479,13 @@ public class MongoIOManager { throws IOException { GridFSInputFile f2; if(!(memoryType== MemoryType.VOLATILE)) - f2 = createGFSFileObject(((MyFile)resource).getInputStream(), ((MyFile)resource).getWriteConcern(),((MyFile)resource).getReadPreference()); + f2 = createGFSFileObject(((RequestObject)resource).getInputStream(), ((RequestObject)resource).getWriteConcern(),((RequestObject)resource).getReadPreference()); else - f2 = createGFSFileObject(((MyFile)resource).getInputStream()); + f2 = createGFSFileObject(((RequestObject)resource).getInputStream()); fillInputFile(resource, bucket, name, dir, f2, idFile); saveGFSFileObject(f2); - ((MyFile)resource).getInputStream().close(); - ((MyFile)resource).setInputStream(null); + ((RequestObject)resource).getInputStream().close(); + ((RequestObject)resource).setInputStream(null); return f2; } @@ -503,14 +503,14 @@ public class MongoIOManager { f2.put("name", name); if(dir!=null) f2.put("dir", dir); - if(((MyFile)resource).getOwner() !=null) - f2.put("owner", ((MyFile)resource).getOwner()); - String mime= ((MyFile)resource).getMimeType(); + if(((RequestObject)resource).getOwner() !=null) + f2.put("owner", ((RequestObject)resource).getOwner()); + String mime= ((RequestObject)resource).getMimeType(); if( mime !=null){ f2.put("mimetype", mime); } f2.put("creationTime", DateUtils.now("dd MM yyyy 'at' hh:mm:ss z")); - updateCommonFields(f2, (MyFile)resource, null); + updateCommonFields(f2, (RequestObject)resource, null); } @@ -521,7 +521,7 @@ public class MongoIOManager { * @param query * @throws UnknownHostException */ - protected void removeObject(GridFS gfs, BasicDBObject query, MyFile resource){ + protected void removeObject(GridFS gfs, BasicDBObject query, RequestObject resource){ List list = gfs.find(query); for(Iterator it=list.iterator(); it.hasNext();){ GridFSDBFile f=(GridFSDBFile)it.next(); @@ -535,19 +535,19 @@ public class MongoIOManager { } - public void setGenericProperties(MyFile resource, String destination, + public void setGenericProperties(RequestObject resource, String destination, String dir, GridFSInputFile destinationFile, String name) { updateCommonFields(destinationFile, resource, null); destinationFile.put("filename", destination); destinationFile.put("type", "file"); destinationFile.put("name", name); destinationFile.put("dir", dir); - destinationFile.put("owner", ((MyFile)resource).getOwner()); - destinationFile.put("mimetype", ((MyFile)resource).getMimeType()); + destinationFile.put("owner", ((RequestObject)resource).getOwner()); + destinationFile.put("mimetype", ((RequestObject)resource).getMimeType()); destinationFile.put("creationTime", DateUtils.now("dd MM yyyy 'at' hh:mm:ss z")); } - public BasicDBObject setGenericMoveProperties(MyFile resource, String filename, String dir, + public BasicDBObject setGenericMoveProperties(RequestObject resource, String filename, String dir, String name, BasicDBObject f) { f.append("filename", filename).append("type", "file").append("name", name).append("dir", dir); return f; @@ -832,7 +832,7 @@ public class MongoIOManager { * @param isLock * @return */ - protected String readByInputStream(MyFile resource, GridFSDBFile f, boolean isLock, int count) { + protected String readByInputStream(RequestObject resource, GridFSDBFile f, boolean isLock, int count) { String key=null; resource.setInputStream(new MongoInputStream(mongo, f.getInputStream())); return key; @@ -845,7 +845,7 @@ public class MongoIOManager { * @return * @throws IOException */ - protected String readByOutputStream(MyFile resource, GridFSDBFile f, boolean isLock, int count) + protected String readByOutputStream(RequestObject resource, GridFSDBFile f, boolean isLock, int count) throws IOException { String key=null; f.writeTo(resource.getOutputStream()); @@ -863,7 +863,7 @@ public class MongoIOManager { * @return * @throws IOException */ - protected String readByPath(MyFile resource, GridFSDBFile f, boolean isLock, int count) + protected String readByPath(RequestObject resource, GridFSDBFile f, boolean isLock, int count) throws IOException { String key=null; try{ diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/MongoOperationManager.java b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/MongoOperationManager.java index 6e9562b..772e42b 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/MongoOperationManager.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/MongoOperationManager.java @@ -1,4 +1,4 @@ -package org.gcube.contentmanagement.blobstorage.transport.backend; + package org.gcube.contentmanagement.blobstorage.transport.backend; import org.bson.types.ObjectId; @@ -13,7 +13,7 @@ import java.util.List; import java.util.Map; import org.gcube.contentmanagement.blobstorage.resource.MemoryType; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition; import org.gcube.contentmanagement.blobstorage.service.impl.ServiceEngine; import org.gcube.contentmanagement.blobstorage.service.operation.*; @@ -48,13 +48,13 @@ public class MongoOperationManager extends TransportManager{ protected static String[] dbNames; - public MongoOperationManager(String[] server, String user, String password, MemoryType memoryType, String[] dbNames,String writeConcern, String readConcern){ - initBackend(server,user,password, memoryType,dbNames, writeConcern, readConcern); + public MongoOperationManager(String[] server, String user, String password, MemoryType memoryType, String[] dbNames,String writeConcern, String readConcern, String token, String region){ + initBackend(server,user,password, memoryType,dbNames, writeConcern, readConcern, token, region); } @Override - public void initBackend(String[] server, String user, String pass, MemoryType memoryType , String[] dbNames, String writeConcern, String readConcern) { + public void initBackend(String[] server, String user, String pass, MemoryType memoryType , String[] dbNames, String writeConcern, String readConcern, String token, String region) { try { this.memoryType=memoryType; MongoOperationManager.dbNames=dbNames; @@ -141,7 +141,7 @@ public class MongoOperationManager extends TransportManager{ } @Override - public Map getValues(MyFile resource, String bucket, Class type){ + public Map getValues(RequestObject resource, String bucket, Class type){ Map map=null; try{ OperationDefinition op=resource.getOperationDefinition(); @@ -214,7 +214,7 @@ public class MongoOperationManager extends TransportManager{ @Override - public void removeRemoteFile(String bucket, MyFile resource) throws UnknownHostException{ + public void removeRemoteFile(String bucket, RequestObject resource) throws UnknownHostException{ logger.info("Check file: "+bucket+ " for removing operation"); GridFSDBFile f=mongoPrimaryInstance.retrieveRemoteDescriptor(bucket, null, true); if(f!=null){ @@ -237,7 +237,7 @@ public class MongoOperationManager extends TransportManager{ @Override - public void removeDir(String remoteDir, MyFile resource){ + public void removeDir(String remoteDir, RequestObject resource){ ArrayList dirs=new ArrayList(); dirs.add(remoteDir); // patch for incompatibility v 1-2 @@ -290,7 +290,7 @@ public class MongoOperationManager extends TransportManager{ } @Override - public long getSize(String remotePath, MyFile file){ + public long getSize(String remotePath, RequestObject file){ long length=-1; if(logger.isDebugEnabled()) logger.debug("MongoDB - get Size for pathServer: "+remotePath); @@ -336,9 +336,9 @@ public class MongoOperationManager extends TransportManager{ } @Override - public long renewTTL(MyFile resource) throws UnknownHostException, IllegalAccessException{ + public long renewTTL(RequestObject resource) throws UnknownHostException, IllegalAccessException{ long ttl=-1; - MyFile file=(MyFile)resource; + RequestObject file=(RequestObject)resource; REMOTE_RESOURCE remoteResourceIdentifier=file.getOperation().getRemoteResource(); String key=file.getLockedKey(); String remotePath=file.getRemotePath(); diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/CopyDirOperator.java b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/CopyDirOperator.java index 1f57588..3bf7279 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/CopyDirOperator.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/CopyDirOperator.java @@ -8,7 +8,7 @@ import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION; import org.gcube.contentmanagement.blobstorage.service.impl.ServiceEngine; import org.gcube.contentmanagement.blobstorage.service.operation.CopyDir; @@ -52,7 +52,7 @@ public class CopyDirOperator extends CopyDir { * @see org.gcube.contentmanagement.blobstorage.service.operation.CopyDir#execute(org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.resource.MyFile, java.lang.String, java.lang.String) */ @Override - public List execute(MongoIOManager mongoPrimaryInstance, MyFile resource, String sourcePath, String destinationPath) + public List execute(MongoIOManager mongoPrimaryInstance, RequestObject resource, String sourcePath, String destinationPath) throws UnknownHostException { String source=sourcePath; source = appendFileSeparator(source); diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/CopyOperator.java b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/CopyOperator.java index 69b5d3f..6d9ed03 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/CopyOperator.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/CopyOperator.java @@ -7,7 +7,7 @@ import java.io.InputStream; import java.net.UnknownHostException; import org.bson.types.ObjectId; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.service.operation.Copy; @@ -47,13 +47,13 @@ public class CopyOperator extends Copy { */ @Override // public String execute(MongoIO mongoPrimaryInstance) throws UnknownHostException { - public String execute(MongoIOManager mongoPrimaryInstance, MyFile resource, String sourcePath, String destinationPath) throws UnknownHostException { + public String execute(MongoIOManager mongoPrimaryInstance, RequestObject resource, String sourcePath, String destinationPath) throws UnknownHostException { String source=sourcePath; String destination=destinationPath; - String dir=((MyFile)resource).getRemoteDir(); - String originalDir=((MyFile)resource).getLocalDir(); + String dir=((RequestObject)resource).getRemoteDir(); + String originalDir=((RequestObject)resource).getLocalDir(); logger.debug("from directory: "+originalDir+ "to directory: "+dir); - String name=((MyFile)resource).getName(); + String name=((RequestObject)resource).getName(); REMOTE_RESOURCE remoteResourceIdentifier=resource.getOperation().getRemoteResource(); ObjectId destinationId=null; logger.debug("copy operation on Mongo backend, parameters: source path: "+source+" destination path: "+destination); @@ -96,11 +96,11 @@ public class CopyOperator extends Copy { public String safePut(MongoIOManager mongoPrimaryInstance, Object resource, String bucket, String key, boolean replace) throws UnknownHostException{ - OperationDefinition op=((MyFile)resource).getOperationDefinition(); - REMOTE_RESOURCE remoteResourceIdentifier=((MyFile)resource).getOperation().getRemoteResource(); + OperationDefinition op=((RequestObject)resource).getOperationDefinition(); + REMOTE_RESOURCE remoteResourceIdentifier=((RequestObject)resource).getOperation().getRemoteResource(); logger.info("MongoClient put method: "+op.toString()); - String dir=((MyFile)resource).getRemoteDir(); - String name=((MyFile)resource).getName(); + String dir=((RequestObject)resource).getRemoteDir(); + String name=((RequestObject)resource).getName(); ObjectId id=null; ObjectId oldId=null; // id of the remote file if present diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/DuplicateOperator.java b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/DuplicateOperator.java index 463a5fb..af717a2 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/DuplicateOperator.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/DuplicateOperator.java @@ -5,7 +5,7 @@ package org.gcube.contentmanagement.blobstorage.transport.backend.operation; import java.io.IOException; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.service.operation.DuplicateFile; import org.gcube.contentmanagement.blobstorage.service.operation.Monitor; @@ -46,8 +46,8 @@ public class DuplicateOperator extends DuplicateFile { */ @Override public String execute(MongoIOManager mongoPrimaryInstance){ - String destination=((MyFile)getResource()).getRemotePath()+Costants.DUPLICATE_SUFFIX; - String dir=((MyFile)getResource()).getRemoteDir(); + String destination=((RequestObject)getResource()).getRemotePath()+Costants.DUPLICATE_SUFFIX; + String dir=((RequestObject)getResource()).getRemoteDir(); // String name=((MyFile)getResource()).getName(); if((getBucket() != null) && (!getBucket().isEmpty())){ REMOTE_RESOURCE remoteResourceIdentifier=resource.getOperation().getRemoteResource(); diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/LinkOperator.java b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/LinkOperator.java index 1b58ad8..4639fd9 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/LinkOperator.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/LinkOperator.java @@ -7,7 +7,7 @@ import java.net.UnknownHostException; import org.bson.types.ObjectId; import org.gcube.contentmanagement.blobstorage.resource.MemoryType; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.service.operation.Link; @@ -49,7 +49,7 @@ public class LinkOperator extends Link { * @see org.gcube.contentmanagement.blobstorage.service.operation.Link#execute(org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.resource.MyFile, java.lang.String) */ @Override - public String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, MyFile resource, String sourcePath, String destinationPath) throws UnknownHostException { + public String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, RequestObject resource, String sourcePath, String destinationPath) throws UnknownHostException { boolean replace=true; String source=sourcePath; String destination=destinationPath; @@ -82,7 +82,7 @@ public class LinkOperator extends Link { String oldir=(String)fold.get("dir"); if(logger.isDebugEnabled()) logger.debug("old dir found "+oldir); - if((oldir.equalsIgnoreCase(((MyFile)resource).getRemoteDir()))){ + if((oldir.equalsIgnoreCase(((RequestObject)resource).getRemoteDir()))){ ObjectId oldId=(ObjectId) fold.getId(); if(!replace){ return oldId.toString(); diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/LockOperator.java b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/LockOperator.java index 5c6e5bb..d31310a 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/LockOperator.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/LockOperator.java @@ -4,7 +4,7 @@ package org.gcube.contentmanagement.blobstorage.transport.backend.operation; import java.io.FileNotFoundException; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; @@ -46,7 +46,7 @@ public class LockOperator extends Lock { * @see org.gcube.contentmanagement.blobstorage.service.operation.Lock#execute(org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO) */ @Override - public String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, MyFile resource, String serverLocation) throws Exception { + public String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, RequestObject resource, String serverLocation) throws Exception { OperationDefinition op=resource.getOperationDefinition(); REMOTE_RESOURCE remoteResourceIdentifier=resource.getOperation().getRemoteResource(); // if((resource.getLocalPath()!= null) && (!resource.getLocalPath().isEmpty())){ diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/MoveDirOperator.java b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/MoveDirOperator.java index 715da42..b16f715 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/MoveDirOperator.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/MoveDirOperator.java @@ -9,7 +9,7 @@ import java.util.List; import org.bson.types.ObjectId; import org.gcube.contentmanagement.blobstorage.resource.MemoryType; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION; import org.gcube.contentmanagement.blobstorage.service.impl.ServiceEngine; import org.gcube.contentmanagement.blobstorage.service.operation.Monitor; @@ -53,7 +53,7 @@ public class MoveDirOperator extends MoveDir { * @see org.gcube.contentmanagement.blobstorage.service.operation.MoveDir#execute(org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.resource.MyFile, java.lang.String, java.lang.String) */ @Override - public List execute(MongoIOManager mongoPrimaryInstance, MyFile resource, String sourcePath, + public List execute(MongoIOManager mongoPrimaryInstance, RequestObject resource, String sourcePath, String destinationPath, MemoryType memoryType) throws UnknownHostException { String source=sourcePath; source = appendFileSeparator(source); diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/MoveOperator.java b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/MoveOperator.java index a2727ac..87941d6 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/MoveOperator.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/MoveOperator.java @@ -7,7 +7,7 @@ import java.net.InetAddress; import java.net.UnknownHostException; import org.gcube.contentmanagement.blobstorage.resource.MemoryType; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION; import org.gcube.contentmanagement.blobstorage.service.impl.ServiceEngine; import org.gcube.contentmanagement.blobstorage.service.operation.Monitor; @@ -54,12 +54,12 @@ public class MoveOperator extends Move { */ @Override // public String execute(MongoIO mongoPrimaryInstance, MemoryType memoryType) throws UnknownHostException { - public String execute(MongoIOManager mongoPrimaryInstance, MemoryType memoryType, MyFile resource, String sourcePath, String destinationPath) throws UnknownHostException { + public String execute(MongoIOManager mongoPrimaryInstance, MemoryType memoryType, RequestObject resource, String sourcePath, String destinationPath) throws UnknownHostException { String source=sourcePath; String destination=destinationPath; resource.setLocalPath(sourcePath); - String dir=((MyFile)resource).getRemoteDir(); - String name=((MyFile)resource).getName(); + String dir=((RequestObject)resource).getRemoteDir(); + String name=((RequestObject)resource).getName(); String destinationId=null; String sourceId=null; logger.info("move operation on Mongo backend, parameters: source path: "+source+" destination path: "+destination); @@ -112,7 +112,7 @@ public class MoveOperator extends Move { // update fields mongoPrimaryInstance.buildDirTree(mongoPrimaryInstance.getMetaDataCollection(mongoPrimaryInstance.getConnectionDB( MongoOperationManager.getPrimaryCollectionName(), true)), dir); sourcePathMetaCollection= new BasicDBObject(); - sourcePathMetaCollection.put("$set", new BasicDBObject().append("dir", dir).append("filename", destinationPath).append("name", name).append("owner", ((MyFile)resource).getOwner())); + sourcePathMetaCollection.put("$set", new BasicDBObject().append("dir", dir).append("filename", destinationPath).append("name", name).append("owner", ((RequestObject)resource).getOwner())); logger.info("new object merged "); mongoPrimaryInstance.printObject(sourcePathMetaCollection); //applies the update @@ -175,7 +175,7 @@ public class MoveOperator extends Move { } - private BasicDBObject setCommonFields(BasicDBObject f, MyFile resource, OPERATION op) { + private BasicDBObject setCommonFields(BasicDBObject f, RequestObject resource, OPERATION op) { String owner=resource.getOwner(); if(op == null){ op=resource.getOperationDefinition().getOperation(); diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/SoftCopyOperator.java b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/SoftCopyOperator.java index 971c338..222f21b 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/SoftCopyOperator.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/SoftCopyOperator.java @@ -8,7 +8,7 @@ import java.net.UnknownHostException; import org.bson.types.ObjectId; import org.gcube.contentmanagement.blobstorage.resource.MemoryType; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.LOCAL_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; @@ -37,7 +37,7 @@ public class SoftCopyOperator extends SoftCopy { Logger logger=LoggerFactory.getLogger(SoftCopyOperator.class); private MemoryType memoryType; private MongoIOManager mongoPrimaryInstance; - private MyFile resource; + private RequestObject resource; /** * @param server * @param user @@ -55,7 +55,7 @@ public class SoftCopyOperator extends SoftCopy { } @Override - public String execute(MongoIOManager mongoPrimaryInstance, MyFile resource, String sourcePath, String destinationPath) + public String execute(MongoIOManager mongoPrimaryInstance, RequestObject resource, String sourcePath, String destinationPath) throws UnknownHostException { REMOTE_RESOURCE remoteResourceIdentifier=resource.getOperation().getRemoteResource(); LOCAL_RESOURCE localResourceIdentifier=resource.getOperation().getLocalResource(); @@ -70,9 +70,9 @@ public class SoftCopyOperator extends SoftCopy { else destination=destinationPath; if(resource!=null){ - String dir=((MyFile)resource).getRemoteDir(); - String name=((MyFile)resource).getName(); - setMemoryType(((MyFile)resource).getGcubeMemoryType()); + String dir=((RequestObject)resource).getRemoteDir(); + String name=((RequestObject)resource).getName(); + setMemoryType(((RequestObject)resource).getGcubeMemoryType()); } setMongoPrimaryInstance(mongoPrimaryInstance); ObjectId mapId=null; @@ -153,7 +153,7 @@ public class SoftCopyOperator extends SoftCopy { return destObject.getId().toString(); } - private String fillGenericDestinationFields(MyFile resource, ObjectId souceId) { + private String fillGenericDestinationFields(RequestObject resource, ObjectId souceId) { String destination; destination=resource.getRootPath()+souceId; resource.setName(souceId.toString()); @@ -173,17 +173,17 @@ public class SoftCopyOperator extends SoftCopy { */ private ObjectId createNewDuplicatesMap(DBCollection metaCollectionInstance, Object resource, GridFSDBFile sourceObject, String bucket, ObjectId sourceId) throws UnknownHostException { ObjectId id = null; - String dir= ((MyFile)resource).getRemoteDir(); + String dir= ((RequestObject)resource).getRemoteDir(); // create new dir (is it really needed in case of map object?) if((dir !=null && !dir.isEmpty()) && (bucket !=null && !bucket.isEmpty())){ getMongoPrimaryInstance().buildDirTree(getMongoPrimaryInstance().getMetaDataCollection(null), dir); } // create new map object - id= createNewObjectMap(metaCollectionInstance, (MyFile)resource, sourceObject, sourceId); + id= createNewObjectMap(metaCollectionInstance, (RequestObject)resource, sourceObject, sourceId); return id; } - private ObjectId createNewObjectMap(DBCollection metaCollectionInstance, MyFile resource, GridFSDBFile source, ObjectId sourceId) throws UnknownHostException { + private ObjectId createNewObjectMap(DBCollection metaCollectionInstance, RequestObject resource, GridFSDBFile source, ObjectId sourceId) throws UnknownHostException { String md5=source.getMD5(); // set type of object DBObject document=new BasicDBObject("type", "map"); @@ -198,7 +198,7 @@ public class SoftCopyOperator extends SoftCopy { return id; } - private DBObject createNewLinkObject(MyFile resource, GridFSDBFile sourceObject, String destination, DBCollection metaCollectionInstance, String md5, ObjectId mapId, ObjectId newId){ + private DBObject createNewLinkObject(RequestObject resource, GridFSDBFile sourceObject, String destination, DBCollection metaCollectionInstance, String md5, ObjectId mapId, ObjectId newId){ DBObject document=new BasicDBObject("type", "file"); document.put("filename", destination); document.put("name", resource.getName()); @@ -218,8 +218,8 @@ public class SoftCopyOperator extends SoftCopy { return fillCommonfields(document, resource, sourceObject, metaCollectionInstance, md5); } - private DBObject fillCommonfields(DBObject document, MyFile resource, GridFSDBFile sourceObject, DBCollection metaCollectionInstance, String md5) { - document.put("mimetype", ((MyFile)resource).getMimeType()); + private DBObject fillCommonfields(DBObject document, RequestObject resource, GridFSDBFile sourceObject, DBCollection metaCollectionInstance, String md5) { + document.put("mimetype", ((RequestObject)resource).getMimeType()); document.put("creationTime", DateUtils.now("dd MM yyyy 'at' hh:mm:ss z")); document.put("md5", md5); document.put("length", sourceObject.getLength()); @@ -305,11 +305,11 @@ public class SoftCopyOperator extends SoftCopy { this.mongoPrimaryInstance = mongoPrimaryInstance; } - public MyFile getResource() { + public RequestObject getResource() { return resource; } - public void setResource(MyFile resource) { + public void setResource(RequestObject resource) { this.resource = resource; } diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/UnlockOperator.java b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/UnlockOperator.java index 428c618..1176475 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/UnlockOperator.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/UnlockOperator.java @@ -5,7 +5,7 @@ package org.gcube.contentmanagement.blobstorage.transport.backend.operation; import java.io.FileNotFoundException; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; @@ -46,7 +46,7 @@ public class UnlockOperator extends Unlock { * @see org.gcube.contentmanagement.blobstorage.service.operation.Unlock#execute(org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO) */ @Override - public String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, MyFile resource, String bucket, String key4unlock) throws Exception { + public String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, RequestObject resource, String bucket, String key4unlock) throws Exception { String id=null; OperationDefinition op=resource.getOperationDefinition(); REMOTE_RESOURCE remoteResourceIdentifier=resource.getOperation().getRemoteResource(); @@ -59,8 +59,8 @@ public class UnlockOperator extends Unlock { // mongoPrimaryInstance.close(); // resource.setOperation(op); // } - String dir=((MyFile)resource).getRemoteDir(); - String name=((MyFile)resource).getName(); + String dir=((RequestObject)resource).getRemoteDir(); + String name=((RequestObject)resource).getName(); String path=getBucket(); if(logger.isDebugEnabled()) logger.debug("DIR: "+dir+" name: "+name+" fullPath "+path+" bucket: "+bucket); @@ -69,7 +69,7 @@ public class UnlockOperator extends Unlock { String oldir=(String)f.get("dir"); if(logger.isDebugEnabled()) logger.debug("old dir found "+oldir); - if((oldir.equalsIgnoreCase(((MyFile)resource).getRemoteDir())) || ((MyFile)resource).getRemoteDir()==null){ + if((oldir.equalsIgnoreCase(((RequestObject)resource).getRemoteDir())) || ((RequestObject)resource).getRemoteDir()==null){ String lock=(String)f.get("lock"); //check if the od file is locked if((lock !=null) && (!lock.isEmpty())){ @@ -77,14 +77,14 @@ public class UnlockOperator extends Unlock { if(lck.equalsIgnoreCase(key4unlock)){ f.put("lock", null); f.put("timestamp", null); - mongoPrimaryInstance.updateCommonFields((GridFSFile)f, (MyFile)resource, OPERATION.UNLOCK); + mongoPrimaryInstance.updateCommonFields((GridFSFile)f, (RequestObject)resource, OPERATION.UNLOCK); f.save(); }else{ mongoPrimaryInstance.close(); throw new IllegalAccessError("bad key for unlock"); } }else{ - mongoPrimaryInstance.updateCommonFields((GridFSFile)f, (MyFile)resource, OPERATION.UNLOCK); + mongoPrimaryInstance.updateCommonFields((GridFSFile)f, (RequestObject)resource, OPERATION.UNLOCK); f.save(); } }else{ diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/UploadOperator.java b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/UploadOperator.java index 324fce7..9983a79 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/UploadOperator.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/UploadOperator.java @@ -5,7 +5,7 @@ package org.gcube.contentmanagement.blobstorage.transport.backend.operation; import java.io.IOException; import org.bson.types.ObjectId; -import org.gcube.contentmanagement.blobstorage.resource.MyFile; +import org.gcube.contentmanagement.blobstorage.resource.RequestObject; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.service.operation.Monitor; @@ -44,12 +44,12 @@ public class UploadOperator extends Upload { * @see org.gcube.contentmanagement.blobstorage.service.operation.Upload#execute(org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO) */ @Override - public String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, MyFile resource, String bucket, boolean replace) throws IOException { - OperationDefinition op=((MyFile)resource).getOperationDefinition(); - REMOTE_RESOURCE remoteResourceIdentifier=((MyFile)resource).getOperation().getRemoteResource(); + public String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, RequestObject resource, String bucket, boolean replace) throws IOException { + OperationDefinition op=((RequestObject)resource).getOperationDefinition(); + REMOTE_RESOURCE remoteResourceIdentifier=((RequestObject)resource).getOperation().getRemoteResource(); logger.info("MongoClient put method: "+op.toString()); - String dir=((MyFile)resource).getRemoteDir(); - String name=((MyFile)resource).getName(); + String dir=((RequestObject)resource).getRemoteDir(); + String name=((RequestObject)resource).getName(); Object id=null; ObjectId oldId=null; // id of the remote file if present @@ -79,11 +79,11 @@ public class UploadOperator extends Upload { } public String executeSafeMode(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance) throws IOException { - OperationDefinition op=((MyFile)resource).getOperationDefinition(); - REMOTE_RESOURCE remoteResourceIdentifier=((MyFile)resource).getOperation().getRemoteResource(); + OperationDefinition op=((RequestObject)resource).getOperationDefinition(); + REMOTE_RESOURCE remoteResourceIdentifier=((RequestObject)resource).getOperation().getRemoteResource(); logger.info("MongoClient put method: "+op.toString()); - String dir=((MyFile)resource).getRemoteDir(); - String name=((MyFile)resource).getName(); + String dir=((RequestObject)resource).getRemoteDir(); + String name=((RequestObject)resource).getName(); ObjectId id=null; ObjectId oldId=null; // id of the remote file if present