Skip to content
Snippets Groups Projects
Commit 30f64abc authored by felmer's avatar felmer
Browse files

LMS-2587 QueryApiFacade extended

SVN: 23410
parent 698ae74a
No related branches found
No related tags found
No related merge requests found
......@@ -235,6 +235,8 @@
<packageset dir="../openbis/${sources}">
<include name="ch/systemsx/cisd/openbis/plugin/query/client/api/v1/**" />
<include name="ch/systemsx/cisd/openbis/plugin/query/shared/api/v1/dto/**" />
<include name="ch/systemsx/cisd/openbis/generic/shared/api/v1/**" />
<include name="ch/systemsx/cisd/openbis/generic/shared/api/v1/dto/**" />
</packageset>
</javadoc>
<zip destfile="${query.api.doc.zip}">
......@@ -243,7 +245,7 @@
<delete dir="${dist}/${query.api}" />
<zip destfile="${query.api.src.zip}">
<zipfileset dir="../openbis/${sources}" includes="ch/systemsx/cisd/openbis/plugin/query/shared/api/v1/dto/**" />
<zipfileset dir="../openbis/${sources}" includes="ch/systemsx/cisd/openbis/plugin/query/client/api/v1/*.java" />
<zipfileset dir="../openbis/${sources}" includes="ch/systemsx/cisd/openbis/plugin/query/shared/api/v1/dto/**" />
</zip>
</target>
......@@ -569,6 +571,7 @@
<include name="ch/systemsx/cisd/common/spring/HttpInvokerUtils.class" />
<include name="ch/systemsx/cisd/common/api/**/*.class" />
<exclude name="ch/systemsx/cisd/common/api/server/**/*.class" />
<include name="ch/systemsx/cisd/openbis/generic/shared/api/**/*.class" />
<include name="ch/systemsx/cisd/openbis/plugin/query/**/api/**/*.class" />
<exclude name="ch/systemsx/cisd/openbis/**/server/api/**/*.class" />
<include name="ch/systemsx/cisd/openbis/BuildAndEnvironmentInfo.class" />
......
......@@ -17,6 +17,7 @@
package ch.systemsx.cisd.openbis.plugin.query.client.api.v1;
import ch.systemsx.cisd.common.api.client.ServiceFinder;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.IGeneralInformationService;
import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.IQueryApiServer;
/**
......@@ -26,21 +27,25 @@ import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.IQueryApiServer;
*/
public class FacadeFactory
{
private static final ServiceFinder SERVICE_FINDER =
new ServiceFinder("openbis", IQueryApiServer.QUERY_PLUGIN_SERVER_URL);
private static final ServiceFinder QUERY_SERVICE_FINDER = new ServiceFinder("openbis",
IQueryApiServer.QUERY_PLUGIN_SERVER_URL);
private static final ServiceFinder GENERAL_INFORMATION_SERVICE_FINDER = new ServiceFinder(
"openbis", IGeneralInformationService.SERVICE_URL);
/**
* Creates a facade for specified server URL, user Id, and password.
*/
public static IQueryApiFacade create(String serverURL, String userID, String password)
{
IQueryApiServer service = createService(serverURL);
IQueryApiServer service = createQueryService(serverURL);
String sessionToken = service.tryToAuthenticateAtQueryServer(userID, password);
if (sessionToken == null)
{
throw new IllegalArgumentException("User " + userID + " couldn't be authenticated");
}
return new QueryApiFacade(service, sessionToken);
// Login at one service is enough
return new QueryApiFacade(service, createGeneralInfoService(serverURL), sessionToken);
}
/**
......@@ -48,11 +53,18 @@ public class FacadeFactory
*/
public static IQueryApiFacade create(String serverURL, String sessionToken)
{
return new QueryApiFacade(createService(serverURL), sessionToken);
return new QueryApiFacade(createQueryService(serverURL),
createGeneralInfoService(serverURL), sessionToken);
}
private static IQueryApiServer createService(String serverURL)
private static IQueryApiServer createQueryService(String serverURL)
{
return QUERY_SERVICE_FINDER.createService(IQueryApiServer.class, serverURL);
}
private static IGeneralInformationService createGeneralInfoService(String serverURL)
{
return SERVICE_FINDER.createService(IQueryApiServer.class, serverURL);
return GENERAL_INFORMATION_SERVICE_FINDER.createService(IGeneralInformationService.class,
serverURL);
}
}
......@@ -19,6 +19,7 @@ package ch.systemsx.cisd.openbis.plugin.query.client.api.v1;
import java.util.List;
import java.util.Map;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.IGeneralInformationService;
import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.dto.QueryDescription;
import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.dto.QueryTableModel;
import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.dto.ReportDescription;
......@@ -57,6 +58,11 @@ public interface IQueryApiFacade
public QueryTableModel createReportFromDataSets(ReportDescription reportDescription,
List<String> dataSetCodes);
/**
* Returns a remote access to the {@link IGeneralInformationService}.
*/
public IGeneralInformationService getGeneralInformationService();
/**
* Logs current user out.
*/
......
......@@ -19,6 +19,7 @@ package ch.systemsx.cisd.openbis.plugin.query.client.api.v1;
import java.util.List;
import java.util.Map;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.IGeneralInformationService;
import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.IQueryApiServer;
import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.dto.QueryDescription;
import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.dto.QueryTableModel;
......@@ -31,11 +32,15 @@ class QueryApiFacade implements IQueryApiFacade
{
private final IQueryApiServer service;
private final IGeneralInformationService generalInformationService;
private final String sessionToken;
QueryApiFacade(IQueryApiServer service, String sessionToken)
QueryApiFacade(IQueryApiServer service, IGeneralInformationService generalInformationService,
String sessionToken)
{
this.service = service;
this.generalInformationService = generalInformationService;
this.sessionToken = sessionToken;
}
......@@ -49,6 +54,11 @@ class QueryApiFacade implements IQueryApiFacade
service.logout(sessionToken);
}
public IGeneralInformationService getGeneralInformationService()
{
return generalInformationService;
}
public List<QueryDescription> listQueries()
{
return service.listQueries(sessionToken);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment