diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IQueryUpdates.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IQueryUpdates.java index 3db774cb6deef6dc8aba41808ab70f3ccf217a24..13bc48aecdec5aeb3a681c79db4c17953c0eafe8 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IQueryUpdates.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IQueryUpdates.java @@ -16,6 +16,8 @@ package ch.systemsx.cisd.openbis.generic.shared.basic.dto; +import ch.systemsx.cisd.openbis.plugin.query.shared.basic.dto.QueryDatabase; + /** * Description of the updates that should be done to the existing query. * @@ -24,4 +26,6 @@ package ch.systemsx.cisd.openbis.generic.shared.basic.dto; public interface IQueryUpdates extends IExpressionUpdates { QueryType getQueryType(); + + QueryDatabase getQueryDatabase(); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/QueryPE.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/QueryPE.java index 591e410f323b6c1c1e8cde90b013f18d0984a75a..1eec50d0b8256f12d8c0934abd80a067b0ccbb5a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/QueryPE.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/QueryPE.java @@ -41,8 +41,7 @@ public class QueryPE extends AbstractExpressionPE<QueryPE> { private static final long serialVersionUID = ServiceVersionHolder.VERSION; - // FIXME get rid of this "1" when LMS-1495 is finished - private String queryDatabaseKey = "1"; + private String queryDatabaseKey; private String name; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/server/QueryServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/server/QueryServer.java index b99315199c1951093213c654846a8a866512b353..69fbac34f5af4d766813f24cd0ff449ae754b804 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/server/QueryServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/server/QueryServer.java @@ -152,6 +152,7 @@ public class QueryServer extends AbstractServer<IQueryServer> implements IQueryS query.setPublic(expression.isPublic()); query.setRegistrator(session.tryGetPerson()); query.setQueryType(expression.getQueryType()); + query.setQueryDatabaseKey(expression.getQueryDatabase().getKey()); try { getDAOFactory().getQueryDAO().createQuery(query); @@ -194,6 +195,8 @@ public class QueryServer extends AbstractServer<IQueryServer> implements IQueryS query.setExpression(updates.getExpression()); query.setPublic(updates.isPublic()); query.setQueryType(updates.getQueryType()); + query.setQueryDatabaseKey(updates.getQueryDatabase().getKey()); + queryDAO.validateAndSaveUpdatedEntity(query); } catch (DataAccessException ex) { diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/shared/basic/dto/QueryDatabase.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/shared/basic/dto/QueryDatabase.java index 27c8294b008426c5d40509c187c03a493a0ea6de..666b59a20ddf7d4e73cc7bc4a9b83092a5598675 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/shared/basic/dto/QueryDatabase.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/shared/basic/dto/QueryDatabase.java @@ -31,6 +31,12 @@ public class QueryDatabase implements IsSerializable, Comparable<QueryDatabase> { } + /** for tests */ + public QueryDatabase(String key) + { + this(key, key); + } + public QueryDatabase(String key, String label) { this.key = key; diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/QueryDAOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/QueryDAOTest.java index be72fb807769dbf2e500ed526cf6f36f4a412aa4..03311e4912aae442a49b2938f62eee641b1e0062 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/QueryDAOTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/QueryDAOTest.java @@ -33,6 +33,9 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.QueryPE; @Test(groups = "db") public class QueryDAOTest extends AbstractDAOTest { + + private final static String DATABASE_KEY = "1"; + @Test public void testCreateQuery() throws Exception { @@ -40,7 +43,7 @@ public class QueryDAOTest extends AbstractDAOTest assertEquals(0, queryDAO.listAllEntities().size()); QueryPE query = createQuery("q1", "test query", "select * from blabla", true, getSystemPerson(), - QueryType.GENERIC); + QueryType.GENERIC, DATABASE_KEY); queryDAO.createQuery(query); @@ -55,7 +58,7 @@ public class QueryDAOTest extends AbstractDAOTest } private QueryPE createQuery(String name, String description, String expression, - boolean isPublic, PersonPE registrator, QueryType type) + boolean isPublic, PersonPE registrator, QueryType type, String databaseKey) { QueryPE query = new QueryPE(); query.setName(name); @@ -64,6 +67,7 @@ public class QueryDAOTest extends AbstractDAOTest query.setPublic(isPublic); query.setRegistrator(registrator); query.setQueryType(type); + query.setQueryDatabaseKey(databaseKey); return query; } } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/query/shared/IQueryServer.java.expected b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/query/shared/IQueryServer.java.expected index 57415b43dbd382d71e65444520a979a374726d72..f6e473e90b8c6efdce414a4a7f4f1d62b7204bc9 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/query/shared/IQueryServer.java.expected +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/query/shared/IQueryServer.java.expected @@ -30,11 +30,11 @@ import ch.systemsx.cisd.openbis.generic.shared.authorization.annotation.RolesAll import ch.systemsx.cisd.openbis.generic.shared.authorization.validator.ExpressionValidator; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IQueryUpdates; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewQuery; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind; import ch.systemsx.cisd.openbis.plugin.query.shared.authorization.predicate.DeleteQueryPredicate; import ch.systemsx.cisd.openbis.plugin.query.shared.authorization.predicate.UpdateQueryPredicate; +import ch.systemsx.cisd.openbis.plugin.query.shared.basic.dto.NewQuery; import ch.systemsx.cisd.openbis.plugin.query.shared.basic.dto.QueryDatabase; import ch.systemsx.cisd.openbis.plugin.query.shared.basic.dto.QueryExpression; import ch.systemsx.cisd.openbis.plugin.query.shared.basic.dto.QueryParameterBindings; diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/query/QueryEditingTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/query/QueryEditingTest.java index c1276830c102e1523c29d4f05f7a9f9a58494cf4..185a6a5615990292e05af28dd17e48deb8a8e725 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/query/QueryEditingTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/query/QueryEditingTest.java @@ -51,6 +51,9 @@ import ch.systemsx.cisd.openbis.plugin.query.shared.basic.dto.QueryParameterBind @Test(groups = "system test") public class QueryEditingTest extends QuerySystemTestCase { + + private final static QueryDatabase DATABASE = new QueryDatabase("1"); + @AfterMethod public void tearDown() { @@ -86,7 +89,8 @@ public class QueryEditingTest extends QuerySystemTestCase assertEquals(0, queryClientService.listQueries().size()); NewQuery query = - createQuery("query1", "select * from sample_types", true, QueryType.GENERIC); + createQuery("query1", "select * from sample_types", true, QueryType.GENERIC, + DATABASE); queryClientService.registerQuery(query); List<QueryExpression> queries = queryClientService.listQueries(); @@ -119,7 +123,8 @@ public class QueryEditingTest extends QuerySystemTestCase logIntoCommonClientService(); NewQuery query = - createQuery("query", "select * from sample_types", true, QueryType.GENERIC); + createQuery("query", "select * from sample_types", true, QueryType.GENERIC, + DATABASE); queryClientService.registerQuery(query); try @@ -139,9 +144,11 @@ public class QueryEditingTest extends QuerySystemTestCase logIntoCommonClientService(); NewQuery query1 = - createQuery("query1", "select * from sample_types", true, QueryType.GENERIC); + createQuery("query1", "select * from sample_types", true, QueryType.GENERIC, + DATABASE); NewQuery query2 = - createQuery("query2", "select * from experiment_types", true, QueryType.GENERIC); + createQuery("query2", "select * from experiment_types", true, QueryType.GENERIC, + DATABASE); queryClientService.registerQuery(query1); queryClientService.registerQuery(query2); @@ -190,7 +197,7 @@ public class QueryEditingTest extends QuerySystemTestCase NewQuery query = createQuery("query", "select id, code from sample_types where id = ${id}", true, - QueryType.GENERIC); + QueryType.GENERIC, DATABASE); queryClientService.registerQuery(query); List<QueryExpression> queries = queryClientService.listQueries(); @@ -227,7 +234,7 @@ public class QueryEditingTest extends QuerySystemTestCase } private NewQuery createQuery(String name, String expression, boolean isPublic, - QueryType queryType) + QueryType queryType, QueryDatabase database) { NewQuery query = new NewQuery(); query.setName(name); @@ -235,6 +242,7 @@ public class QueryEditingTest extends QuerySystemTestCase query.setExpression(expression); query.setPublic(isPublic); query.setQueryType(queryType); + query.setQueryDatabase(database); return query; }