621 lines
20 KiB
Java
621 lines
20 KiB
Java
|
package org.gcube.portlets.user.dataminermanager.server;
|
||
|
|
||
|
import java.io.InputStream;
|
||
|
import java.net.URL;
|
||
|
import java.util.ArrayList;
|
||
|
import java.util.Date;
|
||
|
import java.util.LinkedHashMap;
|
||
|
import java.util.List;
|
||
|
import java.util.Map;
|
||
|
|
||
|
import javax.servlet.ServletException;
|
||
|
import javax.servlet.http.HttpSession;
|
||
|
|
||
|
import org.gcube.application.framework.accesslogger.library.impl.AccessLogger;
|
||
|
import org.gcube.application.framework.core.session.ASLSession;
|
||
|
import org.gcube.common.homelibrary.home.HomeLibrary;
|
||
|
import org.gcube.common.homelibrary.home.workspace.Workspace;
|
||
|
import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder;
|
||
|
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
|
||
|
import org.gcube.common.homelibrary.home.workspace.exceptions.ItemAlreadyExistException;
|
||
|
import org.gcube.common.homelibrary.util.WorkspaceUtil;
|
||
|
import org.gcube.portlets.user.dataminermanager.client.bean.ComputationStatus;
|
||
|
import org.gcube.portlets.user.dataminermanager.client.bean.ComputationStatus.Status;
|
||
|
import org.gcube.portlets.user.dataminermanager.client.bean.CsvMetadata;
|
||
|
import org.gcube.portlets.user.dataminermanager.client.bean.FileMetadata;
|
||
|
import org.gcube.portlets.user.dataminermanager.client.bean.ImportStatus;
|
||
|
import org.gcube.portlets.user.dataminermanager.client.bean.Operator;
|
||
|
import org.gcube.portlets.user.dataminermanager.client.bean.OperatorsClassification;
|
||
|
import org.gcube.portlets.user.dataminermanager.client.bean.ResourceItem;
|
||
|
import org.gcube.portlets.user.dataminermanager.client.bean.output.ImagesResource;
|
||
|
import org.gcube.portlets.user.dataminermanager.client.bean.output.MapResource;
|
||
|
import org.gcube.portlets.user.dataminermanager.client.bean.output.Resource;
|
||
|
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.Parameter;
|
||
|
import org.gcube.portlets.user.dataminermanager.client.rpc.DataMinerPortletService;
|
||
|
import org.gcube.portlets.user.dataminermanager.server.smservice.SClient;
|
||
|
import org.gcube.portlets.user.dataminermanager.server.util.DataMinerWorkAreaManager;
|
||
|
import org.gcube.portlets.user.dataminermanager.server.util.SessionUtil;
|
||
|
import org.gcube.portlets.user.dataminermanager.server.util.StorageUtil;
|
||
|
import org.gcube.portlets.user.dataminermanager.server.util.TableReader;
|
||
|
import org.gcube.portlets.user.dataminermanager.shared.data.ComputationId;
|
||
|
import org.gcube.portlets.user.dataminermanager.shared.data.TableItemSimple;
|
||
|
import org.gcube.portlets.user.dataminermanager.shared.exception.ServiceException;
|
||
|
import org.gcube.portlets.user.dataminermanager.shared.session.UserInfo;
|
||
|
import org.gcube.portlets.user.dataminermanager.shared.workspace.DataMinerWorkArea;
|
||
|
import org.gcube.portlets.user.dataminermanager.shared.workspace.ItemDescription;
|
||
|
//import org.gcube.portlets.user.tdw.server.datasource.DataSourceFactoryRegistry;
|
||
|
//import org.gcube.portlets.widgets.file_dw_import_wizard.server.file.TargetRegistry;
|
||
|
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
|
||
|
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 DataMinerManagerServiceImpl extends RemoteServiceServlet implements
|
||
|
DataMinerPortletService {
|
||
|
public static AccessLogger accountinglog = AccessLogger.getAccessLogger();
|
||
|
|
||
|
// private static final long CACHE_REFRESH_TIME = 30 * 60 * 1000; // 30
|
||
|
// minutes
|
||
|
|
||
|
|
||
|
// private final static String SEPARATOR = AlgorithmConfiguration
|
||
|
// .getListSeparator();
|
||
|
private static Logger logger = LoggerFactory
|
||
|
.getLogger(DataMinerManagerServiceImpl.class);
|
||
|
|
||
|
/**
|
||
|
* {@inheritDoc}
|
||
|
*/
|
||
|
@Override
|
||
|
public void init() throws ServletException {
|
||
|
super.init();
|
||
|
logger.info("DataMinerManager started!");
|
||
|
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
* {@inheritDoc}
|
||
|
*
|
||
|
*/
|
||
|
@Override
|
||
|
public UserInfo hello() throws ServiceException {
|
||
|
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 (ServiceException e) {
|
||
|
e.printStackTrace();
|
||
|
throw e;
|
||
|
} catch (Throwable e) {
|
||
|
e.printStackTrace();
|
||
|
logger.error("Hello(): " + e.getLocalizedMessage(), e);
|
||
|
throw new ServiceException(e.getLocalizedMessage());
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public List<OperatorsClassification> getOperatorsClassifications()
|
||
|
throws Exception {
|
||
|
|
||
|
try {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
SClient smClient = SessionUtil.getSClient(session, aslSession);
|
||
|
return smClient.getOperatorsClassifications();
|
||
|
|
||
|
} catch (Throwable e) {
|
||
|
logger.error(
|
||
|
"An error occurred getting the OperatorsClassifications list",
|
||
|
e);
|
||
|
System.out
|
||
|
.println("An error occurred getting the OperatorsClassifications list");
|
||
|
e.printStackTrace();
|
||
|
// return null;
|
||
|
throw new Exception(e.getLocalizedMessage());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public List<Parameter> getParameters(Operator operator) throws Exception {
|
||
|
try {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
|
||
|
SClient smClient = SessionUtil.getSClient(session, aslSession);
|
||
|
return smClient.getInputParameters(operator);
|
||
|
|
||
|
} catch (Throwable e) {
|
||
|
logger.error("Error retrieving parameters: "
|
||
|
+ e.getLocalizedMessage());
|
||
|
e.printStackTrace();
|
||
|
throw new Exception(e.getLocalizedMessage());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public ComputationId startComputation(Operator operator, String computationTitle,
|
||
|
String computationDescription) throws Exception {
|
||
|
try {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
|
||
|
SClient smClient = SessionUtil.getSClient(session, aslSession);
|
||
|
return smClient.startComputation(operator, computationTitle,
|
||
|
computationDescription);
|
||
|
|
||
|
} catch (Throwable e) {
|
||
|
logger.error("Error in computation: " + e.getLocalizedMessage());
|
||
|
e.printStackTrace();
|
||
|
throw new Exception(e.getLocalizedMessage());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public ComputationId resubmit(ComputationId computationId) throws ServiceException {
|
||
|
try {
|
||
|
logger.info("RESUBMIT COMPUTATION: " + computationId);
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
|
||
|
SClient smClient = SessionUtil.getSClient(session, aslSession);
|
||
|
|
||
|
// String computationId =
|
||
|
// factory.resubmitComputation(jobItem.getId());
|
||
|
// return computationId;
|
||
|
return computationId;
|
||
|
} catch (Throwable e) {
|
||
|
logger.error("Error in resubmit: " + e.getLocalizedMessage());
|
||
|
e.printStackTrace();
|
||
|
throw new ServiceException(e.getLocalizedMessage());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public ComputationStatus getComputationStatus(ComputationId computationId)
|
||
|
throws Exception {
|
||
|
try {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
|
||
|
SClient smClient = SessionUtil.getSClient(session, aslSession);
|
||
|
return smClient.getComputationStatus(computationId);
|
||
|
|
||
|
} catch (Throwable e) {
|
||
|
// logger.error("Error in getComputationStatus: "
|
||
|
// + e.getLocalizedMessage());
|
||
|
// e.printStackTrace();
|
||
|
throw new Exception(e.getLocalizedMessage());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public List<TableItemSimple> getTableItems(List<String> templates)
|
||
|
throws Exception {
|
||
|
try {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
|
||
|
List<TableItemSimple> list = new ArrayList<TableItemSimple>();
|
||
|
|
||
|
return list;
|
||
|
} catch (Throwable e) {
|
||
|
logger.error("Error in getTableItems:" + e.getLocalizedMessage());
|
||
|
e.printStackTrace();
|
||
|
throw new Exception(e.getLocalizedMessage());
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public List<TableItemSimple> getFileItems(List<String> templates)
|
||
|
throws Exception {
|
||
|
try {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
|
||
|
List<TableItemSimple> list = new ArrayList<TableItemSimple>();
|
||
|
|
||
|
return list;
|
||
|
} catch (Throwable e) {
|
||
|
logger.error("Error in getFileItems:" + e.getLocalizedMessage());
|
||
|
e.printStackTrace();
|
||
|
throw new Exception(e.getLocalizedMessage());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
@Override
|
||
|
public Resource getResourceByComputationId(ComputationId computationId) {
|
||
|
try {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
|
||
|
SClient smClient = SessionUtil.getSClient(session, aslSession);
|
||
|
return smClient.getResourceByComputationId(computationId);
|
||
|
|
||
|
// SMComputation computation = factory.getComputation(jobId);
|
||
|
// JobItem jobItem = convertSMComputationToJobItem(computation,
|
||
|
// true);
|
||
|
//
|
||
|
// // try to add map data (if resource is an object)
|
||
|
//
|
||
|
// Resource res = jobItem.getResource();
|
||
|
// if (res.isMap()) {
|
||
|
// MapResource mapResource = (MapResource) res;
|
||
|
// Map<String, Resource> map = getMapFromMapResource(mapResource);
|
||
|
// mapResource.setMap(map);
|
||
|
// // jobItem.setMapData(map);
|
||
|
// logger.info("getResourceByJobId: " + mapResource);
|
||
|
//
|
||
|
// } else if (res.isImages()) {
|
||
|
// ImagesResource imgsRes = (ImagesResource) res;
|
||
|
// Map<String, String> map =
|
||
|
// getImagesInfoFromImagesResource(imgsRes);
|
||
|
// imgsRes.setMapImages(map);
|
||
|
// logger.info("getResourceByJobId: " + imgsRes);
|
||
|
// } else {
|
||
|
// logger.info("getResourceByJobId: " + res);
|
||
|
// }
|
||
|
// return res;
|
||
|
|
||
|
} catch (Exception e) {
|
||
|
logger.error("Error in getResourceByComputationId: "
|
||
|
+ e.getLocalizedMessage());// in this case the resource
|
||
|
// doesn't exist, nothing to do
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public Map<String, String> getParametersMapByComputationId(ComputationId jobId)
|
||
|
throws ServiceException {
|
||
|
|
||
|
try {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
|
||
|
SClient smClient = SessionUtil.getSClient(session, aslSession);
|
||
|
|
||
|
// SMComputation computation = wpsClient.getComputation(jobId);
|
||
|
|
||
|
Map<String, String> parametersMap = new LinkedHashMap<String, String>();
|
||
|
|
||
|
// for (SMEntry entry : computation.parameters()) {
|
||
|
// String value = entry.value();
|
||
|
// if (value != null)
|
||
|
// value = value.replaceAll("#", ", ");
|
||
|
// parametersMap.put(entry.key(), value);
|
||
|
// }
|
||
|
|
||
|
return parametersMap;
|
||
|
|
||
|
} catch (Throwable e) {
|
||
|
logger.error(e.getLocalizedMessage(), e);
|
||
|
e.printStackTrace();
|
||
|
throw new ServiceException(e.getLocalizedMessage(),e);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public Map<String, Resource> getMapFromMapResource(MapResource mapRes)
|
||
|
throws Exception {
|
||
|
try {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
|
||
|
return mapRes.getMap();
|
||
|
} catch (Exception e) {
|
||
|
logger.error(e.getLocalizedMessage(), e);
|
||
|
// e.printStackTrace();
|
||
|
throw e;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public String importTable(CsvMetadata csvMetadata) throws Exception {
|
||
|
try {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
|
||
|
return "1";
|
||
|
} catch (Exception e) {
|
||
|
logger.error(e.getLocalizedMessage(), e);
|
||
|
// e.printStackTrace();
|
||
|
throw (e);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public String importFile(FileMetadata fileMetadata) throws Exception {
|
||
|
try {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
|
||
|
String id = "";
|
||
|
|
||
|
return id;
|
||
|
} catch (Exception e) {
|
||
|
logger.error(e.getLocalizedMessage(), e);
|
||
|
throw (e);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public CsvMetadata getCsvMetadataFromCsvImporterWizard() throws Exception {
|
||
|
HttpSession httpSession = this.getThreadLocalRequest().getSession();
|
||
|
//CSVParserConfiguration csvParserConfiguration = (CSVParserConfiguration) httpSession
|
||
|
// .getAttribute("csvParserConfiguration");
|
||
|
//String csvImportFilePath = (String) httpSession
|
||
|
// .getAttribute("csvImportFilePath");
|
||
|
//boolean hasHeader = csvParserConfiguration.isHasHeader();
|
||
|
//String delimiter = "" + csvParserConfiguration.getDelimiter();
|
||
|
//String comment = "" + csvParserConfiguration.getComment();
|
||
|
|
||
|
//return new CsvMetadata(hasHeader, csvImportFilePath, delimiter, comment);
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public FileMetadata getFilePathFromImporterWizard() throws Exception {
|
||
|
FileMetadata result;
|
||
|
// logger.info("getFilePathFromImporterWizard");
|
||
|
HttpSession httpSession = this.getThreadLocalRequest().getSession();
|
||
|
String fileImportFilePath = (String) httpSession
|
||
|
.getAttribute("fileImportPath");
|
||
|
// logger.info("filePaht: " + fileImportFilePath);
|
||
|
String type = (String) httpSession.getAttribute("typeFile");
|
||
|
// logger.info("type: " + type);
|
||
|
|
||
|
if (type == "DARWINCORE") {
|
||
|
String fileTaxaImportFilePath = (String) httpSession
|
||
|
.getAttribute("generatedTaxaFilePath");
|
||
|
// logger.info("fileTaxaImportFilePath: " + fileTaxaImportFilePath);
|
||
|
String fileVernacularImportFilePath = (String) httpSession
|
||
|
.getAttribute("generatedVernacular");
|
||
|
// logger.info("fileVernacularImportFilePath: "
|
||
|
// + fileVernacularImportFilePath);
|
||
|
|
||
|
result = new FileMetadata(fileImportFilePath,
|
||
|
fileTaxaImportFilePath, fileVernacularImportFilePath, type);
|
||
|
} else
|
||
|
result = new FileMetadata(fileImportFilePath, type);
|
||
|
|
||
|
// logger.info("result.filePath: " + result.getFileAbsolutePath());
|
||
|
// logger.info("result.type: " + result.getType());
|
||
|
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public List<ImportStatus> getImportsStatus(Date todayDate)
|
||
|
throws ServiceException {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
|
||
|
List<ImportStatus> listStatus = new ArrayList<ImportStatus>();
|
||
|
|
||
|
return listStatus;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public ImportStatus getImportStatusById(String importId)
|
||
|
throws ServiceException {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
|
||
|
Status status = Status.COMPLETE;
|
||
|
|
||
|
ImportStatus importStatus = new ImportStatus();
|
||
|
|
||
|
importStatus.setStatus(status);
|
||
|
|
||
|
return importStatus;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
@Override
|
||
|
public String saveImage(ComputationId computationId, ImagesResource imagesResource)
|
||
|
throws Exception {
|
||
|
|
||
|
try {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
SClient smClient = SessionUtil.getSClient(session, aslSession);
|
||
|
// SMComputation computation =
|
||
|
// factory.gegetComputation(computationId);
|
||
|
// String computationName = computation.title() == null ?
|
||
|
// computationId
|
||
|
// : computation.title();
|
||
|
// computationName =
|
||
|
// FileSystemNameUtil.cleanFileName(computationName);
|
||
|
|
||
|
Workspace workspace = HomeLibrary.getUserWorkspace(aslSession
|
||
|
.getUsername());
|
||
|
WorkspaceFolder rootFolder = workspace.getRoot();
|
||
|
// computationName = WorkspaceUtil.getUniqueName(computationName,
|
||
|
// rootFolder);
|
||
|
|
||
|
// create the folder
|
||
|
|
||
|
WorkspaceFolder folder;
|
||
|
try {
|
||
|
folder = rootFolder
|
||
|
.createFolder(computationId.getId(),
|
||
|
"This folder contains images obtained from Data Miner Manager");
|
||
|
|
||
|
} catch (ItemAlreadyExistException e) {
|
||
|
folder = (WorkspaceFolder) rootFolder.find(computationId.getId());
|
||
|
}
|
||
|
InputStream inputStream = new URL(imagesResource.getLink())
|
||
|
.openStream();
|
||
|
|
||
|
WorkspaceItem wi = WorkspaceUtil.createExternalFile(folder,
|
||
|
imagesResource.getResourceId(),
|
||
|
imagesResource.getDescription(),
|
||
|
imagesResource.getMimeType(), inputStream);
|
||
|
|
||
|
return wi.getId();
|
||
|
} catch (Throwable e) {
|
||
|
logger.error("Error in save images: " + e.getLocalizedMessage());
|
||
|
e.printStackTrace();
|
||
|
throw (e);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void removeResource(String id) throws Exception {
|
||
|
try {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
|
||
|
} catch (Exception e) {
|
||
|
logger.error(e.getLocalizedMessage(), e);
|
||
|
|
||
|
throw (e);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void removeImport(String id) throws Exception {
|
||
|
try {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
|
||
|
} catch (Exception e) {
|
||
|
logger.error(e.getLocalizedMessage(), e);
|
||
|
e.printStackTrace();
|
||
|
|
||
|
throw (e);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public String exportResource(String folderId, String fileName,
|
||
|
ResourceItem resourceItem) throws Exception {
|
||
|
try {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
|
||
|
String id = resourceItem.getId();
|
||
|
InputStream inputStream;
|
||
|
if (resourceItem.isTable()) {
|
||
|
|
||
|
} else
|
||
|
inputStream = StorageUtil
|
||
|
.getStorageClientInputStream(resourceItem.getUrl());
|
||
|
|
||
|
Workspace workspace = HomeLibrary.getUserWorkspace(aslSession
|
||
|
.getUsername());
|
||
|
|
||
|
WorkspaceFolder wsFolder = (WorkspaceFolder) workspace
|
||
|
.getItem(folderId);
|
||
|
String realFileName = WorkspaceUtil.getUniqueName(fileName,
|
||
|
wsFolder);
|
||
|
|
||
|
return realFileName;
|
||
|
|
||
|
} catch (Exception e) {
|
||
|
logger.error(e.getLocalizedMessage(), e);
|
||
|
throw (e);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public TableItemSimple retrieveTableInformation(Item item)
|
||
|
throws ServiceException {
|
||
|
try {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
logger.debug("retrieveTableInformation(): " + item);
|
||
|
TableReader tableReader = new TableReader(aslSession, item);
|
||
|
TableItemSimple tableItemSimple = tableReader.getTableItemSimple();
|
||
|
return tableItemSimple;
|
||
|
} catch (ServiceException e) {
|
||
|
throw e;
|
||
|
} catch (Throwable e) {
|
||
|
logger.error(e.getLocalizedMessage(), e);
|
||
|
e.printStackTrace();
|
||
|
throw new ServiceException(e.getLocalizedMessage());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public DataMinerWorkArea getDataMinerWorkArea() throws ServiceException {
|
||
|
try {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
logger.debug("getDataMinerWorkArea()");
|
||
|
DataMinerWorkAreaManager dataMinerWorkAreaManager=new DataMinerWorkAreaManager(aslSession);
|
||
|
return dataMinerWorkAreaManager.getDataMinerWorkArea();
|
||
|
|
||
|
} catch (ServiceException e) {
|
||
|
throw e;
|
||
|
} catch (Throwable e) {
|
||
|
logger.error(e.getLocalizedMessage(), e);
|
||
|
e.printStackTrace();
|
||
|
throw new ServiceException(e.getLocalizedMessage());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
@Override
|
||
|
public String getPublicLink(ItemDescription itemDescription)
|
||
|
throws ServiceException {
|
||
|
try {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
logger.debug("GetPublicLink(): " + itemDescription);
|
||
|
String link = StorageUtil.getPublicLink(aslSession.getUsername(),
|
||
|
itemDescription.getId());
|
||
|
|
||
|
return link;
|
||
|
} catch (ServiceException e) {
|
||
|
throw e;
|
||
|
} catch (Throwable e) {
|
||
|
logger.error(e.getLocalizedMessage(), e);
|
||
|
e.printStackTrace();
|
||
|
throw new ServiceException(e.getLocalizedMessage());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public String cancelComputation(ComputationId computationId)
|
||
|
throws ServiceException {
|
||
|
try {
|
||
|
HttpSession session = this.getThreadLocalRequest().getSession();
|
||
|
ASLSession aslSession = SessionUtil.getASLSession(session);
|
||
|
logger.debug("CancelComputation(): " + computationId);
|
||
|
SClient smClient = SessionUtil.getSClient(session, aslSession);
|
||
|
String result=smClient.cancelComputation(computationId);
|
||
|
|
||
|
return result;
|
||
|
} catch (ServiceException e) {
|
||
|
throw e;
|
||
|
} catch (Throwable e) {
|
||
|
logger.error(e.getLocalizedMessage(), e);
|
||
|
e.printStackTrace();
|
||
|
throw new ServiceException(e.getLocalizedMessage());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
}
|