DBZ-1782 Misc. fixes

This commit is contained in:
Gunnar Morling 2020-04-09 17:36:25 +02:00
parent 9bcd282d07
commit 680f1f73af
2 changed files with 11 additions and 8 deletions

View File

@ -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")

View File

@ -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);
}
}
}