Skip to content

Commit

Permalink
JBPM-7103 - KIE Server custom queries exposed as DataSet editor in wo…
Browse files Browse the repository at this point in the history
…rkbench (#1169)
  • Loading branch information
mswiderski committed Apr 12, 2018
1 parent 23b30bd commit 0e09565
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 6 deletions.
Expand Up @@ -181,6 +181,7 @@ public void replaceQuery(QueryDefinition queryDefinition) {
for (String columnId : metadata.getColumnIds()) { for (String columnId : metadata.getColumnIds()) {
logger.debug("Column {} is of type {}", columnId, metadata.getColumnType(columnId)); logger.debug("Column {} is of type {}", columnId, metadata.getColumnType(columnId));
sqlDef.addColumn(columnId, metadata.getColumnType(columnId)); sqlDef.addColumn(columnId, metadata.getColumnType(columnId));
sqlQueryDefinition.getColumns().put(columnId, metadata.getColumnType(columnId).toString());
} }


logger.info("Registered {} query successfully", queryDefinition.getName()); logger.info("Registered {} query successfully", queryDefinition.getName());
Expand Down Expand Up @@ -280,7 +281,14 @@ public QueryDefinition getQuery(String uniqueQueryName) throws QueryNotFoundExce
List<QueryDefinitionEntity> queries = commandService.execute(new QueryNameCommand<List<QueryDefinitionEntity>>("getQueryDefinitionByName", params)); List<QueryDefinitionEntity> queries = commandService.execute(new QueryNameCommand<List<QueryDefinitionEntity>>("getQueryDefinitionByName", params));


if (queries.size() == 1) { if (queries.size() == 1) {
return queries.get(0).toQueryDefinition(); QueryDefinition def = queries.get(0).toQueryDefinition();

DataSetMetadata metadata = dataSetManager.getDataSetMetadata(def.getName());
for (String columnId : metadata.getColumnIds()) {
def.getColumns().put(columnId, metadata.getColumnType(columnId).toString());
}

return def;
} }
throw new QueryNotFoundException("Query " + uniqueQueryName + " not found"); throw new QueryNotFoundException("Query " + uniqueQueryName + " not found");
} }
Expand Down
Expand Up @@ -33,7 +33,7 @@ public class SqlQueryDefinition implements QueryDefinition, Serializable {


private Target target = Target.CUSTOM; private Target target = Target.CUSTOM;


private Map<String, String> columnsMapping = new HashMap<String, String>(); private Map<String, String> columns = new HashMap<String, String>();


public SqlQueryDefinition(String name, String source) { public SqlQueryDefinition(String name, String source) {
this.name = name; this.name = name;
Expand Down Expand Up @@ -97,12 +97,12 @@ public String toString() {
"{ expression=" + expression + "}]"; "{ expression=" + expression + "}]";
} }


public Map<String, String> getColumnsMapping() { public Map<String, String> getColumns() {
return columnsMapping; return columns;
} }


public void setColumnsMapping(Map<String, String> columnsMapping) { public void setColumns(Map<String, String> columns) {
this.columnsMapping = columnsMapping; this.columns = columns;
} }


} }
Expand Up @@ -225,6 +225,10 @@ public void testGetProcessInstances() {
assertEquals(query.getSource(), registeredQuery.getSource()); assertEquals(query.getSource(), registeredQuery.getSource());
assertEquals(query.getExpression(), registeredQuery.getExpression()); assertEquals(query.getExpression(), registeredQuery.getExpression());
assertEquals(query.getTarget(), registeredQuery.getTarget()); assertEquals(query.getTarget(), registeredQuery.getTarget());

Map<String, String> resolvedColumns = registeredQuery.getColumns();
assertNotNull(resolvedColumns);
assertEquals(18, resolvedColumns.size());


Collection<ProcessInstanceDesc> instances = queryService.query(query.getName(), ProcessInstanceQueryMapper.get(), new QueryContext()); Collection<ProcessInstanceDesc> instances = queryService.query(query.getName(), ProcessInstanceQueryMapper.get(), new QueryContext());
assertNotNull(instances); assertNotNull(instances);
Expand Down
9 changes: 9 additions & 0 deletions jbpm-services/jbpm-services-api/src/build/revapi-config.json
Expand Up @@ -829,6 +829,15 @@
"methodName": "getSlaDueDate", "methodName": "getSlaDueDate",
"elementKind": "method", "elementKind": "method",
"justification": "Aded support for time based SLA tracking" "justification": "Aded support for time based SLA tracking"
},
{
"code": "java.method.addedToInterface",
"new": "method java.util.Map<java.lang.String, java.lang.String> org.jbpm.services.api.query.model.QueryDefinition::getColumns()",
"package": "org.jbpm.services.api.query.model",
"classSimpleName": "QueryDefinition",
"methodName": "getColumns",
"elementKind": "method",
"justification": "Expose query definition resolved columns"
} }
] ]
} }
Expand Down
Expand Up @@ -16,6 +16,7 @@


package org.jbpm.services.api.query.model; package org.jbpm.services.api.query.model;


import java.util.Map;


/** /**
* Definition of a query that can be registered in the query service * Definition of a query that can be registered in the query service
Expand Down Expand Up @@ -78,4 +79,9 @@ public enum Target {
* @return * @return
*/ */
Target getTarget(); Target getTarget();

/**
* Returns resolved columns types once the query was successfully registered.
*/
Map<String, String> getColumns();
} }

0 comments on commit 0e09565

Please sign in to comment.