public static KsqlTopicsList build( final String statementText, final Collection<KsqlTopic> ksqlTopics) { final List<KsqlTopicInfo> ksqlTopicInfoList = new ArrayList<>(); for (final KsqlTopic ksqlTopic: ksqlTopics) { ksqlTopicInfoList.add(new KsqlTopicInfo(ksqlTopic)); } return new KsqlTopicsList(statementText, ksqlTopicInfoList); }
private KsqlTopicsList listRegisteredTopics(final PreparedStatement<ListRegisteredTopics> stmt) { return KsqlTopicsList.build( stmt.getStatementText(), ksqlEngine.getMetaStore().getAllKsqlTopics().values() ); }
@Override public int hashCode() { return Objects.hash(getTopics()); }
@Test public void testSerde() throws Exception { final ObjectMapper mapper = JsonMapper.INSTANCE.mapper; final KsqlTopicsList expected = new KsqlTopicsList( "SHOW TOPICS;", ImmutableList.of(new KsqlTopicInfo("ksqltopic", "kafkatopic", DataSourceSerDe.JSON)) ); final String json = mapper.writeValueAsString(expected); assertEquals( "{\"@type\":\"ksql_topics\",\"statementText\":\"SHOW TOPICS;\"," + "\"topics\":[{\"name\":\"ksqltopic\",\"kafkaTopic\":\"kafkatopic\",\"format\":\"JSON\"}]}", json); final KsqlTopicsList actual = mapper.readValue(json, KsqlTopicsList.class); assertEquals(expected, actual); } }
@Override public Table buildTable(final KsqlTopicsList entity) { final Stream<List<String>> rows = entity.getTopics().stream() .map(t -> ImmutableList.of(t.getName(), t.getKafkaTopic(), t.getFormat().name())); return new Builder() .withColumnHeaders(HEADERS) .withRows(rows) .build(); } }
new StreamsList("e", ImmutableList.of(new SourceInfo.Stream("TestStream", "TestTopic", "AVRO"))), new TablesList("e", ImmutableList.of(new SourceInfo.Table("TestTable", "TestTopic", "JSON", false))), new KsqlTopicsList("e", ImmutableList.of(new KsqlTopicInfo("TestTopic", "TestKafkaTopic", DataSource.DataSourceSerDe.JSON))), new KafkaTopicsList("e", ImmutableList.of(new KafkaTopicInfo("TestKafkaTopic", true, ImmutableList.of(1), 1, 1))), new ExecutionPlan("Test Execution Plan")
@Test public void shouldListRegisteredTopics() { // When: final KsqlTopicsList ksqlTopicsList = makeSingleRequest( "LIST REGISTERED TOPICS;", KsqlTopicsList.class); // Then: final Collection<KsqlTopicInfo> expectedTopics = ksqlEngine.getMetaStore() .getAllKsqlTopics().values().stream() .map(KsqlTopicInfo::new) .collect(Collectors.toList()); assertThat(ksqlTopicsList.getTopics(), is(expectedTopics)); }