diff --git a/ksql-cli/src/test/java/io/confluent/ksql/cli/console/ConsoleTest.java b/ksql-cli/src/test/java/io/confluent/ksql/cli/console/ConsoleTest.java index 7457d3005bcf..b3a0f8c910a8 100644 --- a/ksql-cli/src/test/java/io/confluent/ksql/cli/console/ConsoleTest.java +++ b/ksql-cli/src/test/java/io/confluent/ksql/cli/console/ConsoleTest.java @@ -37,6 +37,7 @@ import io.confluent.ksql.cli.console.cmd.CliSpecificCommand; import io.confluent.ksql.metastore.model.DataSource.DataSourceType; import io.confluent.ksql.name.ColumnName; +import io.confluent.ksql.query.QueryId; import io.confluent.ksql.rest.Errors; import io.confluent.ksql.rest.entity.ArgumentInfo; import io.confluent.ksql.rest.entity.CommandId; @@ -45,7 +46,6 @@ import io.confluent.ksql.rest.entity.ConnectorDescription; import io.confluent.ksql.rest.entity.ConnectorList; import io.confluent.ksql.rest.entity.DropConnectorEntity; -import io.confluent.ksql.rest.entity.EntityQueryId; import io.confluent.ksql.rest.entity.ErrorEntity; import io.confluent.ksql.rest.entity.ExecutionPlan; import io.confluent.ksql.rest.entity.FieldInfo; @@ -272,7 +272,7 @@ public void testPrintQueries() throws IOException { final List queries = new ArrayList<>(); queries.add( new RunningQuery( - "select * from t1", Collections.singleton("Test"), new EntityQueryId("0"))); + "select * from t1", Collections.singleton("Test"), new QueryId("0"))); final KsqlEntityList entityList = new KsqlEntityList(ImmutableList.of( new Queries("e", queries) @@ -321,10 +321,10 @@ public void testPrintSourceDescription() throws IOException { ); final List readQueries = ImmutableList.of( - new RunningQuery("read query", ImmutableSet.of("sink1"), new EntityQueryId("readId")) + new RunningQuery("read query", ImmutableSet.of("sink1"), new QueryId("readId")) ); final List writeQueries = ImmutableList.of( - new RunningQuery("write query", ImmutableSet.of("sink2"), new EntityQueryId("writeId")) + new RunningQuery("write query", ImmutableSet.of("sink2"), new QueryId("writeId")) ); final KsqlEntityList entityList = new KsqlEntityList(ImmutableList.of( @@ -962,10 +962,10 @@ public void testPrintExecuptionPlan() throws IOException { public void shouldPrintTopicDescribeExtended() throws IOException { // Given: final List readQueries = ImmutableList.of( - new RunningQuery("read query", ImmutableSet.of("sink1"), new EntityQueryId("readId")) + new RunningQuery("read query", ImmutableSet.of("sink1"), new QueryId("readId")) ); final List writeQueries = ImmutableList.of( - new RunningQuery("write query", ImmutableSet.of("sink2"), new EntityQueryId("writeId")) + new RunningQuery("write query", ImmutableSet.of("sink2"), new QueryId("writeId")) ); final KsqlEntityList entityList = new KsqlEntityList(ImmutableList.of( diff --git a/ksql-common/src/main/java/io/confluent/ksql/query/QueryId.java b/ksql-common/src/main/java/io/confluent/ksql/query/QueryId.java index 6986bc24b3d4..da20df08d2b5 100644 --- a/ksql-common/src/main/java/io/confluent/ksql/query/QueryId.java +++ b/ksql-common/src/main/java/io/confluent/ksql/query/QueryId.java @@ -18,7 +18,7 @@ import static java.util.Objects.requireNonNull; import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonValue; import com.google.errorprone.annotations.Immutable; import java.util.Objects; @@ -28,10 +28,11 @@ public class QueryId { private final String id; @JsonCreator - public QueryId(@JsonProperty("id") final String id) { + public QueryId(final String id) { this.id = requireNonNull(id, "id"); } + @JsonValue public String getId() { return id; } diff --git a/ksql-rest-app/src/main/java/io/confluent/ksql/rest/entity/QueryDescriptionFactory.java b/ksql-rest-app/src/main/java/io/confluent/ksql/rest/entity/QueryDescriptionFactory.java index 00d5efddab91..68d1603f01a1 100644 --- a/ksql-rest-app/src/main/java/io/confluent/ksql/rest/entity/QueryDescriptionFactory.java +++ b/ksql-rest-app/src/main/java/io/confluent/ksql/rest/entity/QueryDescriptionFactory.java @@ -17,6 +17,7 @@ import com.google.common.collect.ImmutableSet; import io.confluent.ksql.name.SourceName; +import io.confluent.ksql.query.QueryId; import io.confluent.ksql.rest.util.EntityUtil; import io.confluent.ksql.util.PersistentQueryMetadata; import io.confluent.ksql.util.QueryMetadata; @@ -33,23 +34,23 @@ public static QueryDescription forQueryMetadata(final QueryMetadata queryMetadat if (queryMetadata instanceof PersistentQueryMetadata) { final PersistentQueryMetadata persistentQuery = (PersistentQueryMetadata) queryMetadata; return create( - persistentQuery.getQueryId().getId(), + persistentQuery.getQueryId(), persistentQuery, ImmutableSet.of(persistentQuery.getSinkName()), false ); } - return create("", queryMetadata, Collections.emptySet(), true); + return create(new QueryId(""), queryMetadata, Collections.emptySet(), true); } private static QueryDescription create( - final String id, + final QueryId id, final QueryMetadata queryMetadata, final Set sinks, final boolean valueSchemaOnly ) { return new QueryDescription( - new EntityQueryId(id), + id, queryMetadata.getStatementString(), EntityUtil.buildSourceSchemaEntity(queryMetadata.getLogicalSchema(), valueSchemaOnly), queryMetadata.getSourceNames().stream().map(SourceName::name).collect(Collectors.toSet()), diff --git a/ksql-rest-app/src/main/java/io/confluent/ksql/rest/server/execution/ListQueriesExecutor.java b/ksql-rest-app/src/main/java/io/confluent/ksql/rest/server/execution/ListQueriesExecutor.java index a10c1dc5d4e5..c97c43a05454 100644 --- a/ksql-rest-app/src/main/java/io/confluent/ksql/rest/server/execution/ListQueriesExecutor.java +++ b/ksql-rest-app/src/main/java/io/confluent/ksql/rest/server/execution/ListQueriesExecutor.java @@ -18,7 +18,6 @@ import com.google.common.collect.ImmutableSet; import io.confluent.ksql.KsqlExecutionContext; import io.confluent.ksql.parser.tree.ListQueries; -import io.confluent.ksql.rest.entity.EntityQueryId; import io.confluent.ksql.rest.entity.KsqlEntity; import io.confluent.ksql.rest.entity.QueryDescriptionFactory; import io.confluent.ksql.rest.entity.QueryDescriptionList; @@ -54,7 +53,7 @@ public static Optional execute( q -> new RunningQuery( q.getStatementString(), ImmutableSet.of(q.getSinkName().name()), - new EntityQueryId(q.getQueryId()))) + q.getQueryId())) .collect(Collectors.toList()))); } diff --git a/ksql-rest-app/src/main/java/io/confluent/ksql/rest/server/execution/ListSourceExecutor.java b/ksql-rest-app/src/main/java/io/confluent/ksql/rest/server/execution/ListSourceExecutor.java index f9e40fa4f3d9..9d66179b59d2 100644 --- a/ksql-rest-app/src/main/java/io/confluent/ksql/rest/server/execution/ListSourceExecutor.java +++ b/ksql-rest-app/src/main/java/io/confluent/ksql/rest/server/execution/ListSourceExecutor.java @@ -25,7 +25,6 @@ import io.confluent.ksql.parser.tree.ListStreams; import io.confluent.ksql.parser.tree.ListTables; import io.confluent.ksql.parser.tree.ShowColumns; -import io.confluent.ksql.rest.entity.EntityQueryId; import io.confluent.ksql.rest.entity.KsqlEntity; import io.confluent.ksql.rest.entity.KsqlWarning; import io.confluent.ksql.rest.entity.RunningQuery; @@ -220,7 +219,7 @@ private static List getQueries( .map(q -> new RunningQuery( q.getStatementString(), ImmutableSet.of(q.getSinkName().name()), - new EntityQueryId(q.getQueryId()) + q.getQueryId() )) .collect(Collectors.toList()); } diff --git a/ksql-rest-app/src/test/java/io/confluent/ksql/rest/server/TestKsqlRestApp.java b/ksql-rest-app/src/test/java/io/confluent/ksql/rest/server/TestKsqlRestApp.java index b40486c000c1..a465f15e0351 100644 --- a/ksql-rest-app/src/test/java/io/confluent/ksql/rest/server/TestKsqlRestApp.java +++ b/ksql-rest-app/src/test/java/io/confluent/ksql/rest/server/TestKsqlRestApp.java @@ -23,10 +23,10 @@ import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; import com.google.common.collect.ImmutableMap; import io.confluent.ksql.json.JsonMapper; +import io.confluent.ksql.query.QueryId; import io.confluent.ksql.rest.client.BasicCredentials; import io.confluent.ksql.rest.client.KsqlRestClient; import io.confluent.ksql.rest.client.RestResponse; -import io.confluent.ksql.rest.entity.EntityQueryId; import io.confluent.ksql.rest.entity.KsqlEntityList; import io.confluent.ksql.rest.entity.KsqlErrorMessage; import io.confluent.ksql.rest.entity.Queries; @@ -294,7 +294,7 @@ private static Set getPersistentQueries(final KsqlRestClient client) { final Queries queries = (Queries) response.getResponse().get(0); return queries.getQueries().stream() .map(RunningQuery::getId) - .map(EntityQueryId::getId) + .map(QueryId::getId) .collect(Collectors.toSet()); } diff --git a/ksql-rest-app/src/test/java/io/confluent/ksql/rest/server/execution/ListQueriesExecutorTest.java b/ksql-rest-app/src/test/java/io/confluent/ksql/rest/server/execution/ListQueriesExecutorTest.java index 358f58178a55..1ead9700b6d0 100644 --- a/ksql-rest-app/src/test/java/io/confluent/ksql/rest/server/execution/ListQueriesExecutorTest.java +++ b/ksql-rest-app/src/test/java/io/confluent/ksql/rest/server/execution/ListQueriesExecutorTest.java @@ -27,13 +27,11 @@ import io.confluent.ksql.engine.KsqlEngine; import io.confluent.ksql.name.SourceName; import io.confluent.ksql.query.QueryId; -import io.confluent.ksql.rest.entity.EntityQueryId; import io.confluent.ksql.rest.entity.Queries; import io.confluent.ksql.rest.entity.QueryDescriptionFactory; import io.confluent.ksql.rest.entity.QueryDescriptionList; import io.confluent.ksql.rest.entity.RunningQuery; import io.confluent.ksql.rest.server.TemporaryEngine; -import io.confluent.ksql.schema.ksql.FormatOptions; import io.confluent.ksql.statement.ConfiguredStatement; import io.confluent.ksql.util.PersistentQueryMetadata; import org.junit.Rule; @@ -78,7 +76,7 @@ public void shouldListQueriesBasic() { new RunningQuery( metadata.getStatementString(), ImmutableSet.of(metadata.getSinkName().name()), - new EntityQueryId(metadata.getQueryId())))); + metadata.getQueryId()))); } @Test diff --git a/ksql-rest-app/src/test/java/io/confluent/ksql/rest/server/execution/ListSourceExecutorTest.java b/ksql-rest-app/src/test/java/io/confluent/ksql/rest/server/execution/ListSourceExecutorTest.java index ec2e97298075..9e793f92e2f5 100644 --- a/ksql-rest-app/src/test/java/io/confluent/ksql/rest/server/execution/ListSourceExecutorTest.java +++ b/ksql-rest-app/src/test/java/io/confluent/ksql/rest/server/execution/ListSourceExecutorTest.java @@ -36,7 +36,6 @@ import io.confluent.ksql.name.SourceName; import io.confluent.ksql.parser.KsqlParser.PreparedStatement; import io.confluent.ksql.parser.tree.ShowColumns; -import io.confluent.ksql.rest.entity.EntityQueryId; import io.confluent.ksql.rest.entity.KsqlEntity; import io.confluent.ksql.rest.entity.KsqlWarning; import io.confluent.ksql.rest.entity.RunningQuery; @@ -239,7 +238,7 @@ public void shouldShowColumnsSource() { ImmutableList.of(new RunningQuery( metadata.getStatementString(), ImmutableSet.of(metadata.getSinkName().toString(FormatOptions.noEscape())), - new EntityQueryId(metadata.getQueryId()))), + metadata.getQueryId())), Optional.empty()))); } diff --git a/ksql-rest-app/src/test/java/io/confluent/ksql/rest/server/resources/KsqlResourceTest.java b/ksql-rest-app/src/test/java/io/confluent/ksql/rest/server/resources/KsqlResourceTest.java index 5a30052593c8..82ad82c6789e 100644 --- a/ksql-rest-app/src/test/java/io/confluent/ksql/rest/server/resources/KsqlResourceTest.java +++ b/ksql-rest-app/src/test/java/io/confluent/ksql/rest/server/resources/KsqlResourceTest.java @@ -91,7 +91,6 @@ import io.confluent.ksql.rest.entity.CommandId; import io.confluent.ksql.rest.entity.CommandStatus; import io.confluent.ksql.rest.entity.CommandStatusEntity; -import io.confluent.ksql.rest.entity.EntityQueryId; import io.confluent.ksql.rest.entity.FunctionNameList; import io.confluent.ksql.rest.entity.FunctionType; import io.confluent.ksql.rest.entity.KsqlEntity; @@ -1894,7 +1893,7 @@ private List createRunningQueries( .map(md -> new RunningQuery( md.getStatementString(), ImmutableSet.of(md.getSinkName().toString(FormatOptions.noEscape())), - new EntityQueryId(md.getQueryId()))) + md.getQueryId())) .collect(Collectors.toList()); } diff --git a/ksql-rest-model/src/main/java/io/confluent/ksql/rest/entity/EntityQueryId.java b/ksql-rest-model/src/main/java/io/confluent/ksql/rest/entity/EntityQueryId.java deleted file mode 100644 index 1c50d52a6721..000000000000 --- a/ksql-rest-model/src/main/java/io/confluent/ksql/rest/entity/EntityQueryId.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2018 Confluent Inc. - * - * Licensed under the Confluent Community License (the "License"); you may not use - * this file except in compliance with the License. You may obtain a copy of the - * License at - * - * http://www.confluent.io/confluent-community-license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package io.confluent.ksql.rest.entity; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonValue; -import io.confluent.ksql.query.QueryId; -import java.util.Objects; - -@JsonIgnoreProperties(ignoreUnknown = true) -public class EntityQueryId { - private final String id; - - public EntityQueryId(final QueryId queryId) { - this.id = queryId.getId(); - } - - @JsonCreator - public EntityQueryId(final String id) { - this.id = id; - } - - @JsonValue - public String getId() { - return id; - } - - @Override - public boolean equals(final Object o) { - return o instanceof EntityQueryId - && Objects.equals(((EntityQueryId) o).id, id); - } - - @Override - public int hashCode() { - return Objects.hashCode(id); - } - - @Override - public String toString() { - return id; - } -} diff --git a/ksql-rest-model/src/main/java/io/confluent/ksql/rest/entity/QueryDescription.java b/ksql-rest-model/src/main/java/io/confluent/ksql/rest/entity/QueryDescription.java index c52d98a61658..f4505a564429 100644 --- a/ksql-rest-model/src/main/java/io/confluent/ksql/rest/entity/QueryDescription.java +++ b/ksql-rest-model/src/main/java/io/confluent/ksql/rest/entity/QueryDescription.java @@ -18,6 +18,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; +import io.confluent.ksql.query.QueryId; import java.util.Collections; import java.util.List; import java.util.Map; @@ -27,7 +28,7 @@ @JsonIgnoreProperties(ignoreUnknown = true) public class QueryDescription { - private final EntityQueryId id; + private final QueryId id; private final String statementText; private final List fields; private final Set sources; @@ -38,7 +39,7 @@ public class QueryDescription { @JsonCreator public QueryDescription( - @JsonProperty("id") final EntityQueryId id, + @JsonProperty("id") final QueryId id, @JsonProperty("statementText") final String statementText, @JsonProperty("fields") final List fields, @JsonProperty("sources") final Set sources, @@ -57,7 +58,7 @@ public QueryDescription( this.overriddenProperties = Collections.unmodifiableMap(overriddenProperties); } - public EntityQueryId getId() { + public QueryId getId() { return id; } diff --git a/ksql-rest-model/src/main/java/io/confluent/ksql/rest/entity/RunningQuery.java b/ksql-rest-model/src/main/java/io/confluent/ksql/rest/entity/RunningQuery.java index 670cccd6eaaa..fb03cafbae2d 100644 --- a/ksql-rest-model/src/main/java/io/confluent/ksql/rest/entity/RunningQuery.java +++ b/ksql-rest-model/src/main/java/io/confluent/ksql/rest/entity/RunningQuery.java @@ -18,6 +18,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; +import io.confluent.ksql.query.QueryId; import java.util.Objects; import java.util.Set; @@ -25,13 +26,13 @@ public class RunningQuery { private final String queryString; private final Set sinks; - private final EntityQueryId id; + private final QueryId id; @JsonCreator public RunningQuery( @JsonProperty("statementText") final String queryString, @JsonProperty("sinks") final Set sinks, - @JsonProperty("id") final EntityQueryId id + @JsonProperty("id") final QueryId id ) { this.queryString = queryString; this.sinks = sinks; @@ -46,7 +47,7 @@ public Set getSinks() { return sinks; } - public EntityQueryId getId() { + public QueryId getId() { return id; } diff --git a/ksql-rest-model/src/test/java/io/confluent/ksql/rest/entity/EntityQueryIDTest.java b/ksql-rest-model/src/test/java/io/confluent/ksql/rest/entity/EntityQueryIDTest.java deleted file mode 100644 index 04963692d958..000000000000 --- a/ksql-rest-model/src/test/java/io/confluent/ksql/rest/entity/EntityQueryIDTest.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2018 Confluent Inc. - * - * Licensed under the Confluent Community License (the "License"); you may not use - * this file except in compliance with the License. You may obtain a copy of the - * License at - * - * http://www.confluent.io/confluent-community-license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package io.confluent.ksql.rest.entity; - -import static org.hamcrest.CoreMatchers.equalTo; -import static org.junit.Assert.assertThat; - -import com.fasterxml.jackson.databind.ObjectMapper; -import io.confluent.ksql.json.JsonMapper; -import java.io.IOException; -import org.junit.Test; - -public class EntityQueryIDTest { - final ObjectMapper objectMapper = JsonMapper.INSTANCE.mapper; - - @Test - public void shouldSerializeCorrectly() throws IOException { - final String id = "query-id"; - final String serialized = String.format("\"%s\"", id); - - final EntityQueryId deserialized = objectMapper.readValue(serialized, EntityQueryId.class); - - assertThat(deserialized.getId(), equalTo(id)); - assertThat(objectMapper.writeValueAsString(id), equalTo(serialized)); - } -}