@PostConstruct protected void registerDataSetDefinitions() { String jbpmDataSource = JpaSettings.get().getDataSourceJndiName(); DataSetDef requestListDef = DataSetDefFactory.newSQLDataSetDef() .uuid(REQUEST_LIST_DATASET) .name("Request List") .dataSource(jbpmDataSource) .dbTable("RequestInfo", false) .number(COLUMN_ID) .date(COLUMN_TIMESTAMP) .label(COLUMN_STATUS) .label(COLUMN_COMMANDNAME) .label(COLUMN_MESSAGE) .label(COLUMN_BUSINESSKEY) .buildDef(); // Hide all these internal data set from end user view requestListDef.setPublic(false); // Register the data set definitions dataSetDefRegistry.registerDataSetDef(requestListDef); logger.info("Executor service datasets registered"); } }
@Override public RemoteDataSetDefBuilder dbSQL(String dbSQL, boolean allColumns) { super.dbSQL(dbSQL, allColumns); return this; }
private SQLDataSetDefBuilderImpl addBuilderCommonColumns(SQLDataSetDefBuilderImpl builder) { return builder .date(COLUMN_ACTIVATION_TIME) .label(COLUMN_ACTUAL_OWNER) .label(COLUMN_CREATED_BY) .date(COLUMN_CREATED_ON) .label(COLUMN_DEPLOYMENT_ID) .text(COLUMN_DESCRIPTION) .date(COLUMN_DUE_DATE) .label(COLUMN_NAME) .number(COLUMN_PARENT_ID) .number(COLUMN_PRIORITY) .label(COLUMN_PROCESS_ID) .number(COLUMN_PROCESS_INSTANCE_ID) .number(COLUMN_PROCESS_SESSION_ID) .label(COLUMN_STATUS) .number(COLUMN_TASK_ID) .number(COLUMN_WORK_ITEM_ID) .date(COLUMN_LAST_MODIFICATION_DATE) .label(COLUMN_PROCESS_INSTANCE_CORRELATION_KEY) .text(COLUMN_PROCESS_INSTANCE_DESCRIPTION); } }
builder -> builder.number(COLUMN_PROCESS_INSTANCE_ID) .label(COLUMN_PROCESS_ID) .date(COLUMN_PROCESS_START_DATE) .date(COLUMN_PROCESS_END_DATE) .number(COLUMN_PROCESS_STATUS) .number(COLUMN_PROCESS_DURATION) .label(COLUMN_PROCESS_USER_ID) .label(COLUMN_PROCESS_VERSION) .label(COLUMN_PROCESS_NAME) .label(COLUMN_PROCESS_EXTERNAL_ID) ); } else if (event.getDefinition().getName().equals(DATASET_HUMAN_TASKS)) { builder -> builder.label(COLUMN_PROCESS_NAME) .label(COLUMN_PROCESS_EXTERNAL_ID) .label(COLUMN_TASK_ID) .label(COLUMN_TASK_NAME) .label(COLUMN_TASK_STATUS) .date(COLUMN_TASK_CREATED_DATE) .date(COLUMN_TASK_START_DATE) .date(COLUMN_TASK_END_DATE) .number(COLUMN_PROCESS_INSTANCE_ID) .label(COLUMN_TASK_OWNER_ID) .number(COLUMN_TASK_DURATION) );
.uuid(PROCESSES_MONITORING_DATASET) .name("Processes monitoring") .dataSource(jbpmDataSource) .dbTable(PROCESS_INSTANCE_TABLE, true) .buildDef(); .uuid(TASKS_MONITORING_DATASET) .name("Tasks monitoring") .dataSource(jbpmDataSource) .dbSQL("select " + "p.processName, " + "p.externalId, " + "inner join (select min(pk) as pk from BAMTaskSummary group by taskId) d on t.pk = d.pk", true) .buildDef();
@Test public void testColumnsMustMatchDb() throws Exception { DataSetMetadata metadata = dataSetProvider.getDataSetMetadata( DataSetDefFactory.newSQLDataSetDef() .uuid("test") .label("dbwins1") .label("DBWINS2") .dbTable("test", false) .buildDef()); List<String> columnIds = metadata.getColumnIds(); assertEquals(columnIds.size(), 2); assertEquals(columnIds.get(0), "dbWins1"); assertEquals(columnIds.get(1), "dbWins2"); } }
@Test(expected = IllegalArgumentException.class) public void testNoColumnsDeclared() throws Exception { DataSetMetadata metadata = dataSetProvider.getDataSetMetadata( DataSetDefFactory.newSQLDataSetDef() .uuid("test") .dbTable("test", false) .buildDef()); List<String> columnIds = metadata.getColumnIds(); assertEquals(columnIds.size(), 2); assertEquals(columnIds.get(0), "dbWins1"); assertEquals(columnIds.get(1), "dbWins2"); }
public void createTestTable() throws Exception { createTable(conn).table(TEST).columns(ID, NAME).primaryKey(ID).execute(); insert(conn).into(TEST).set(ID, 1).set(NAME, "Hello").execute(); insert(conn).into(TEST).set(ID, 2).set(NAME, "World").execute(); insert(conn).into(TEST).set(ID, 3).set(NAME, "Hello").execute(); insert(conn).into(TEST).set(ID, 4).set(NAME, "World").execute(); DataSetDef dataSetDef = DataSetDefFactory.newSQLDataSetDef() .uuid("test") .dataSource("test") .dbTable("TEST", true).buildDef(); dataSetDefRegistry.registerDataSetDef(dataSetDef); }
public void registerDataSetDefinitions(@Observes QueryDefinitionLoaded event) { if (event.getDefinition().getName().equals(HUMAN_TASKS_DATASET)) { registerDataSetDefinition(event.getDefinition(), builder -> addBuilderCommonColumns(builder) ); } else if (event.getDefinition().getName().equals(HUMAN_TASKS_WITH_USER_DATASET)) { registerDataSetDefinition(event.getDefinition(), builder -> addBuilderCommonColumns(builder) .label(COLUMN_ORGANIZATIONAL_ENTITY) .label(COLUMN_EXCLUDED_OWNER) ); } else if (event.getDefinition().getName().equals(HUMAN_TASKS_WITH_ADMIN_DATASET)) { registerDataSetDefinition(event.getDefinition(), builder -> addBuilderCommonColumns(builder) .label(COLUMN_ORGANIZATIONAL_ENTITY) .number(COLUMN_ERROR_COUNT) ); } else if (event.getDefinition().getName().equals(HUMAN_TASKS_WITH_VARIABLES_DATASET)) { registerDataSetDefinition(event.getDefinition(), builder -> builder.number(COLUMN_TASK_VARIABLE_TASK_ID) .label(COLUMN_TASK_VARIABLE_NAME) .label(COLUMN_TASK_VARIABLE_VALUE) ); } }
@Override public RemoteDataSetDefBuilder dbTable(String dbTable, boolean allColumns) { super.dbTable(dbTable, allColumns); return this; }
@Override public RemoteDataSetDefBuilder uuid(String uuid) { super.uuid(uuid); return this; }
@Override public RemoteDataSetDefBuilder dataSource(String dataSource) { super.dataSource(dataSource); return this; }
@Test public void testSQLConfig() throws Exception { DataSetDef dataSetDef = DataSetDefFactory.newSQLDataSetDef() .column("date", ColumnType.DATE) .column("number", ColumnType.NUMBER) .buildDef(); DataSet dataSet = DataSetFactory.newDataSetBuilder() .date("date") .number("number") .row(new Date(), 1d) .buildDataSet(); when(dataSetLookupServices.lookupDataSet(any(), any())).thenReturn(dataSet); tested.show(dataSetDef, null, displayerListener); ArgumentCaptor<Displayer> argumentCaptor = ArgumentCaptor.forClass(Displayer.class); verify(displayerListener).onDataLoaded(argumentCaptor.capture()); Displayer displayer = argumentCaptor.getValue(); DisplayerSettings settings = displayer.getDisplayerSettings(); assertFalse(settings.isTableColumnPickerEnabled()); assertEquals(settings.getTablePageSize(), 10); assertTrue(settings.isTableSortEnabled()); } }
@Override public RemoteDataSetDefBuilder name(String name) { super.name(name); return this; }
builder -> builder.number(COLUMN_PROCESS_INSTANCE_ID) .label(COLUMN_PROCESS_ID) .date(COLUMN_PROCESS_START_DATE) .date(COLUMN_PROCESS_END_DATE) .number(COLUMN_PROCESS_STATUS) .number(COLUMN_PROCESS_DURATION) .label(COLUMN_PROCESS_USER_ID) .label(COLUMN_PROCESS_VERSION) .label(COLUMN_PROCESS_NAME) .label(COLUMN_PROCESS_EXTERNAL_ID) ); } else if (event.getDefinition().getName().equals(DATASET_HUMAN_TASKS)) { builder -> builder.label(COLUMN_PROCESS_NAME) .label(COLUMN_PROCESS_EXTERNAL_ID) .label(COLUMN_TASK_ID) .label(COLUMN_TASK_NAME) .label(COLUMN_TASK_STATUS) .date(COLUMN_TASK_CREATED_DATE) .date(COLUMN_TASK_START_DATE) .date(COLUMN_TASK_END_DATE) .number(COLUMN_PROCESS_INSTANCE_ID) .label(COLUMN_TASK_OWNER_ID) .number(COLUMN_TASK_DURATION) );
@Test public void testColumnsMustMatchDb() throws Exception { DataSetMetadata metadata = dataSetProvider.getDataSetMetadata( DataSetDefFactory.newSQLDataSetDef() .uuid("test") .label("dbwins1") .label("DBWINS2") .dbTable("test", false) .buildDef()); List<String> columnIds = metadata.getColumnIds(); assertEquals(columnIds.size(), 2); assertEquals(columnIds.get(0), "dbWins1"); assertEquals(columnIds.get(1), "dbWins2"); } }
@Test(expected = IllegalArgumentException.class) public void testNoColumnsDeclared() throws Exception { DataSetMetadata metadata = dataSetProvider.getDataSetMetadata( DataSetDefFactory.newSQLDataSetDef() .uuid("test") .dbTable("test", false) .buildDef()); List<String> columnIds = metadata.getColumnIds(); assertEquals(columnIds.size(), 2); assertEquals(columnIds.get(0), "dbWins1"); assertEquals(columnIds.get(1), "dbWins2"); }
public void createTestTable() throws Exception { createTable(conn).table(TEST).columns(ID, NAME).primaryKey(ID).execute(); insert(conn).into(TEST).set(ID, 1).set(NAME, "Hello").execute(); insert(conn).into(TEST).set(ID, 2).set(NAME, "World").execute(); insert(conn).into(TEST).set(ID, 3).set(NAME, "Hello").execute(); insert(conn).into(TEST).set(ID, 4).set(NAME, "World").execute(); DataSetDef dataSetDef = DataSetDefFactory.newSQLDataSetDef() .uuid("test") .dataSource("test") .dbTable("TEST", true).buildDef(); dataSetDefRegistry.registerDataSetDef(dataSetDef); }
builder -> builder.number(COLUMN_ID) .date(COLUMN_TIMESTAMP) .label(COLUMN_STATUS) .label(COLUMN_COMMANDNAME) .label(COLUMN_MESSAGE) .label(COLUMN_BUSINESSKEY) .number(COLUMN_RETRIES) .number(COLUMN_EXECUTIONS) .label(COLUMN_PROCESS_NAME) .number(COLUMN_PROCESS_INSTANCE_ID) .label(COLUMN_PROCESS_INSTANCE_DESCRIPTION) .label(COLUMN_JOB_DEPLOYMENT_ID) ); } else if (event.getDefinition().getName().equals(EXECUTION_ERROR_LIST_DATASET)) { builder -> builder.number(COLUMN_ERROR_ACK) .text(COLUMN_ERROR_ACK_BY) .date(COLUMN_ERROR_ACK_AT) .number(COLUMN_ACTIVITY_ID) .label(COLUMN_ACTIVITY_NAME) .label(COLUMN_DEPLOYMENT_ID) .date(COLUMN_ERROR_DATE) .label(COLUMN_ERROR_ID) .label(COLUMN_ERROR_MSG) .number(COLUMN_JOB_ID) .label(COLUMN_PROCESS_ID) .number(COLUMN_PROCESS_INST_ID)
.uuid(PROCESS_INSTANCE_DATASET) .name("Process Instances") .dataSource(jbpmDataSource) .dbTable("ProcessInstanceLog", false) .number(COLUMN_PROCESS_INSTANCE_ID) .label(COLUMN_PROCESS_ID) .date(COLUMN_START) .date(COLUMN_END) .number(COLUMN_STATUS) .number(COLUMN_PARENT_PROCESS_INSTANCE_ID) .label(COLUMN_OUTCOME) .number(COLUMN_DURATION) .label(COLUMN_IDENTITY) .label(COLUMN_PROCESS_VERSION) .label(COLUMN_PROCESS_NAME) .label(COLUMN_CORRELATION_KEY) .label(COLUMN_EXTERNAL_ID) .label(COLUMN_PROCESS_INSTANCE_DESCRIPTION) .buildDef(); .uuid(PROCESS_INSTANCE_WITH_VARIABLES_DATASET) .name("Domain Specific Process Instances") .dataSource(jbpmDataSource) .dbSQL("select " + "vil.processInstanceId, " + "vil.processId, " + "v.variableId = vil.variableId and " + "v.processInstanceId = vil.processInstanceId)" , false )