Skip to content

Commit

Permalink
Refactor filters to use lists instead of sets (#3381)
Browse files Browse the repository at this point in the history
Signed-off-by: Calum Murray <cmurray@redhat.com>
  • Loading branch information
Cali0707 authored Oct 10, 2023
1 parent 13ce94b commit 310891f
Show file tree
Hide file tree
Showing 7 changed files with 37 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
import dev.knative.eventing.kafka.broker.dispatcher.impl.filter.subscriptionsapi.PrefixFilter;
import dev.knative.eventing.kafka.broker.dispatcher.impl.filter.subscriptionsapi.SuffixFilter;
import io.cloudevents.CloudEvent;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class AllFilterBenchmark {
public static ExactFilter makeExactFilter() {
Expand All @@ -50,7 +50,7 @@ public static class AllFilterWithExactFilter extends FilterBenchmark {

@Override
protected Filter createFilter() {
return new AllFilter(Set.of(makeExactFilter()));
return new AllFilter(List.of(makeExactFilter()));
}

@Override
Expand All @@ -59,11 +59,11 @@ protected CloudEvent createEvent() {
}
}

public static class AllFilterMatchAllSubfilters extends FilterBenchmark {
public static class AllFilterMatchAllSubFilters extends FilterBenchmark {

@Override
protected Filter createFilter() {
return new AllFilter(Set.of(makeExactFilter(), makePrefixFilter(), makeSuffixFilter()));
return new AllFilter(List.of(makeExactFilter(), makePrefixFilter(), makeSuffixFilter()));
}

@Override
Expand All @@ -76,7 +76,7 @@ public static class AllFilterFirstMatchEndOfArray extends FilterBenchmark {

@Override
protected Filter createFilter() {
return new AllFilter(Set.of(makePrefixFilterNoMatch(), makeSuffixFilterNoMatch(), makeExactFilter()));
return new AllFilter(List.of(makePrefixFilterNoMatch(), makeSuffixFilterNoMatch(), makeExactFilter()));
}

@Override
Expand All @@ -89,7 +89,7 @@ public static class AllFilterFirstMatchStartOfArray extends FilterBenchmark {

@Override
protected Filter createFilter() {
return new AllFilter(Set.of(makeExactFilter(), makePrefixFilterNoMatch(), makeSuffixFilterNoMatch()));
return new AllFilter(List.of(makeExactFilter(), makePrefixFilterNoMatch(), makeSuffixFilterNoMatch()));
}

@Override
Expand All @@ -102,7 +102,7 @@ public static class AllFilterOneNonMatchingFilterInMiddle extends FilterBenchmar

@Override
protected Filter createFilter() {
return new AllFilter(Set.of(makeExactFilter(), makePrefixFilterNoMatch(), makePrefixFilter()));
return new AllFilter(List.of(makeExactFilter(), makePrefixFilterNoMatch(), makePrefixFilter()));
}

@Override
Expand All @@ -115,7 +115,7 @@ public static class AllFilterNoMatchingFilters extends FilterBenchmark {

@Override
protected Filter createFilter() {
return new AllFilter(Set.of(makePrefixFilterNoMatch(), makeSuffixFilterNoMatch()));
return new AllFilter(List.of(makePrefixFilterNoMatch(), makeSuffixFilterNoMatch()));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
import dev.knative.eventing.kafka.broker.dispatcher.Filter;
import dev.knative.eventing.kafka.broker.dispatcher.impl.filter.subscriptionsapi.*;
import io.cloudevents.CloudEvent;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class AnyFilterBenchmark {
public static CloudEvent event() {
Expand Down Expand Up @@ -56,7 +56,7 @@ public static class AnyFilterWithExactFilterBenchmark extends FilterBenchmark {

@Override
protected Filter createFilter() {
return new AnyFilter(Set.of(makeExactFilter()));
return new AnyFilter(List.of(makeExactFilter()));
}

@Override
Expand All @@ -69,7 +69,7 @@ public static class AnyFilterMatchAllSubfilters extends FilterBenchmark {

@Override
protected Filter createFilter() {
return new AnyFilter(Set.of(makeExactFilter(), makePrefixFilter(), makeSuffixFilter()));
return new AnyFilter(List.of(makeExactFilter(), makePrefixFilter(), makeSuffixFilter()));
}

@Override
Expand All @@ -82,7 +82,7 @@ public static class AnyFilterFirstMatchAtEnd extends FilterBenchmark {

@Override
protected Filter createFilter() {
return new AnyFilter(Set.of(makePrefixFilterNoMatch(), makeSufficFilterNoMatch(), makeExactFilter()));
return new AnyFilter(List.of(makePrefixFilterNoMatch(), makeSufficFilterNoMatch(), makeExactFilter()));
}

@Override
Expand All @@ -95,7 +95,7 @@ public static class AnyFilterFirstMatchAtStart extends FilterBenchmark {

@Override
protected Filter createFilter() {
return new AnyFilter(Set.of(makeExactFilter(), makePrefixFilterNoMatch(), makeSufficFilterNoMatch()));
return new AnyFilter(List.of(makeExactFilter(), makePrefixFilterNoMatch(), makeSufficFilterNoMatch()));
}

@Override
Expand All @@ -108,7 +108,7 @@ public static class AnyFilter2EventsMatch2DifferentFilters extends FilterBenchma

@Override
protected Filter createFilter() {
return new AnyFilter(Set.of(makePrefixFilter(), makePrefixFilterNoMatch()));
return new AnyFilter(List.of(makePrefixFilter(), makePrefixFilterNoMatch()));
}

@Override
Expand All @@ -120,7 +120,7 @@ protected CloudEvent createEvent() {
public static class AnyFilter2EventsMatch2DifferentFiltersOneFilterMatchesNeither extends FilterBenchmark {
@Override
protected Filter createFilter() {
return new AnyFilter(Set.of(makeSufficFilterNoMatch(), makePrefixFilter(), makePrefixFilterNoMatch()));
return new AnyFilter(List.of(makeSufficFilterNoMatch(), makePrefixFilter(), makePrefixFilterNoMatch()));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,16 @@

import dev.knative.eventing.kafka.broker.dispatcher.Filter;
import io.cloudevents.CloudEvent;
import java.util.Set;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class AllFilter implements Filter {

private final Set<Filter> filters;
private final List<Filter> filters;
private static final Logger logger = LoggerFactory.getLogger(AllFilter.class);

public AllFilter(Set<Filter> filters) {
public AllFilter(List<Filter> filters) {
this.filters = filters;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,17 @@

import dev.knative.eventing.kafka.broker.dispatcher.Filter;
import io.cloudevents.CloudEvent;
import java.util.Set;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class AnyFilter implements Filter {

private static final Logger logger = LoggerFactory.getLogger(AnyFilter.class);

private final Set<Filter> filters;
private final List<Filter> filters;

public AnyFilter(Set<Filter> filters) {
public AnyFilter(List<Filter> filters) {
this.filters = filters;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ private Filter getFilter() {

private static Filter getFilter(List<DataPlaneContract.DialectedFilter> filters) {
return new AllFilter(
filters.stream().map(ConsumerVerticleBuilder::getFilter).collect(Collectors.toSet()));
filters.stream().map(ConsumerVerticleBuilder::getFilter).collect(Collectors.toList()));
}

private static Filter getFilter(DataPlaneContract.DialectedFilter filter) {
Expand All @@ -203,10 +203,10 @@ private static Filter getFilter(DataPlaneContract.DialectedFilter filter) {
case NOT -> new NotFilter(getFilter(filter.getNot().getFilter()));
case ANY -> new AnyFilter(filter.getAny().getFiltersList().stream()
.map(ConsumerVerticleBuilder::getFilter)
.collect(Collectors.toSet()));
.collect(Collectors.toList()));
case ALL -> new AllFilter(filter.getAll().getFiltersList().stream()
.map(ConsumerVerticleBuilder::getFilter)
.collect(Collectors.toSet()));
.collect(Collectors.toList()));
case CESQL -> new CeSqlFilter(filter.getCesql().getExpression());
default -> Filter.noop();
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Stream;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
Expand All @@ -51,25 +51,25 @@ public void match(CloudEvent event, Filter filter, boolean shouldMatch) {

static Stream<Arguments> testCases() {
return Stream.of(
Arguments.of(event, new AllFilter(Set.of(new ExactFilter(Map.of("id", "123-42")))), true),
Arguments.of(event, new AllFilter(List.of(new ExactFilter(Map.of("id", "123-42")))), true),
Arguments.of(
event,
new AllFilter(Set.of(
new AllFilter(List.of(
new ExactFilter(Map.of("id", "123-42")),
new ExactFilter(Map.of("source", "/api/some-source")))),
true),
Arguments.of(
event,
new AllFilter(Set.of(
new AllFilter(List.of(
new ExactFilter(Map.of("id", "123")),
new ExactFilter(Map.of("source", "/api/some-source")))),
false),
Arguments.of(
event,
new AllFilter(Set.of(
new AllFilter(List.of(
new ExactFilter(Map.of("id", "123-42")),
new ExactFilter(Map.of("source", "/api/something-else")))),
false),
Arguments.of(event, new AllFilter(Collections.emptySet()), true));
Arguments.of(event, new AllFilter(Collections.emptyList()), true));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Stream;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
Expand All @@ -51,31 +51,31 @@ public void match(CloudEvent event, Filter filter, boolean shouldMatch) {

static Stream<Arguments> testCases() {
return Stream.of(
Arguments.of(event, new AnyFilter(Set.of(new ExactFilter(Map.of("id", "123-42")))), true),
Arguments.of(event, new AnyFilter(List.of(new ExactFilter(Map.of("id", "123-42")))), true),
Arguments.of(
event,
new AnyFilter(Set.of(
new AnyFilter(List.of(
new ExactFilter(Map.of("id", "123-42")),
new ExactFilter(Map.of("source", "/api/some-source")))),
true),
Arguments.of(
event,
new AnyFilter(Set.of(
new AnyFilter(List.of(
new ExactFilter(Map.of("id", "123")),
new ExactFilter(Map.of("source", "/api/some-source")))),
true),
Arguments.of(
event,
new AnyFilter(Set.of(
new AnyFilter(List.of(
new ExactFilter(Map.of("id", "123-42")),
new ExactFilter(Map.of("source", "/api/something-else")))),
true),
Arguments.of(
event,
new AnyFilter(Set.of(
new AnyFilter(List.of(
new ExactFilter(Map.of("id", "123")),
new ExactFilter(Map.of("source", "/api/something-else")))),
false),
Arguments.of(event, new AnyFilter(Collections.emptySet()), false));
Arguments.of(event, new AnyFilter(Collections.emptyList()), false));
}
}

0 comments on commit 310891f

Please sign in to comment.