@Override public DataSetDef clone() { RemoteDataSetDef def = new RemoteDataSetDef(); clone(def); def.setQueryTarget(getQueryTarget()); def.setServerTemplateId(getServerTemplateId()); def.setDbSQL(getDbSQL()); def.setDataSource(getDataSource()); return def; }
@Override public DataSetDef clone() { RemoteDataSetDef def = new RemoteDataSetDef(); clone(def); def.setQueryTarget(getQueryTarget()); def.setServerTemplateId(getServerTemplateId()); def.setDbSQL(getDbSQL()); def.setDataSource(getDataSource()); return def; }
@Override public void toJson(RemoteDataSetDef dataSetDef, JsonObject json) { // Data source. json.put(DATA_SOURCE, dataSetDef.getDataSource()); // Schema. json.put(DB_SCHEMA, dataSetDef.getDbSchema()); // Query. if (dataSetDef.getDbSQL() != null) { json.put(DB_SQL, dataSetDef.getDbSQL()); } json.put(QUERY_TARGET, dataSetDef.getQueryTarget()); json.put(SERVER_TEMPLATE_ID, dataSetDef.getServerTemplateId()); // All columns flag. json.put(ALL_COLUMNS, dataSetDef.isAllColumnsEnabled()); } }
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()); } } }
@Override public void toJson(RemoteDataSetDef dataSetDef, JsonObject json) { // Data source. json.put(DATA_SOURCE, dataSetDef.getDataSource()); // Schema. json.put(DB_SCHEMA, dataSetDef.getDbSchema()); // Query. if (dataSetDef.getDbSQL() != null) { json.put(DB_SQL, dataSetDef.getDbSQL()); } json.put(QUERY_TARGET, dataSetDef.getQueryTarget()); json.put(SERVER_TEMPLATE_ID, dataSetDef.getServerTemplateId()); // All columns flag. json.put(ALL_COLUMNS, dataSetDef.isAllColumnsEnabled()); } }
QueryDefinition queryDefinition = QueryDefinition.builder() .name(dataSetLookup.getDataSetUUID()) .source(def.getDataSource()) .target(def.getQueryTarget()) .expression(def.getDbSQL())
@Test public void testFromJson() { RemoteDataSetDef remoteDataSetDef = new RemoteDataSetDef(); JsonObject json = new JsonObject(new JsonFactory()); json.put(RemoteDefJSONMarshaller.DATA_SOURCE, "test"); json.put(RemoteDefJSONMarshaller.DB_SCHEMA, "testDB"); json.put(RemoteDefJSONMarshaller.DB_SQL, "select * from test"); json.put(RemoteDefJSONMarshaller.QUERY_TARGET, "PROCESS"); json.put(RemoteDefJSONMarshaller.SERVER_TEMPLATE_ID, "server1"); RemoteDefJSONMarshaller marhsaller = new RemoteDefJSONMarshaller(); marhsaller.fromJson(remoteDataSetDef, json); assertEquals("test", remoteDataSetDef.getDataSource()); assertEquals("testDB", remoteDataSetDef.getDbSchema()); assertEquals("select * from test", remoteDataSetDef.getDbSQL()); assertEquals("PROCESS", remoteDataSetDef.getQueryTarget()); assertEquals("server1", remoteDataSetDef.getServerTemplateId()); }
@Test public void testFromJson() { RemoteDataSetDef remoteDataSetDef = new RemoteDataSetDef(); JsonObject json = new JsonObject(new JsonFactory()); json.put(RemoteDefJSONMarshaller.DATA_SOURCE, "test"); json.put(RemoteDefJSONMarshaller.DB_SCHEMA, "testDB"); json.put(RemoteDefJSONMarshaller.DB_SQL, "select * from test"); json.put(RemoteDefJSONMarshaller.QUERY_TARGET, "PROCESS"); json.put(RemoteDefJSONMarshaller.SERVER_TEMPLATE_ID, "server1"); RemoteDefJSONMarshaller marhsaller = new RemoteDefJSONMarshaller(); marhsaller.fromJson(remoteDataSetDef, json); assertEquals("test", remoteDataSetDef.getDataSource()); assertEquals("testDB", remoteDataSetDef.getDbSchema()); assertEquals("select * from test", remoteDataSetDef.getDbSQL()); assertEquals("PROCESS", remoteDataSetDef.getQueryTarget()); assertEquals("server1", remoteDataSetDef.getServerTemplateId()); }