Skip to content

Commit 7d5e8de

Browse files
authored
Remove SingleThread annotation from Drop Events Processor (opensearch-project#6417)
Signed-off-by: Krishna Kondaka <krishkdk@amazon.com>
1 parent 80da1c2 commit 7d5e8de

2 files changed

Lines changed: 35 additions & 7 deletions

File tree

data-prepper-plugins/drop-events-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/drop/DropEventsProcessor.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import org.opensearch.dataprepper.metrics.PluginMetrics;
1313
import org.opensearch.dataprepper.model.annotations.DataPrepperPlugin;
1414
import org.opensearch.dataprepper.model.annotations.DataPrepperPluginConstructor;
15-
import org.opensearch.dataprepper.model.annotations.SingleThread;
1615
import org.opensearch.dataprepper.model.event.Event;
1716
import org.opensearch.dataprepper.model.plugin.InvalidPluginConfigurationException;
1817
import org.opensearch.dataprepper.model.processor.AbstractProcessor;
@@ -24,7 +23,6 @@
2423
import java.util.Collections;
2524
import java.util.stream.Collectors;
2625

27-
@SingleThread
2826
@DataPrepperPlugin(name = "drop_events", pluginType = Processor.class, pluginConfigurationType = DropEventProcessorConfig.class)
2927
public class DropEventsProcessor extends AbstractProcessor<Record<Event>, Record<Event>> {
3028

data-prepper-plugins/drop-events-processor/src/test/java/org/opensearch/dataprepper/plugins/processor/drop/DropEventsProcessorIT.java

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,25 @@
1919
import org.opensearch.dataprepper.test.plugins.PluginConfigurationFile;
2020
import org.opensearch.dataprepper.test.plugins.junit.BaseDataPrepperPluginStandardTestSuite;
2121

22+
import java.util.ArrayList;
2223
import java.util.Collection;
2324
import java.util.LinkedList;
2425
import java.util.List;
2526
import java.util.Map;
2627
import java.util.UUID;
2728
import java.util.stream.Collectors;
29+
import java.util.concurrent.atomic.AtomicInteger;
2830

2931
import static org.hamcrest.CoreMatchers.equalTo;
3032
import static org.hamcrest.CoreMatchers.notNullValue;
3133
import static org.hamcrest.MatcherAssert.assertThat;
3234

3335
@DataPrepperPluginTest(pluginName = "drop_events", pluginType = Processor.class)
3436
class DropEventsProcessorIT extends BaseDataPrepperPluginStandardTestSuite {
35-
@Test
36-
void drops_records_when_value_is_empty_string(
37-
@PluginConfigurationFile("drop_when_value_is_empty_string.yaml") final Processor<Record<Event>, Record<Event>> objectUnderTest,
38-
final EventFactory eventFactory) {
37+
private static final int MAX_THREADS = 5;
3938

39+
private void createEventsAndExecute(final Processor<Record<Event>, Record<Event>> objectUnderTest,
40+
final EventFactory eventFactory) {
4041
final List<Event> allEvents = new LinkedList<>();
4142
final List<Event> expectedEventsAfterProcessor = new LinkedList<>();
4243
for(int i = 0; i < 5; i++) {
@@ -69,4 +70,33 @@ void drops_records_when_value_is_empty_string(
6970

7071
assertThat(outputEvents, equalTo(expectedEventsAfterProcessor));
7172
}
72-
}
73+
74+
@Test
75+
void drops_records_when_value_is_empty_string(
76+
@PluginConfigurationFile("drop_when_value_is_empty_string.yaml") final Processor<Record<Event>, Record<Event>> objectUnderTest,
77+
final EventFactory eventFactory) {
78+
createEventsAndExecute(objectUnderTest, eventFactory);
79+
}
80+
81+
@Test
82+
void drops_records_when_value_is_empty_string_with_multiple_threads(
83+
@PluginConfigurationFile("drop_when_value_is_empty_string.yaml") final Processor<Record<Event>, Record<Event>> objectUnderTest,
84+
final EventFactory eventFactory) throws Exception {
85+
86+
AtomicInteger numSuccess = new AtomicInteger(0);
87+
List<Thread> threads = new ArrayList<>();
88+
for (int i = 0; i < MAX_THREADS; i++) {
89+
threads.add(new Thread(() -> {
90+
createEventsAndExecute(objectUnderTest, eventFactory);
91+
numSuccess.incrementAndGet();
92+
}));
93+
}
94+
for (int i = 0; i < MAX_THREADS; i++) {
95+
threads.get(i).start();
96+
}
97+
for (int i = 0; i < MAX_THREADS; i++) {
98+
threads.get(i).join();
99+
}
100+
assertThat(numSuccess.get(), equalTo(MAX_THREADS));
101+
}
102+
}

0 commit comments

Comments
 (0)