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);