From 5014089ac533888207d757f85b7a03f0111874f0 Mon Sep 17 00:00:00 2001 From: "massimiliano.assante" Date: Wed, 12 Dec 2012 16:16:21 +0000 Subject: [PATCH] git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/application-support-layer/applicationSupportLayerSocial@62270 82a268e6-3cf1-43bd-a215-b396298e98cf --- ...nager.java => ApplicationNewsManager.java} | 61 +++++++++---------- .../social/NewsManager.java | 2 - .../social/SocialPortalBridge.java | 16 +++-- 3 files changed, 39 insertions(+), 40 deletions(-) rename src/main/java/org/gcube/applicationsupportlayer/social/{AslNewsManager.java => ApplicationNewsManager.java} (81%) diff --git a/src/main/java/org/gcube/applicationsupportlayer/social/AslNewsManager.java b/src/main/java/org/gcube/applicationsupportlayer/social/ApplicationNewsManager.java similarity index 81% rename from src/main/java/org/gcube/applicationsupportlayer/social/AslNewsManager.java rename to src/main/java/org/gcube/applicationsupportlayer/social/ApplicationNewsManager.java index 066f8fb..86d6964 100644 --- a/src/main/java/org/gcube/applicationsupportlayer/social/AslNewsManager.java +++ b/src/main/java/org/gcube/applicationsupportlayer/social/ApplicationNewsManager.java @@ -4,13 +4,13 @@ import java.util.Date; import java.util.List; import java.util.UUID; +import javax.servlet.http.HttpServlet; + import org.gcube.application.framework.core.session.ASLSession; import org.gcube.common.core.contexts.GHNContext; import org.gcube.common.core.informationsystem.client.ISClient; import org.gcube.common.core.informationsystem.client.XMLResult; import org.gcube.common.core.informationsystem.client.queries.GCUBEGenericQuery; -import org.gcube.portal.databook.server.DBCassandraAstyanaxImpl; -import org.gcube.portal.databook.server.DatabookStore; import org.gcube.portal.databook.shared.Application; import org.gcube.portal.databook.shared.Feed; import org.gcube.portal.databook.shared.FeedType; @@ -24,7 +24,7 @@ import org.gcube.portlets.user.homelibrary.home.data.application.ApplicationData * * use to share updates from within your application, the update will be published in the Users News Feed belonging to the VRE your application runs into */ -public class AslNewsManager extends SocialPortalBridge implements NewsManager { +public class ApplicationNewsManager extends SocialPortalBridge implements NewsManager { private Application application; /** @@ -32,7 +32,7 @@ public class AslNewsManager extends SocialPortalBridge implements NewsManager { * @param aslSession the ASLSession instance * @param applicationClass your servlet class name will be used ad unique identifier for your application */ - public AslNewsManager(ASLSession session, Class applicationClass) { + public ApplicationNewsManager(ASLSession session, Class applicationClass) { super(session); this.application = getProfileFromInfrastrucure(applicationClass); } @@ -41,7 +41,7 @@ public class AslNewsManager extends SocialPortalBridge implements NewsManager { * @param applicationClass * @return the application profile */ - private Application getProfileFromInfrastrucure(Class applicationClass) { + private Application getProfileFromInfrastrucure(Class applicationClass) { try { Application toReturn = new Application(); ISClient client = GHNContext.getImplementation(ISClient.class); @@ -97,46 +97,41 @@ public class AslNewsManager extends SocialPortalBridge implements NewsManager { */ @Override public boolean shareApplicationUpdate(String description) { - String descToAdd = escapeHtml(description); - - Feed toShare = new Feed( - UUID.randomUUID().toString(), - FeedType.PUBLISH, - application.getName(), - new Date(), - getScopeByOrganizationId(""+aslSession.getGroupId()), - "", - "", - descToAdd, - PrivacyLevel.SINGLE_VRE, - "fullName", - "email", - "thumbnailURL", - "linkTitle", - "linkDescription", - "linkHost"); - - return getStoreInstance().saveAppFeed(toShare); + return getStoreInstance().saveAppFeed(buildFeed(description, "", "", "", "")); } /** * {@inheritDoc} */ @Override public boolean shareApplicationUpdate(String description, String uri) { - return true; + return getStoreInstance().saveAppFeed(buildFeed(description, uri, "", "", "")); } /** * {@inheritDoc} */ @Override public boolean shareApplicationUpdate(String description, String uri, String previewTitle, String previewDescription, String previewThumbnailUrl) { - return true; + return getStoreInstance().saveAppFeed(buildFeed(description, uri, previewTitle, previewDescription, previewThumbnailUrl)); } - - @Override - public DatabookStore connect() { - return new DBCassandraAstyanaxImpl(); + + private Feed buildFeed(String description, String uri, String previewTitle, String previewDescription, String previewThumbnailUrl) { + String descToAdd = escapeHtml(description); + Feed toReturn = new Feed( + UUID.randomUUID().toString(), + FeedType.PUBLISH, + application.getKey(), + new Date(), + getScopeByOrganizationId(""+aslSession.getGroupId()), + uri, + previewThumbnailUrl, + descToAdd, + PrivacyLevel.SINGLE_VRE, + application.getName(), + "no-email", + application.getImageUrl(), + previewTitle, + previewDescription, + ""); + return toReturn; } - - } diff --git a/src/main/java/org/gcube/applicationsupportlayer/social/NewsManager.java b/src/main/java/org/gcube/applicationsupportlayer/social/NewsManager.java index 58068f8..ed62fa7 100644 --- a/src/main/java/org/gcube/applicationsupportlayer/social/NewsManager.java +++ b/src/main/java/org/gcube/applicationsupportlayer/social/NewsManager.java @@ -1,6 +1,5 @@ package org.gcube.applicationsupportlayer.social; -import org.gcube.portal.databook.server.DatabookStore; /** @@ -39,5 +38,4 @@ public interface NewsManager { * @return true if the update is correctly delivered, false otherwise */ boolean shareApplicationUpdate(String description, String uri, String previewTitle, String previewDescription, String previewThumbnailUrl); - DatabookStore connect(); } diff --git a/src/main/java/org/gcube/applicationsupportlayer/social/SocialPortalBridge.java b/src/main/java/org/gcube/applicationsupportlayer/social/SocialPortalBridge.java index 84a17ee..5a2fc8b 100644 --- a/src/main/java/org/gcube/applicationsupportlayer/social/SocialPortalBridge.java +++ b/src/main/java/org/gcube/applicationsupportlayer/social/SocialPortalBridge.java @@ -11,7 +11,7 @@ import org.gcube.vomanagement.usermanagement.impl.liferay.LiferayGroupManager; * @author Massimiliano Assante, ISTI-CNR * @version 0.1 Dec 2012 * - * use to notify users from within your application + * superclass for social portal bridge */ public abstract class SocialPortalBridge { @@ -19,11 +19,17 @@ public abstract class SocialPortalBridge { protected ASLSession aslSession; //unique instance private static DatabookStore store; - + /** + * + * @param session + */ public SocialPortalBridge(ASLSession session) { this.aslSession = session; } - + /** + * + * @return the unique instance of the store + */ public static synchronized DatabookStore getStoreInstance() { if (store == null) { store = new DBCassandraAstyanaxImpl(); @@ -31,7 +37,7 @@ public abstract class SocialPortalBridge { return store; } - String getScopeByOrganizationId(String vreid) { + protected String getScopeByOrganizationId(String vreid) { GroupManager gm = new LiferayGroupManager(); try { return gm.getScope(vreid); @@ -47,7 +53,7 @@ public abstract class SocialPortalBridge { * @param html the html string to escape * @return the escaped string */ - String escapeHtml(String html) { + protected String escapeHtml(String html) { if (html == null) { return null; }