Search in sources :

Example 46 with Field

use of org.apache.kafka.connect.data.Field in project ksql by confluentinc.

the class ProjectNodeTest method mockSourceNode.

private void mockSourceNode() {
    EasyMock.expect(source.getKeyField()).andReturn(new Field("field1", 0, Schema.STRING_SCHEMA));
    EasyMock.expect(source.buildStream(anyObject(StreamsBuilder.class), anyObject(KsqlConfig.class), anyObject(KafkaTopicClient.class), anyObject(FunctionRegistry.class), eq(props), anyObject(SchemaRegistryClient.class))).andReturn(stream);
}
Also used : StreamsBuilder(org.apache.kafka.streams.StreamsBuilder) Field(org.apache.kafka.connect.data.Field) FunctionRegistry(io.confluent.ksql.function.FunctionRegistry) KafkaTopicClient(io.confluent.ksql.util.KafkaTopicClient) FakeKafkaTopicClient(io.confluent.ksql.util.FakeKafkaTopicClient) KsqlConfig(io.confluent.ksql.util.KsqlConfig) MockSchemaRegistryClient(io.confluent.kafka.schemaregistry.client.MockSchemaRegistryClient) SchemaRegistryClient(io.confluent.kafka.schemaregistry.client.SchemaRegistryClient)

Example 47 with Field

use of org.apache.kafka.connect.data.Field in project ksql by confluentinc.

the class SchemaUtilTest method shouldBuildTheCorrectSchemaWithAndWithoutAlias.

@Test
public void shouldBuildTheCorrectSchemaWithAndWithoutAlias() {
    String alias = "Hello";
    Schema schemaWithAlias = SchemaUtil.buildSchemaWithAlias(schema, alias);
    assertThat("Incorrect schema field count.", schemaWithAlias.fields().size() == schema.fields().size());
    for (int i = 0; i < schemaWithAlias.fields().size(); i++) {
        Field fieldWithAlias = schemaWithAlias.fields().get(i);
        Field field = schema.fields().get(i);
        assertThat(fieldWithAlias.name(), equalTo(alias + "." + field.name()));
    }
    Schema schemaWithoutAlias = SchemaUtil.getSchemaWithNoAlias(schemaWithAlias);
    assertThat("Incorrect schema field count.", schemaWithAlias.fields().size() == schema.fields().size());
    for (int i = 0; i < schemaWithoutAlias.fields().size(); i++) {
        Field fieldWithAlias = schemaWithoutAlias.fields().get(i);
        Field field = schema.fields().get(i);
        assertThat("Incorrect field name.", fieldWithAlias.name().equals(field.name()));
    }
}
Also used : Field(org.apache.kafka.connect.data.Field) Schema(org.apache.kafka.connect.data.Schema) Test(org.junit.Test)

Example 48 with Field

use of org.apache.kafka.connect.data.Field in project ksql by confluentinc.

the class ConsoleTest method buildTestSchema.

private List<SourceDescription.FieldSchemaInfo> buildTestSchema(int size) {
    SchemaBuilder dataSourceBuilder = SchemaBuilder.struct().name("TestSchema");
    for (int i = 0; i < size; i++) {
        dataSourceBuilder.field("f_" + i, SchemaUtil.getTypeSchema("STRING"));
    }
    List<SourceDescription.FieldSchemaInfo> res = new ArrayList<>();
    List<Field> fields = dataSourceBuilder.build().fields();
    for (Field field : fields) {
        res.add(new SourceDescription.FieldSchemaInfo(field.name(), SchemaUtil.getSchemaFieldName(field)));
    }
    return res;
}
Also used : Field(org.apache.kafka.connect.data.Field) SchemaBuilder(org.apache.kafka.connect.data.SchemaBuilder) ArrayList(java.util.ArrayList) SourceDescription(io.confluent.ksql.rest.entity.SourceDescription)

Example 49 with Field

use of org.apache.kafka.connect.data.Field in project ksql by confluentinc.

the class SchemaUtil method removeImplicitRowTimeRowKeyFromSchema.

public static Schema removeImplicitRowTimeRowKeyFromSchema(Schema schema) {
    SchemaBuilder schemaBuilder = SchemaBuilder.struct();
    for (Field field : schema.fields()) {
        String fieldName = field.name();
        fieldName = fieldName.substring(fieldName.indexOf('.') + 1);
        if (!fieldName.equalsIgnoreCase(SchemaUtil.ROWTIME_NAME) && !fieldName.equalsIgnoreCase(SchemaUtil.ROWKEY_NAME)) {
            schemaBuilder.field(fieldName, field.schema());
        }
    }
    return schemaBuilder.build();
}
Also used : Field(org.apache.kafka.connect.data.Field) SchemaBuilder(org.apache.kafka.connect.data.SchemaBuilder)

Example 50 with Field

use of org.apache.kafka.connect.data.Field in project ksql by confluentinc.

the class SchemaUtil method getSchemaWithNoAlias.

/**
 * Remove the alias when reading/writing from outside
 */
public static Schema getSchemaWithNoAlias(Schema schema) {
    SchemaBuilder schemaBuilder = SchemaBuilder.struct();
    for (Field field : schema.fields()) {
        String name = getFieldNameWithNoAlias(field);
        schemaBuilder.field(name, field.schema());
    }
    return schemaBuilder.build();
}
Also used : Field(org.apache.kafka.connect.data.Field) SchemaBuilder(org.apache.kafka.connect.data.SchemaBuilder)

Aggregations

Field (org.apache.kafka.connect.data.Field)82 Struct (org.apache.kafka.connect.data.Struct)38 Schema (org.apache.kafka.connect.data.Schema)33 SchemaBuilder (org.apache.kafka.connect.data.SchemaBuilder)17 DataException (org.apache.kafka.connect.errors.DataException)14 List (java.util.List)12 ArrayList (java.util.ArrayList)11 Requirements.requireStruct (org.apache.kafka.connect.transforms.util.Requirements.requireStruct)11 HashMap (java.util.HashMap)10 Map (java.util.Map)8 Test (org.junit.Test)8 Date (java.util.Date)7 ConnectSchema (org.apache.kafka.connect.data.ConnectSchema)6 KsqlException (io.confluent.ksql.util.KsqlException)5 BigDecimal (java.math.BigDecimal)5 ArrayNode (com.fasterxml.jackson.databind.node.ArrayNode)4 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)4 SchemaKStream (io.confluent.ksql.structured.SchemaKStream)4 ByteBuffer (java.nio.ByteBuffer)4 JsonNode (com.fasterxml.jackson.databind.JsonNode)3