tabular-data-manager/src/main/java/org/gcube/portlets/user/td/server/TabularDataServiceImpl.java

77 lines
2.5 KiB
Java

package org.gcube.portlets.user.td.server;
import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;
import org.gcube.application.framework.core.session.ASLSession;
import org.gcube.application.framework.core.session.SessionManager;
import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper;
import org.gcube.portlets.user.td.ciw.server.CSVTDImporter;
import org.gcube.portlets.user.td.client.rpc.TabularDataService;
import org.gcube.portlets.user.td.importer.server.TabularDataImporterManager;
import org.gcube.portlets.user.tdw.datasource.td.TDDataSourceFactory;
import org.gcube.portlets.user.tdw.server.datasource.DataSourceFactoryRegistry;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import org.slf4j.*;
/**
* The server side implementation of the RPC service.
*/
@SuppressWarnings("serial")
public class TabularDataServiceImpl extends RemoteServiceServlet implements TabularDataService {
protected static Logger logger = LoggerFactory.getLogger(TabularDataServiceImpl.class);
/**
* {@inheritDoc}
*/
@Override
public void init() throws ServletException {
super.init();
System.out.println("initializing the TabularDataImporterManager");
TabularDataImporterManager importerManager = new TabularDataImporterManager();
//importerManager.scanAvailableImporters();
importerManager.add(new CSVTDImporter());
importerManager.setupImporters();
//register the demo csv target
//CSVTargetRegistry.getInstance().add(new DemoCSVTarget());
//System.out.println("Registered DemoCSVTarget");
ScopeProvider.instance.set("/gcube/devsec");
DataSourceFactoryRegistry.getInstance().add(new TDDataSourceFactory());
}
protected static ASLSession getAslSession(HttpSession httpSession)
{
String username = (String) httpSession.getAttribute(ScopeHelper.USERNAME_ATTRIBUTE);
if (username == null) {
logger.warn("no user found in session, using test one");
username = "giancarlo.panichi";
String scope = "/gcube/devsec";
httpSession.setAttribute(ScopeHelper.USERNAME_ATTRIBUTE, username);
ASLSession session = SessionManager.getInstance().getASLSession(httpSession.getId(), username);
session.setScope(scope);
return session;
} else {
return SessionManager.getInstance().getASLSession(httpSession.getId(), username);
}
}
/**
* {@inheritDoc}
*/
public String greetServer(String input) throws IllegalArgumentException {
getAslSession(this.getThreadLocalRequest().getSession());
return "Hello";
}
}