statistical-algorithms-impo.../src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/StatAlgoImporterServiceImpl...

189 lines
5.5 KiB
Java

package org.gcube.portlets.user.statisticalalgorithmsimporter.server;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;
import org.gcube.application.framework.core.session.ASLSession;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.rpc.StatAlgoImporterService;
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.file.CodeReader;
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.file.CodeFileUploadSession;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.code.CodeData;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterServiceException;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.file.FileUploadMonitor;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.ProjectOnWorkspaceStatus;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.session.ProjectSession;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.session.UserInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
/**
* The server side implementation of the RPC service.
*/
@SuppressWarnings("serial")
public class StatAlgoImporterServiceImpl extends RemoteServiceServlet implements
StatAlgoImporterService {
private static Logger logger = LoggerFactory
.getLogger(StatAlgoImporterServiceImpl.class);
/**
*
* {@inheritDoc}
*
*/
@Override
public void init() throws ServletException {
super.init();
System.out.println("Fix JAXP: jdk.xml.entityExpansionLimit=0");
System.setProperty("jdk.xml.entityExpansionLimit", "0");
System.out.println("initializing StatAlgoImporterService");
}
/**
*
* {@inheritDoc}
*
*/
@Override
public UserInfo hello() throws StatAlgoImporterServiceException {
try {
HttpSession session = this.getThreadLocalRequest().getSession();
ASLSession aslSession = SessionUtil.getAslSession(session);
UserInfo userInfo = new UserInfo(aslSession.getUsername(),
aslSession.getGroupId(), aslSession.getGroupName(),
aslSession.getScope(), aslSession.getScopeName(),
aslSession.getUserEmailAddress(),
aslSession.getUserFullName());
logger.debug("UserInfo: " + userInfo);
return userInfo;
} catch (StatAlgoImporterServiceException e) {
e.printStackTrace();
throw e;
} catch (Throwable e) {
e.printStackTrace();
logger.error("Hello(): " + e.getLocalizedMessage(), e);
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
}
}
/**
*
* {@inheritDoc}
*
*/
@Override
public FileUploadMonitor getFileUploadMonitor()
throws StatAlgoImporterServiceException {
HttpSession session = this.getThreadLocalRequest().getSession();
if (session == null) {
throw new StatAlgoImporterServiceException(
"Error retrieving the session: null");
}
FileUploadMonitor fileUploadMonitor = SessionUtil
.getFileUploadMonitor(session);
if (fileUploadMonitor == null) {
throw new StatAlgoImporterServiceException(
"Error retrieving the fileUploadMonitor: null");
}
logger.debug("FileUploadMonitor: " + fileUploadMonitor);
return fileUploadMonitor;
}
/**
*
* {@inheritDoc}
*
*/
@Override
public ArrayList<CodeData> getCode()
throws StatAlgoImporterServiceException {
try {
HttpSession session = this.getThreadLocalRequest().getSession();
ASLSession aslSession=SessionUtil.getAslSession(session);
logger.debug("getCode()");
ProjectSession projectSession = SessionUtil
.getProjectSession(session);
if (projectSession != null) {
CodeReader codeFileReader = new CodeReader(
projectSession, aslSession.getUsername());
ArrayList<CodeData> codeList = codeFileReader.getCodeList();
for (CodeData codeData : codeList) {
logger.debug("" + codeData.getId() + " "
+ codeData.getCodeLine());
}
return codeList;
} else {
return new ArrayList<CodeData>();
}
} catch (StatAlgoImporterServiceException e) {
e.printStackTrace();
throw e;
} catch (Throwable e) {
logger.error("getCode(): " + e.getLocalizedMessage(), e);
e.printStackTrace();
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
}
}
/**
*
* {@inheritDoc}
*
*/
@Override
public ProjectOnWorkspaceStatus createProjectOnWorkspace(String itemId)
throws StatAlgoImporterServiceException {
try {
HttpSession session = this.getThreadLocalRequest().getSession();
SessionUtil.getAslSession(session);
logger.debug("createProjectOnWorkspace()");
return new ProjectOnWorkspaceStatus();
} catch (StatAlgoImporterServiceException e) {
e.printStackTrace();
throw e;
} catch (Throwable e) {
logger.error(
"createProjectOnWorkspace(): " + e.getLocalizedMessage(), e);
e.printStackTrace();
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
}
}
@Override
public void setMainCode(String itemId)
throws StatAlgoImporterServiceException {
try {
HttpSession session = this.getThreadLocalRequest().getSession();
SessionUtil.getAslSession(session);
logger.debug("SetMainCode()");
return;
} catch (StatAlgoImporterServiceException e) {
e.printStackTrace();
throw e;
} catch (Throwable e) {
logger.error(
"setMainCode(): " + e.getLocalizedMessage(), e);
e.printStackTrace();
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
}
}
}