diff --git a/pom.xml b/pom.xml index 7012ae4..7cc8722 100644 --- a/pom.xml +++ b/pom.xml @@ -69,6 +69,17 @@ aslvre [5.0.0-SNAPSHOT, 6.0.0-SNAPSHOT) + + org.gcube.applicationsupportlayer + aslsocial + provided + + + org.gcube.common + home-library + [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) + provided + org.gcube.portlets.user gcube-widgets @@ -83,6 +94,7 @@ org.gcube.core common-scope-maps [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) + provided org.gcube.vremanagement diff --git a/src/main/java/org/gcube/portlets/admin/vredeployer/server/VREDeployerServiceImpl.java b/src/main/java/org/gcube/portlets/admin/vredeployer/server/VREDeployerServiceImpl.java index 0a4183e..76ae5b5 100644 --- a/src/main/java/org/gcube/portlets/admin/vredeployer/server/VREDeployerServiceImpl.java +++ b/src/main/java/org/gcube/portlets/admin/vredeployer/server/VREDeployerServiceImpl.java @@ -29,6 +29,10 @@ import javax.xml.transform.stream.StreamSource; import org.gcube.application.framework.core.session.ASLSession; import org.gcube.application.framework.core.session.SessionManager; import org.gcube.application.framework.vremanagement.vremanagement.impl.VREGeneratorEvo; +import org.gcube.applicationsupportlayer.social.ApplicationNotificationsManager; +import org.gcube.applicationsupportlayer.social.NotificationsManager; +import org.gcube.common.homelibrary.home.HomeLibrary; +import org.gcube.common.homelibrary.home.workspace.Workspace; import org.gcube.portal.custom.communitymanager.OrganizationsUtil; import org.gcube.portal.custom.communitymanager.PortletsIdManager; import org.gcube.portal.custom.communitymanager.ThemesIdManager; @@ -163,7 +167,7 @@ public class VREDeployerServiceImpl extends RemoteServiceServlet implements Vre */ private ASLSession getASLSession() { log.info("getVREGeneratorEvo getASLSession() : "); - HttpSession session = this.getThreadLocalRequest().getSession(); + HttpSession session = this.getThreadLocalRequest().getSession(); String username = (String) session.getAttribute(ScopeHelper.USERNAME_ATTRIBUTE); if (username == null) { username = "massimiliano.assante"; @@ -616,18 +620,18 @@ public class VREDeployerServiceImpl extends RemoteServiceServlet implements Vre e.printStackTrace(); return false; } -// AccessLogger log = AccessLogger.getAccessLogger(); -// CreatedVRELogEntry logEntry; -// try { -// logEntry = new CreatedVRELogEntry( -// vreGenerator.getVREModel().name(), -// vreGenerator.getVREepr(), -// vreGenerator.getVREModel().designer(), -// vreGenerator.getVREModel().manager()); -// log.logEntry(getASLSession().getUsername(), getASLSession().getScopeName(), logEntry); -// } catch (RemoteException e) { -// e.printStackTrace(); -// } + // AccessLogger log = AccessLogger.getAccessLogger(); + // CreatedVRELogEntry logEntry; + // try { + // logEntry = new CreatedVRELogEntry( + // vreGenerator.getVREModel().name(), + // vreGenerator.getVREepr(), + // vreGenerator.getVREModel().designer(), + // vreGenerator.getVREModel().manager()); + // log.logEntry(getASLSession().getUsername(), getASLSession().getScopeName(), logEntry); + // } catch (RemoteException e) { + // e.printStackTrace(); + // } return true; } @@ -670,15 +674,38 @@ public class VREDeployerServiceImpl extends RemoteServiceServlet implements Vre } if (report.getStatus() == Status.Finished) { - System.out.println("--- Create VRE COMPLETED, CREATING LAYOUTS AND COMMUNITY ... "); + log.info("--- Create VRE COMPLETED, CREATING LAYOUTS AND COMMUNITY ... "); String name = ""; try { name = vreGenerator.getVREModel().name(); } catch (RemoteException e) { e.printStackTrace(); } - createCommunityAndLayout(name); - System.out.println("--- CREATed LAYOUTS AND COMMUNITY ---"); + if (createCommunityAndLayout(name)) { + log.info("--- CREATED LAYOUTS AND COMMUNITY --- OK, sending Message to designer."); + try { + String designer = (String) getASLSession().getAttribute(DESIGNER); + String manager = (String) getASLSession().getAttribute(MANAGER); + UserManager um = new LiferayUserManager(); + UserModel userDesigner = um.getUserByScreenName(designer); + UserModel userManager = um.getUserByScreenName(manager); + + Workspace workspace = HomeLibrary.getUserWorkspace(getASLSession().getUsername()); + ArrayList toSend = new ArrayList(); + toSend.add(designer); + String subject = "VRE Definition approved and deployed"; + String body = "Dear "+userDesigner.getFirstname()+", \n\n" + userManager.getFullname() + " has approved the deployment of the Virtual Research Environment you requested: " + name +"."; + body+=".\n\nThis VRE has been deployed successfully and is already available for you on this portal. Please, check your Virtual Research Environments list."; + workspace.getWorkspaceMessageManager().sendMessageToPortalLogins(subject, body, new ArrayList(), toSend); + NotificationsManager nnm = new ApplicationNotificationsManager(getASLSession()); + if (nnm.notifyMessageReceived(designer, subject)) + log.trace("Sending VRE Definition create notification: " + subject + " OK"); + } catch (Exception e) { + + } + } else + log.error("--- DANGER DANGER DANGER!!!!! -> CREATED LAYOUTS AND COMMUNITY WITH ERRORS"); + } else setDeployingStatusOn(); @@ -854,11 +881,11 @@ public class VREDeployerServiceImpl extends RemoteServiceServlet implements Vre /** * Creates the community and its layout in Liferay */ - private void createCommunityAndLayout(String vreName) { + private boolean createCommunityAndLayout(String vreName) { if (vreExists(vreName)) { System.out.println("VRE Exists already"); - return; + return false; } @@ -919,7 +946,9 @@ public class VREDeployerServiceImpl extends RemoteServiceServlet implements Vre } catch (Exception e) { e.printStackTrace(); + return false; } + return true; } /** * Create a Regular Manager Role for the community @@ -1000,7 +1029,7 @@ public class VREDeployerServiceImpl extends RemoteServiceServlet implements Vre InputSource inputSource = new InputSource(reader); log.debug("***** --- Reading **** "); - + try { document = builder.parse(inputSource);