From 75885be62eeb16e53a65a6c1d6eec2e53c171b82 Mon Sep 17 00:00:00 2001 From: "massimiliano.assante" Date: Tue, 21 Jan 2014 10:36:13 +0000 Subject: [PATCH] added storagemanager git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/application-support-layer/applicationSupportLayerSocial@90286 82a268e6-3cf1-43bd-a215-b396298e98cf --- pom.xml | 17 +++++-- .../social/{ftp => storage}/FTPManager.java | 8 +++- .../social/storage/StorageManager.java | 46 +++++++++++++++++++ 3 files changed, 67 insertions(+), 4 deletions(-) rename src/main/java/org/gcube/applicationsupportlayer/social/{ftp => storage}/FTPManager.java (94%) create mode 100644 src/main/java/org/gcube/applicationsupportlayer/social/storage/StorageManager.java diff --git a/pom.xml b/pom.xml index c433fe4..e573659 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ org.gcube.applicationsupportlayer aslsocial - 0.7.1-SNAPSHOT + 0.7.2-SNAPSHOT jar Social Portal ASL Extension @@ -53,7 +53,7 @@ aslcore provided - + org.gcube.common home-library provided @@ -90,6 +90,17 @@ [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) provided + + org.gcube.contentmanagement + storage-manager-core + [2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT) + compile + + + org.gcube.contentmanagement + storage-manager-wrapper + [2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT) + com.liferay.portal portal-service @@ -98,7 +109,7 @@ log4j log4j - + org.slf4j slf4j-log4j12 diff --git a/src/main/java/org/gcube/applicationsupportlayer/social/ftp/FTPManager.java b/src/main/java/org/gcube/applicationsupportlayer/social/storage/FTPManager.java similarity index 94% rename from src/main/java/org/gcube/applicationsupportlayer/social/ftp/FTPManager.java rename to src/main/java/org/gcube/applicationsupportlayer/social/storage/FTPManager.java index 5dea787..467302f 100644 --- a/src/main/java/org/gcube/applicationsupportlayer/social/ftp/FTPManager.java +++ b/src/main/java/org/gcube/applicationsupportlayer/social/storage/FTPManager.java @@ -1,4 +1,4 @@ -package org.gcube.applicationsupportlayer.social.ftp; +package org.gcube.applicationsupportlayer.social.storage; import static org.gcube.resources.discovery.icclient.ICFactory.clientFor; import static org.gcube.resources.discovery.icclient.ICFactory.queryFor; @@ -74,7 +74,13 @@ public class FTPManager { ftpUrl = ac.address(); httpBaseURL = res.profile().runtime().hostedOn(); user = ac.username(); + + + //set the scope + String currScope = ScopeProvider.instance.get(); + ScopeProvider.instance.set("/"+PortalContext.getConfiguration().getInfrastructureName()); pwd = StringEncrypter.getEncrypter().decrypt(ac.password()); + ScopeProvider.instance.set(currScope); // Connect to the FTP server client.connect(ftpUrl); diff --git a/src/main/java/org/gcube/applicationsupportlayer/social/storage/StorageManager.java b/src/main/java/org/gcube/applicationsupportlayer/social/storage/StorageManager.java new file mode 100644 index 0000000..124e547 --- /dev/null +++ b/src/main/java/org/gcube/applicationsupportlayer/social/storage/StorageManager.java @@ -0,0 +1,46 @@ +package org.gcube.applicationsupportlayer.social.storage; + +import org.gcube.common.portal.PortalContext; +import org.gcube.common.scope.api.ScopeProvider; +import org.gcube.contentmanagement.blobstorage.service.IClient; +import org.gcube.contentmanager.storageclient.wrapper.AccessType; +import org.gcube.contentmanager.storageclient.wrapper.MemoryType; +import org.gcube.contentmanager.storageclient.wrapper.StorageClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +/** + * + * @author Massimiliano Assante, ISTI-CNR + * + */ +public class StorageManager { + private static final Logger _log = LoggerFactory.getLogger(StorageManager.class); + + + private static final String STORAGE_OWNER = "gCubeSocialFramework"; + + private static StorageManager singleton; + + private static IClient client; + + private StorageManager() { + try { + //set the scope + String currScope = ScopeProvider.instance.get(); + ScopeProvider.instance.set("/"+PortalContext.getConfiguration().getInfrastructureName()); + client = new StorageClient(STORAGE_OWNER, AccessType.PRIVATE, MemoryType.PERSISTENT).getClient(); + ScopeProvider.instance.set(currScope); + singleton = this; + _log.trace("Social Framework Storage initialized - OK"); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static IClient getClient() { + if (singleton == null) { + singleton = new StorageManager(); + } + return client; + } +}