diff --git a/pom.xml b/pom.xml index 930e6bc..fac856f 100644 --- a/pom.xml +++ b/pom.xml @@ -85,6 +85,10 @@ ${gwtVersion} provided + + com.github.gwtbootstrap + gwt-bootstrap + org.gcube.portlets.widgets session-checker diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/Presenter/Presenter.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/Presenter/Presenter.java index 7b724ca..319bf48 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/Presenter/Presenter.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/Presenter/Presenter.java @@ -117,6 +117,7 @@ public class Presenter { private UserBean currentUser; private String currentScope; + private String currentReportsStoreGatewayURL; private ClientImage selectedImage; @@ -329,9 +330,10 @@ public class Presenter { public void onFailure(Throwable caught) {} public void onSuccess(final SessionInfo sessionInfo) { - currentUser = sessionInfo.getUsername(); + currentUser = sessionInfo.getUserName(); currentScope = sessionInfo.getScope(); isVME = sessionInfo.isVME(); + currentReportsStoreGatewayURL = sessionInfo.getRsgEndpoint(); addTextToolBar(true); if (sessionInfo.isWorkflowDocument()) { model.getModelService().getWorkflowDocumentFromDocumentLibrary(new AsyncCallback() { @@ -382,7 +384,7 @@ public class Presenter { } public void showOpenOptions() { - wp.showOpenOptions(isVME); + wp.showOpenOptions(isVME, currentReportsStoreGatewayURL); } public void showLoading() { diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/WorkspacePanel.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/WorkspacePanel.java index 27690df..b71b649 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/WorkspacePanel.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/WorkspacePanel.java @@ -9,6 +9,8 @@ import org.gcube.portlets.user.reportgenerator.client.uibinder.OpenOptions; import org.gcube.portlets.user.reportgenerator.client.uibinder.OpenOptionsVME; import org.gcube.portlets.user.reportgenerator.client.uibinder.ShowLoading; +import com.github.gwtbootstrap.client.ui.AlertBlock; +import com.github.gwtbootstrap.client.ui.constants.AlertType; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Widget; @@ -73,9 +75,13 @@ public class WorkspacePanel extends Composite { //showOpenOptions(); } - public void showOpenOptions(boolean isVME) { - if (isVME) + public void showOpenOptions(boolean isVME, String rsgURL) { + if (isVME) { + AlertBlock connectInfo = new AlertBlock(AlertType.SUCCESS); + connectInfo.setHeading("Succesfully connected to: " + rsgURL); + mainLayout.add(connectInfo); mainLayout.add(new OpenOptionsVME(presenter)); + } else mainLayout.add(new OpenOptions(presenter)); } diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/DownloadImageServlet.java b/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/DownloadImageServlet.java index 1cfc3bd..9154903 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/DownloadImageServlet.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/DownloadImageServlet.java @@ -97,7 +97,7 @@ public class DownloadImageServlet extends HttpServlet { _log.warn("Found scope null, setting infrastructure scope="+scope2Set); } if (user == null) { - user = ReportServiceImpl.getDevUser(); + user = ReportServiceImpl.TEST_USER; ScopeProvider.instance.set(ReportServiceImpl.TEST_SCOPE); _log.warn("User is null in session, setting dev user = " + user); } diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ReportServiceImpl.java b/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ReportServiceImpl.java index 437eaca..0169b69 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ReportServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ReportServiceImpl.java @@ -134,9 +134,6 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe private static final Logger _log = LoggerFactory.getLogger(ReportServiceImpl.class); - public static final String TEST_SCOPE = "/gcube/devsec/devVRE"; - //public static final String TEST_SCOPE = "/gcube/devNext/NextNext"; - protected static final String IMAGE_SERVICE_URL = "reports/DownloadService"; /** * @@ -156,7 +153,8 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe public static final String RSG_WS_ADDRESS = "RSG-WS-ENDPOINT"; private static final String REPORT_IMAGES_FOLDER = "Report Images"; - + public static final String TEST_USER = "test.user"; + public static final String TEST_SCOPE = "/gcube/devsec/devVRE"; /** * the WF DB Store @@ -186,22 +184,26 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe String user = (String) this.getThreadLocalRequest().getSession().getAttribute(ScopeHelper.USERNAME_ATTRIBUTE); if (user == null) { - user = getDevUser(); - this.getThreadLocalRequest().getSession().setAttribute(ScopeHelper.USERNAME_ATTRIBUTE, user); - SessionManager.getInstance().getASLSession(sessionID, user).setScope(TEST_SCOPE); - String email = user+"@isti.cnr.it"; - String fullName = "Massimiliano Assante"; - String thumbnailURL = "images/Avatar_default.png"; - SessionManager.getInstance().getASLSession(sessionID, user).setUserEmailAddress(email); - SessionManager.getInstance().getASLSession(sessionID, user).setUserAvatarId(thumbnailURL); - SessionManager.getInstance().getASLSession(sessionID, user).setUserFullName(fullName); + user = getDevelopmentUser(); + if (user.compareTo(TEST_USER) != 0) { + SessionManager.getInstance().getASLSession(sessionID, user).setScope(TEST_SCOPE); + this.getThreadLocalRequest().getSession().setAttribute(ScopeHelper.USERNAME_ATTRIBUTE, user); + String email = user+"@isti.cnr.it"; + String fullName = "Andrea Rossi"; + String thumbnailURL = "images/Avatar_default.png"; + SessionManager.getInstance().getASLSession(sessionID, user).setUserEmailAddress(email); + SessionManager.getInstance().getASLSession(sessionID, user).setUserAvatarId(thumbnailURL); + SessionManager.getInstance().getASLSession(sessionID, user).setUserFullName(fullName); + } } return SessionManager.getInstance().getASLSession(sessionID, user); } - public static String getDevUser() { - return "massimiliano.assante"; + public String getDevelopmentUser() { + String user = TEST_USER; + // user = "andrea.rossi"; + return user; } /** * @@ -708,13 +710,15 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe private RSGAccessPoint getRSGWSAddress() { RSGAccessPoint rsgAp = (RSGAccessPoint) this.getThreadLocalRequest().getSession().getAttribute(RSG_WS_ADDRESS); - _log.trace("getRSGWSAddress: " + rsgAp.getRestUrl()); + if (rsgAp != null) + _log.trace("getRSGWSAddress: " + rsgAp.getRestUrl()); return rsgAp; } private void setRSGWSAddress(RSGAccessPoint rsgAp) { this.getThreadLocalRequest().getSession().setAttribute(RSG_WS_ADDRESS, rsgAp); - _log.trace("setting RSG WS address to " + rsgAp.getRestUrl()); + if (rsgAp != null) + _log.trace("setting RSG WS address to " + rsgAp.getRestUrl()); } /** * @@ -889,8 +893,8 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe else if (imageItem.getFolderItemType()==FolderItemType.IMAGE_DOCUMENT){ GCubeItem image = (GCubeItem)item; if (image.getMimeType().equals("image/tiff")) -// image.getProperties().getProperties().get(NodeProperty.THUMBNAIL_DATA); //this is a problem -// else + // image.getProperties().getProperties().get(NodeProperty.THUMBNAIL_DATA); //this is a problem + // else data = image.getData(); } if (data != null) { @@ -1312,24 +1316,27 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe */ public SessionInfo getSessionInfo(String currentHost) { if (testWorkflow) { - getASLSession().setAttribute(WfDocsLibrary.WORKFLOW_ID_ATTRIBUTE, "1"); getASLSession().setAttribute(WfDocsLibrary.WORKFLOW_GIVEN_NAME, "TEST REPORT"); getASLSession().setAttribute(WfDocsLibrary.WORKFLOW_READONLY_ATTRIBUTE, true); - return new SessionInfo(getUserBean(), getVreName(), true, true, false); + return new SessionInfo(getUserBean(), getVreName(), true, true, false, ""); } boolean isVME = isReportsStoreGatewayAvailable(); if (getASLSession().getAttribute(WfDocsLibrary.WORKFLOW_ID_ATTRIBUTE) == null) { _log.debug("WfDocsLibrary.WORKFLOW_ID_ATTRIBUTE is NULL: "); - return new SessionInfo(getUserBean(), getVreName(), false, false, isVME); + String rsgEndpoint = ""; + if (getRSGWSAddress() != null) + rsgEndpoint = ((RSGAccessPoint) getRSGWSAddress()).getRestUrl(); + return new SessionInfo(getUserBean(), getVreName(), false, false, isVME, rsgEndpoint); + } else { _log.debug("FOUND WORKFLOW_ID_ATTRIBUTE ***** "); //String workflowid = getASLSession().getAttribute(WfDocsLibrary.WORKFLOW_ID_ATTRIBUTE).toString(); Boolean canEdit = ! (Boolean) getASLSession().getAttribute(WfDocsLibrary.WORKFLOW_READONLY_ATTRIBUTE); - return new SessionInfo(getUserBean(), getVreName(), true, canEdit, false); + return new SessionInfo(getUserBean(), getVreName(), true, canEdit, false, ""); } } @@ -1652,7 +1659,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe } return rsgReadClient; } - + private RsgWriteClient getRsgSecureClient() { RSGAccessPoint rsgWsAddr = getRSGWSAddress(); if (rsgWriteClient == null) { diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/shared/SessionInfo.java b/src/main/java/org/gcube/portlets/user/reportgenerator/shared/SessionInfo.java index 55bf82d..b3096fa 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/shared/SessionInfo.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/shared/SessionInfo.java @@ -10,29 +10,27 @@ public class SessionInfo implements Serializable { private Boolean isWorkflowDocument; private Boolean isEditable; private Boolean isVME; + private String rsgEndpoint; public SessionInfo() { } - public SessionInfo( - org.gcube.portlets.user.reportgenerator.shared.UserBean user, - String scope, Boolean isWorkflowDocument, Boolean isEditable, - Boolean isVME) { + public SessionInfo(UserBean user, String scope, Boolean isWorkflowDocument, + Boolean isEditable, Boolean isVME, String rsgEndpoint) { super(); this.user = user; this.scope = scope; this.isWorkflowDocument = isWorkflowDocument; this.isEditable = isEditable; this.isVME = isVME; + this.rsgEndpoint = rsgEndpoint; } - - - public UserBean getUsername() { + public UserBean getUserName() { return user; } - public void UserBean(UserBean userBean) { - this.user = userBean; + public void setUser(UserBean user) { + this.user = user; } public String getScope() { @@ -47,7 +45,7 @@ public class SessionInfo implements Serializable { return isWorkflowDocument; } - public void setIsWorkflowDocument(Boolean isWorkflowDocument) { + public void setWorkflowDocument(Boolean isWorkflowDocument) { this.isWorkflowDocument = isWorkflowDocument; } @@ -55,8 +53,8 @@ public class SessionInfo implements Serializable { return isEditable; } - public void setEditable(Boolean canEdit) { - this.isEditable = canEdit; + public void setEditable(Boolean isEditable) { + this.isEditable = isEditable; } public Boolean isVME() { @@ -66,6 +64,82 @@ public class SessionInfo implements Serializable { public void setIsVME(Boolean isVME) { this.isVME = isVME; } - + + public String getRsgEndpoint() { + return rsgEndpoint; + } + + public void setRsgEndpoint(String rsgEndpoint) { + this.rsgEndpoint = rsgEndpoint; + } + + @Override + public String toString() { + return "SessionInfo [user=" + user + ", scope=" + scope + + ", isWorkflowDocument=" + isWorkflowDocument + + ", isEditable=" + isEditable + ", isVME=" + isVME + + ", rsgEndpoint=" + rsgEndpoint + "]"; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + + ((isEditable == null) ? 0 : isEditable.hashCode()); + result = prime * result + ((isVME == null) ? 0 : isVME.hashCode()); + result = prime + * result + + ((isWorkflowDocument == null) ? 0 : isWorkflowDocument + .hashCode()); + result = prime * result + + ((rsgEndpoint == null) ? 0 : rsgEndpoint.hashCode()); + result = prime * result + ((scope == null) ? 0 : scope.hashCode()); + result = prime * result + ((user == null) ? 0 : user.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + SessionInfo other = (SessionInfo) obj; + if (isEditable == null) { + if (other.isEditable != null) + return false; + } else if (!isEditable.equals(other.isEditable)) + return false; + if (isVME == null) { + if (other.isVME != null) + return false; + } else if (!isVME.equals(other.isVME)) + return false; + if (isWorkflowDocument == null) { + if (other.isWorkflowDocument != null) + return false; + } else if (!isWorkflowDocument.equals(other.isWorkflowDocument)) + return false; + if (rsgEndpoint == null) { + if (other.rsgEndpoint != null) + return false; + } else if (!rsgEndpoint.equals(other.rsgEndpoint)) + return false; + if (scope == null) { + if (other.scope != null) + return false; + } else if (!scope.equals(other.scope)) + return false; + if (user == null) { + if (other.user != null) + return false; + } else if (!user.equals(other.user)) + return false; + return true; + } + } diff --git a/src/main/resources/org/gcube/portlets/user/reportgenerator/ReportGenerator.gwt.xml b/src/main/resources/org/gcube/portlets/user/reportgenerator/ReportGenerator.gwt.xml index b9b01b8..9974319 100644 --- a/src/main/resources/org/gcube/portlets/user/reportgenerator/ReportGenerator.gwt.xml +++ b/src/main/resources/org/gcube/portlets/user/reportgenerator/ReportGenerator.gwt.xml @@ -13,6 +13,7 @@ + diff --git a/src/test/java/org/gcube/portlets/user/reportgenerator/test/TestForDeploy.java b/src/test/java/org/gcube/portlets/user/reportgenerator/test/TestForDeploy.java new file mode 100644 index 0000000..0ce7a8b --- /dev/null +++ b/src/test/java/org/gcube/portlets/user/reportgenerator/test/TestForDeploy.java @@ -0,0 +1,19 @@ +package org.gcube.portlets.user.reportgenerator.test; + +import static org.junit.Assert.assertTrue; + +import org.gcube.portlets.user.reportgenerator.server.servlet.ReportServiceImpl; +import org.junit.Test; + +public class TestForDeploy { + + @Test + public void testUserIsTestUser() { + ReportServiceImpl serviceImpl = new ReportServiceImpl(); + String username = serviceImpl.getDevelopmentUser(); + System.out.println("username for deploy is: " + username); + assertTrue(username.compareTo("test.user") == 0); + System.out.println("Test OK!"); + } + +}