@Test public void testDataSetMetaData() throws Exception { Map<String, String> columns = new HashMap<>(); columns.put("test", "NUMBER"); QueryDefinition definition = QueryDefinition.builder() .name("q1") .columns(columns) .build(); when(dataSetDef.getColumns()).thenReturn(null, new ArrayList<>()); when(dataSetDef.getServerTemplateId()).thenReturn("servereTemplateId"); when(queryServicesClient.getQuery(anyString())).thenReturn(definition); kieServerDataSetProvider.getDataSetMetadata(dataSetDef); verify(dataSetDef, times(1)).addColumn(eq("test"), eq(ColumnType.NUMBER)); verify(queryServicesClient).getQuery(anyString()); }
@Test public void testDataSetMetaData() throws Exception { Map<String, String> columns = new HashMap<>(); columns.put("test", "NUMBER"); QueryDefinition definition = QueryDefinition.builder() .name("q1") .columns(columns) .build(); when(dataSetDef.getColumns()).thenReturn(null, new ArrayList<>()); when(dataSetDef.getServerTemplateId()).thenReturn("servereTemplateId"); when(queryServicesClient.getQuery(anyString())).thenReturn(definition); kieServerDataSetProvider.getDataSetMetadata(dataSetDef); verify(dataSetDef, times(1)).addColumn(eq("test"), eq(ColumnType.NUMBER)); verify(queryServicesClient).getQuery(anyString()); }
@Test public void testRegisterQueriesOnServerWithoutBPMCapability() throws Exception { when(kieClient.getServicesClient(any())).thenThrow(KieServicesException.class); QueryDefinition query = QueryDefinition.builder().name("test").expression("expression").source("jbpm").target("CUSTOM").build(); Set<QueryDefinition> definitions = new HashSet<>(); definitions.add(query); kieServerDataSetManager.registerQueriesWithRetry("template", "instance", definitions); verify(kieServerIntegration, times(1)).getAdminServerClient(anyString(), anyString()); verify(queryClient, never()).replaceQuery(any()); assertEquals(0, receivedEvents.size()); } }
@Test public void testRegisterQueriesWithoutRetry() throws Exception { QueryDefinition query = QueryDefinition.builder().name("test").expression("expression").source("jbpm").target("CUSTOM").build(); Set<QueryDefinition> definitions = new HashSet<>(); definitions.add(query); kieServerDataSetManager.registerQueriesWithRetry("template", "instance", definitions); verify(kieServerIntegration, times(1)).getAdminServerClient(anyString(), anyString()); verify(queryClient, times(1)).replaceQuery(any()); assertEquals(1, receivedEvents.size()); }
@Test public void testRegisterQueriesWithoutRetry() throws Exception { QueryDefinition query = QueryDefinition.builder().name("test").expression("expression").source("jbpm").target("CUSTOM").build(); Set<QueryDefinition> definitions = new HashSet<>(); definitions.add(query); kieServerDataSetManager.registerQueriesWithRetry("template", "instance", definitions); verify(kieServerIntegration, times(1)).getAdminServerClient(anyString(), anyString()); verify(queryClient, times(1)).replaceQuery(any()); assertEquals(1, receivedEvents.size()); }
public static QueryDefinition convertQueryDefinition(org.jbpm.services.api.query.model.QueryDefinition queryDefinition) { if (queryDefinition == null) { return null; } QueryDefinition query = QueryDefinition.builder() .name(queryDefinition.getName()) .expression(queryDefinition.getExpression()) .source(queryDefinition.getSource()) .target(queryDefinition.getTarget().toString()) .columns(queryDefinition.getColumns()) .build(); return query; }
protected void replaceQueryInKieServers(DataSetDef def) { if (def instanceof RemoteDataSetDef && ((RemoteDataSetDef) def).getServerTemplateId() != null) { QueryDefinition queryDefinition = QueryDefinition.builder() .name(def.getUUID()) .source(((RemoteDataSetDef) def).getDataSource()) .target(((RemoteDataSetDef) def).getQueryTarget()) .expression(((RemoteDataSetDef) def).getDbSQL()) .build(); kieServerIntegration.broadcastToKieServers(((RemoteDataSetDef) def).getServerTemplateId(), (KieServicesClient client) -> { QueryServicesClient instanceQueryClient = client.getServicesClient(QueryServicesClient.class); QueryDefinition registered = instanceQueryClient.replaceQuery(queryDefinition); return registered; }); LOGGER.info("Data set definition {} ({}) modification event processed", def.getUUID(), def.getName()); } } }
@Test public void testHumanTasksWithUserDataSet() { QueryDefinition qd = QueryDefinition.builder().name(HUMAN_TASKS_WITH_USER_DATASET).expression("SELECT *").source("source").target("target").build(); dataSetsBootstrap.registerDataSetDefinitions(new QueryDefinitionLoaded(qd)); ArgumentCaptor<SQLDataSetDef> argument = ArgumentCaptor.forClass(SQLDataSetDef.class); verify(dataSetDefRegistry).registerDataSetDef(argument.capture()); SQLDataSetDef dataSetDef = argument.getValue(); assertEquals(HUMAN_TASKS_WITH_USER_DATASET, dataSetDef.getUUID()); assertEquals("target-" + HUMAN_TASKS_WITH_USER_DATASET, dataSetDef.getName()); assertEquals(KieServerDataSetProvider.TYPE, dataSetDef.getProvider()); assertEquals("SELECT *", dataSetDef.getDbSQL()); assertEquals(21, dataSetDef.getColumns().size()); }
@Test public void testHumanTasksDataSet() { QueryDefinition qd = QueryDefinition.builder().name(HUMAN_TASKS_DATASET).expression("SELECT *").source("source").target("target").build(); dataSetsBootstrap.registerDataSetDefinitions(new QueryDefinitionLoaded(qd)); ArgumentCaptor<SQLDataSetDef> argument = ArgumentCaptor.forClass(SQLDataSetDef.class); verify(dataSetDefRegistry).registerDataSetDef(argument.capture()); SQLDataSetDef dataSetDef = argument.getValue(); assertEquals(HUMAN_TASKS_DATASET, dataSetDef.getUUID()); assertEquals("target-" + HUMAN_TASKS_DATASET, dataSetDef.getName()); assertEquals(KieServerDataSetProvider.TYPE, dataSetDef.getProvider()); assertEquals("SELECT *", dataSetDef.getDbSQL()); assertEquals(19, dataSetDef.getColumns().size()); }
@Test public void testHumanTasksWithAdminDataSet() { QueryDefinition qd = QueryDefinition.builder().name(HUMAN_TASKS_WITH_ADMIN_DATASET).expression("SELECT *").source("source").target("target").build(); dataSetsBootstrap.registerDataSetDefinitions(new QueryDefinitionLoaded(qd)); ArgumentCaptor<SQLDataSetDef> argument = ArgumentCaptor.forClass(SQLDataSetDef.class); verify(dataSetDefRegistry).registerDataSetDef(argument.capture()); SQLDataSetDef dataSetDef = argument.getValue(); assertEquals(HUMAN_TASKS_WITH_ADMIN_DATASET, dataSetDef.getUUID()); assertEquals("target-" + HUMAN_TASKS_WITH_ADMIN_DATASET, dataSetDef.getName()); assertEquals(KieServerDataSetProvider.TYPE, dataSetDef.getProvider()); assertEquals("SELECT *", dataSetDef.getDbSQL()); assertEquals(21, dataSetDef.getColumns().size()); }
@Test public void testProcessInstanceWithVariablesDataSet() { QueryDefinition qd = QueryDefinition.builder().name(PROCESS_INSTANCE_WITH_VARIABLES_DATASET).expression("SELECT *").source("source").target("target").build(); dataSetsBootstrap.registerDataSetDefinitions(new QueryDefinitionLoaded(qd)); ArgumentCaptor<SQLDataSetDef> argument = ArgumentCaptor.forClass(SQLDataSetDef.class); verify(dataSetRegistry).registerDataSetDef(argument.capture()); SQLDataSetDef dataSetDef = argument.getValue(); assertEquals(PROCESS_INSTANCE_WITH_VARIABLES_DATASET, dataSetDef.getUUID()); assertEquals("target-" + PROCESS_INSTANCE_WITH_VARIABLES_DATASET, dataSetDef.getName()); assertEquals(KieServerDataSetProvider.TYPE, dataSetDef.getProvider()); assertEquals("SELECT *", dataSetDef.getDbSQL()); assertEquals(5, dataSetDef.getColumns().size()); }
@Test public void testErrorListDataSet() { QueryDefinition qd = QueryDefinition.builder().name(EXECUTION_ERROR_LIST_DATASET).expression("SELECT *").source("source").target("target").build(); dataSetsBootstrap.registerDataSetDefinitions(new QueryDefinitionLoaded(qd)); ArgumentCaptor<SQLDataSetDef> argument = ArgumentCaptor.forClass(SQLDataSetDef.class); verify(dataSetDefRegistry).registerDataSetDef(argument.capture()); SQLDataSetDef dataSetDef = argument.getValue(); assertEquals(EXECUTION_ERROR_LIST_DATASET, dataSetDef.getUUID()); assertEquals("target-" + EXECUTION_ERROR_LIST_DATASET, dataSetDef.getName()); assertEquals(KieServerDataSetProvider.TYPE, dataSetDef.getProvider()); assertEquals("SELECT *", dataSetDef.getDbSQL()); assertEquals(13, dataSetDef.getColumns().size()); } }
@Test public void testHumanTasksDataSet() { QueryDefinition qd = QueryDefinition.builder().name(DATASET_HUMAN_TASKS).expression("SELECT *").source("source").target("target").build(); dataSetsBootstrap.registerDataSetDefinitions(new QueryDefinitionLoaded(qd)); ArgumentCaptor<SQLDataSetDef> argument = ArgumentCaptor.forClass(SQLDataSetDef.class); verify(dataSetRegistry).registerDataSetDef(argument.capture()); SQLDataSetDef dataSetDef = argument.getValue(); assertEquals(DATASET_HUMAN_TASKS, dataSetDef.getUUID()); assertEquals("target-" + DATASET_HUMAN_TASKS, dataSetDef.getName()); assertEquals(KieServerDataSetProvider.TYPE, dataSetDef.getProvider()); assertEquals("SELECT *", dataSetDef.getDbSQL()); assertEquals(11, dataSetDef.getColumns().size()); } }
@Test public void testProcessInstanceWithVariablesDataSet() { QueryDefinition qd = QueryDefinition.builder().name(PROCESS_INSTANCE_WITH_VARIABLES_DATASET).expression("SELECT *").source("source").target("target").build(); dataSetsBootstrap.registerDataSetDefinitions(new QueryDefinitionLoaded(qd)); ArgumentCaptor<SQLDataSetDef> argument = ArgumentCaptor.forClass(SQLDataSetDef.class); verify(dataSetRegistry).registerDataSetDef(argument.capture()); SQLDataSetDef dataSetDef = argument.getValue(); assertEquals(PROCESS_INSTANCE_WITH_VARIABLES_DATASET, dataSetDef.getUUID()); assertEquals("target-" + PROCESS_INSTANCE_WITH_VARIABLES_DATASET, dataSetDef.getName()); assertEquals(KieServerDataSetProvider.TYPE, dataSetDef.getProvider()); assertEquals("SELECT *", dataSetDef.getDbSQL()); assertEquals(5, dataSetDef.getColumns().size()); }
@Test public void testRequestListDataSet() { QueryDefinition qd = QueryDefinition.builder().name(REQUEST_LIST_DATASET).expression("SELECT *").source("source").target("target").build(); dataSetsBootstrap.registerDataSetDefinitions(new QueryDefinitionLoaded(qd)); ArgumentCaptor<SQLDataSetDef> argument = ArgumentCaptor.forClass(SQLDataSetDef.class); verify(dataSetDefRegistry).registerDataSetDef(argument.capture()); SQLDataSetDef dataSetDef = argument.getValue(); assertEquals(REQUEST_LIST_DATASET, dataSetDef.getUUID()); assertEquals("target-" + REQUEST_LIST_DATASET, dataSetDef.getName()); assertEquals(KieServerDataSetProvider.TYPE, dataSetDef.getProvider()); assertEquals("SELECT *", dataSetDef.getDbSQL()); assertEquals(12, dataSetDef.getColumns().size()); }
@Test public void testHumanTasksDataSet() { QueryDefinition qd = QueryDefinition.builder().name(HUMAN_TASKS_DATASET).expression("SELECT *").source("source").target("target").build(); dataSetsBootstrap.registerDataSetDefinitions(new QueryDefinitionLoaded(qd)); ArgumentCaptor<SQLDataSetDef> argument = ArgumentCaptor.forClass(SQLDataSetDef.class); verify(dataSetDefRegistry).registerDataSetDef(argument.capture()); SQLDataSetDef dataSetDef = argument.getValue(); assertEquals(HUMAN_TASKS_DATASET, dataSetDef.getUUID()); assertEquals("target-" + HUMAN_TASKS_DATASET, dataSetDef.getName()); assertEquals(KieServerDataSetProvider.TYPE, dataSetDef.getProvider()); assertEquals("SELECT *", dataSetDef.getDbSQL()); assertEquals(19, dataSetDef.getColumns().size()); }
@Test public void testHumanTasksWithUserDataSet() { QueryDefinition qd = QueryDefinition.builder().name(HUMAN_TASKS_WITH_USER_DATASET).expression("SELECT *").source("source").target("target").build(); dataSetsBootstrap.registerDataSetDefinitions(new QueryDefinitionLoaded(qd)); ArgumentCaptor<SQLDataSetDef> argument = ArgumentCaptor.forClass(SQLDataSetDef.class); verify(dataSetDefRegistry).registerDataSetDef(argument.capture()); SQLDataSetDef dataSetDef = argument.getValue(); assertEquals(HUMAN_TASKS_WITH_USER_DATASET, dataSetDef.getUUID()); assertEquals("target-" + HUMAN_TASKS_WITH_USER_DATASET, dataSetDef.getName()); assertEquals(KieServerDataSetProvider.TYPE, dataSetDef.getProvider()); assertEquals("SELECT *", dataSetDef.getDbSQL()); assertEquals(21, dataSetDef.getColumns().size()); }
@Test public void testProcessInstancesDataSet() { QueryDefinition qd = QueryDefinition.builder().name(DATASET_PROCESS_INSTANCES).expression("SELECT *").source("source").target("target").build(); dataSetsBootstrap.registerDataSetDefinitions(new QueryDefinitionLoaded(qd)); ArgumentCaptor<SQLDataSetDef> argument = ArgumentCaptor.forClass(SQLDataSetDef.class); verify(dataSetRegistry).registerDataSetDef(argument.capture()); SQLDataSetDef dataSetDef = argument.getValue(); assertEquals(DATASET_PROCESS_INSTANCES, dataSetDef.getUUID()); assertEquals("target-" + DATASET_PROCESS_INSTANCES, dataSetDef.getName()); assertEquals(KieServerDataSetProvider.TYPE, dataSetDef.getProvider()); assertEquals("SELECT *", dataSetDef.getDbSQL()); assertEquals(10, dataSetDef.getColumns().size()); }
@Test public void testErrorListDataSet() { QueryDefinition qd = QueryDefinition.builder().name(EXECUTION_ERROR_LIST_DATASET).expression("SELECT *").source("source").target("target").build(); dataSetsBootstrap.registerDataSetDefinitions(new QueryDefinitionLoaded(qd)); ArgumentCaptor<SQLDataSetDef> argument = ArgumentCaptor.forClass(SQLDataSetDef.class); verify(dataSetDefRegistry).registerDataSetDef(argument.capture()); SQLDataSetDef dataSetDef = argument.getValue(); assertEquals(EXECUTION_ERROR_LIST_DATASET, dataSetDef.getUUID()); assertEquals("target-" + EXECUTION_ERROR_LIST_DATASET, dataSetDef.getName()); assertEquals(KieServerDataSetProvider.TYPE, dataSetDef.getProvider()); assertEquals("SELECT *", dataSetDef.getDbSQL()); assertEquals(13, dataSetDef.getColumns().size()); } }
@Test public void testHumanTasksWithVariablesDataSet() { QueryDefinition qd = QueryDefinition.builder().name(HUMAN_TASKS_WITH_VARIABLES_DATASET).expression("SELECT *").source("source").target("target").build(); dataSetsBootstrap.registerDataSetDefinitions(new QueryDefinitionLoaded(qd)); ArgumentCaptor<SQLDataSetDef> argument = ArgumentCaptor.forClass(SQLDataSetDef.class); verify(dataSetDefRegistry).registerDataSetDef(argument.capture()); SQLDataSetDef dataSetDef = argument.getValue(); assertEquals(HUMAN_TASKS_WITH_VARIABLES_DATASET, dataSetDef.getUUID()); assertEquals("target-" + HUMAN_TASKS_WITH_VARIABLES_DATASET, dataSetDef.getName()); assertEquals(KieServerDataSetProvider.TYPE, dataSetDef.getProvider()); assertEquals("SELECT *", dataSetDef.getDbSQL()); assertEquals(3, dataSetDef.getColumns().size()); } }