DBZ-1782 Misc. fixes
This commit is contained in:
parent
9bcd282d07
commit
680f1f73af
@ -15,6 +15,7 @@
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import io.debezium.DebeziumException;
|
||||
import io.debezium.common.annotation.Incubating;
|
||||
import io.debezium.config.Configuration;
|
||||
import io.debezium.config.EnumeratedValue;
|
||||
import io.debezium.config.Field;
|
||||
@ -34,6 +35,7 @@
|
||||
* @param <R> the subtype of {@link ConnectRecord} on which this transformation will operate
|
||||
* @author Jiri Pechanec
|
||||
*/
|
||||
@Incubating
|
||||
public class Filter<R extends ConnectRecord<R>> implements Transformation<R> {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(Filter.class);
|
||||
@ -154,7 +156,7 @@ public static NullHandling parse(String value, String defaultValue) {
|
||||
.withEnum(ExpressionLanguage.class)
|
||||
.withWidth(ConfigDef.Width.MEDIUM)
|
||||
.withImportance(ConfigDef.Importance.HIGH)
|
||||
.withDescription("An expression language used to evaluate the filtering condition. Only 'groovy' is supported.");
|
||||
.withDescription("An expression language used to evaluate the filtering condition. 'groovy' and 'graal.js' are supported.");
|
||||
|
||||
public static final Field EXPRESSION = Field.create("condition")
|
||||
.withDisplayName("Filtering condition")
|
||||
|
@ -5,6 +5,8 @@
|
||||
*/
|
||||
package io.debezium.transforms;
|
||||
|
||||
import static org.fest.assertions.Assertions.assertThat;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@ -13,7 +15,6 @@
|
||||
import org.apache.kafka.connect.data.SchemaBuilder;
|
||||
import org.apache.kafka.connect.data.Struct;
|
||||
import org.apache.kafka.connect.source.SourceRecord;
|
||||
import org.fest.assertions.Assertions;
|
||||
import org.junit.Test;
|
||||
|
||||
import io.debezium.DebeziumException;
|
||||
@ -89,8 +90,8 @@ public void shouldProcessCondition() {
|
||||
props.put(LANGUAGE, "groovy");
|
||||
transform.configure(props);
|
||||
final SourceRecord record = createDeleteRecord(1);
|
||||
Assertions.assertThat(transform.apply(createDeleteRecord(2))).isNull();
|
||||
Assertions.assertThat(transform.apply(record)).isSameAs(record);
|
||||
assertThat(transform.apply(createDeleteRecord(2))).isNull();
|
||||
assertThat(transform.apply(record)).isSameAs(record);
|
||||
}
|
||||
}
|
||||
|
||||
@ -102,7 +103,7 @@ public void shouldKeepNulls() {
|
||||
props.put(LANGUAGE, "groovy");
|
||||
transform.configure(props);
|
||||
final SourceRecord record = createNullRecord();
|
||||
Assertions.assertThat(transform.apply(record)).isSameAs(record);
|
||||
assertThat(transform.apply(record)).isSameAs(record);
|
||||
}
|
||||
}
|
||||
|
||||
@ -115,7 +116,7 @@ public void shouldDropNulls() {
|
||||
props.put(NULL_HANDLING, "drop");
|
||||
transform.configure(props);
|
||||
final SourceRecord record = createNullRecord();
|
||||
Assertions.assertThat(transform.apply(record)).isNull();
|
||||
assertThat(transform.apply(record)).isNull();
|
||||
}
|
||||
}
|
||||
|
||||
@ -167,8 +168,8 @@ public void shouldRunJavaScript() {
|
||||
props.put(LANGUAGE, "graal.js");
|
||||
transform.configure(props);
|
||||
final SourceRecord record = createDeleteRecord(1);
|
||||
Assertions.assertThat(transform.apply(createDeleteRecord(2))).isNull();
|
||||
Assertions.assertThat(transform.apply(record)).isSameAs(record);
|
||||
assertThat(transform.apply(createDeleteRecord(2))).isNull();
|
||||
assertThat(transform.apply(record)).isSameAs(record);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user