Added RStudio
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-gwt-service@111437 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
088db38f39
commit
56ad7253e8
8
pom.xml
8
pom.xml
|
@ -191,7 +191,13 @@
|
|||
<artifactId>uri-resolver-manager</artifactId>
|
||||
<version>[1.0.0-SNAPSHOT,2.0.0-SNAPSHOT)</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- R-Connector-Client -->
|
||||
<dependency>
|
||||
<groupId>org.gcube.data.analysis</groupId>
|
||||
<artifactId>r-connector-client</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<!-- tabular-data-widget-common-event -->
|
||||
<dependency>
|
||||
|
|
|
@ -17,6 +17,7 @@ import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper;
|
|||
import org.gcube.portlets.user.td.gwtservice.server.file.CSVFileUploadSession;
|
||||
import org.gcube.portlets.user.td.gwtservice.server.file.CodelistMappingFileUploadSession;
|
||||
import org.gcube.portlets.user.td.gwtservice.server.trservice.TRTasksManager;
|
||||
import org.gcube.portlets.user.td.gwtservice.shared.Constants;
|
||||
import org.gcube.portlets.user.td.gwtservice.shared.chart.ChartTopRatingSession;
|
||||
import org.gcube.portlets.user.td.gwtservice.shared.codelisthelper.CodelistMappingSession;
|
||||
import org.gcube.portlets.user.td.gwtservice.shared.csv.CSVExportSession;
|
||||
|
|
|
@ -0,0 +1,98 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package org.gcube.portlets.user.td.gwtservice.server;
|
||||
|
||||
import static org.gcube.data.analysis.rconnector.client.Constants.rConnector;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.gcube.application.framework.core.session.ASLSession;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* Returns a RSTudio link
|
||||
*
|
||||
* @author "Giancarlo Panichi" <a
|
||||
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||
*
|
||||
*/
|
||||
public class TDRStudioServlet extends HttpServlet {
|
||||
private static final String TAB_RESOURCE_ID_PARAMETER="TabResourceId";
|
||||
|
||||
private static final long serialVersionUID = -1649268678733476057L;
|
||||
private static Logger logger = LoggerFactory
|
||||
.getLogger(TDRStudioServlet.class);
|
||||
|
||||
|
||||
|
||||
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
|
||||
throws ServletException, IOException {
|
||||
handleRequest(req, resp);
|
||||
}
|
||||
|
||||
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
|
||||
throws ServletException, IOException {
|
||||
handleRequest(req, resp);
|
||||
}
|
||||
|
||||
protected void handleRequest(HttpServletRequest request,
|
||||
HttpServletResponse response) throws ServletException, IOException {
|
||||
try {
|
||||
logger.info("TDRStudioServlet");
|
||||
long startTime = System.currentTimeMillis();
|
||||
|
||||
HttpSession session = request.getSession();
|
||||
|
||||
if (session == null) {
|
||||
logger.error("Error getting the session, no session valid found: "
|
||||
+ session);
|
||||
response.sendError(
|
||||
HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
|
||||
"ERROR-Error getting the user session, no session found "
|
||||
+ session);
|
||||
return;
|
||||
}
|
||||
logger.debug("TDRSTudioServlet session id: "
|
||||
+ session.getId());
|
||||
|
||||
ASLSession aslSession=SessionUtil.getAslSession(session);
|
||||
|
||||
String tabResourceId=request.getParameter(TAB_RESOURCE_ID_PARAMETER);
|
||||
logger.debug("Request RStudio for TR: "+tabResourceId);
|
||||
|
||||
URI url=rConnector().build().connect(aslSession.getUsername(), Long.valueOf(tabResourceId));
|
||||
logger.debug("URL retrieved from rConnector: "+url.toString());
|
||||
|
||||
//response.setStatus(HttpServletResponse.SC_OK);
|
||||
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
|
||||
response.setHeader("Location", url.toString());
|
||||
response.setHeader("gcube-scope", aslSession.getScope());
|
||||
//response.setHeader("Set-Cookie", "PippoPlutoPaperino");
|
||||
//response.setHeader("Set-Cookie", cookieValue);
|
||||
|
||||
logger.debug("Response: "+response.toString());
|
||||
|
||||
logger.trace("Response in "
|
||||
+ (System.currentTimeMillis() - startTime)+"ms");
|
||||
|
||||
} catch (Throwable e) {
|
||||
logger.error("Error TDRStudio: "
|
||||
+ e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
response.sendError(
|
||||
HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
|
||||
"Error retrieving file from storage: "
|
||||
+ e.getLocalizedMessage());
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -30,6 +30,13 @@
|
|||
<servlet-name>RetrieveChartFileServlet</servlet-name>
|
||||
<servlet-class>org.gcube.portlets.user.td.gwtservice.server.RetrieveChartFileServlet</servlet-class>
|
||||
</servlet>
|
||||
|
||||
|
||||
<servlet>
|
||||
<servlet-name>TDRStudioServlet</servlet-name>
|
||||
<servlet-class>org.gcube.portlets.user.td.gwtservice.server.TDRStudioServlet</servlet-class>
|
||||
</servlet>
|
||||
|
||||
|
||||
<servlet>
|
||||
<servlet-name>TDLogsServlet</servlet-name>
|
||||
|
@ -69,6 +76,11 @@
|
|||
<url-pattern>/tdgwtservice/RetrieveChartFileServlet</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>TDRStudioServlet</servlet-name>
|
||||
<url-pattern>/tdgwtservice/TDRStudioServlet</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>TDLogsServlet</servlet-name>
|
||||
<url-pattern>/tdgwtservice/TDLogsServlet</url-pattern>
|
||||
|
|
Loading…
Reference in New Issue