Skip to content

Commit 8712db9

Browse files
Merge branch 'opensearch-project:main' into fix-issue-5106
2 parents f4545d9 + 1098421 commit 8712db9

299 files changed

Lines changed: 8014 additions & 4339 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/data-prepper-trace-analytics-raw-span-e2e-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
strategy:
1515
matrix:
1616
java: [11, 17, 21, docker]
17-
otelVersion: ['0.9.0-alpha', '0.16.0-alpha']
17+
otelVersion: ['0.16.0-alpha', '1.3.2-alpha']
1818
fail-fast: false
1919

2020
runs-on: ubuntu-latest

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ subprojects {
269269

270270
configure(subprojects.findAll {it.name != 'data-prepper-api'}) {
271271
dependencies {
272-
implementation platform('software.amazon.awssdk:bom:2.25.11')
272+
implementation platform('software.amazon.awssdk:bom:2.30.23')
273273
implementation 'jakarta.validation:jakarta.validation-api:3.0.2'
274274
}
275275
}

data-prepper-api/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ dependencies {
1414
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jdk8'
1515
implementation libs.parquet.common
1616
implementation libs.commons.lang3
17+
implementation 'jakarta.validation:jakarta.validation-api:3.0.2'
1718
testImplementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml'
1819
testImplementation project(':data-prepper-test-common')
1920
testImplementation 'org.skyscreamer:jsonassert:1.5.3'

data-prepper-api/src/main/java/org/opensearch/dataprepper/model/acknowledgements/AcknowledgementSet.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.opensearch.dataprepper.model.event.EventHandle;
1010

1111
import java.time.Duration;
12+
import java.time.Instant;
1213
import java.util.function.Consumer;
1314

1415
/**
@@ -83,4 +84,10 @@ default void add(Event event) {
8384
* @since 2.6
8485
*/
8586
public void addProgressCheck(final Consumer<ProgressCheck> progressCheckCallback, final Duration progressCheckInterval);
87+
88+
void increaseExpiry(final Duration expiryIncreaseTime);
89+
90+
Instant getExpirationTime();
91+
92+
void cancel();
8693
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
* Copyright OpenSearch Contributors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package org.opensearch.dataprepper.model.annotations;
7+
8+
import jakarta.validation.Constraint;
9+
import jakarta.validation.Payload;
10+
import org.opensearch.dataprepper.model.validation.RegexValueValidator;
11+
12+
import java.lang.annotation.ElementType;
13+
import java.lang.annotation.Retention;
14+
import java.lang.annotation.RetentionPolicy;
15+
import java.lang.annotation.Target;
16+
17+
@Constraint(validatedBy = RegexValueValidator.class)
18+
@Target({ElementType.FIELD, ElementType.PARAMETER})
19+
@Retention(RetentionPolicy.RUNTIME)
20+
public @interface ValidRegex {
21+
String message() default "Invalid regular expression pattern";
22+
23+
Class<?>[] groups() default {};
24+
25+
Class<? extends Payload>[] payload() default {};
26+
}

data-prepper-api/src/main/java/org/opensearch/dataprepper/model/plugin/InvalidPluginConfigurationException.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,8 @@ public class InvalidPluginConfigurationException extends RuntimeException {
1515
public InvalidPluginConfigurationException(final String message) {
1616
super(message);
1717
}
18+
19+
public InvalidPluginConfigurationException(final String message, final Throwable cause) {
20+
super(message, cause);
21+
}
1822
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*
2+
* Copyright OpenSearch Contributors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package org.opensearch.dataprepper.model.validation;
7+
8+
import jakarta.validation.ConstraintValidator;
9+
import jakarta.validation.ConstraintValidatorContext;
10+
import org.opensearch.dataprepper.model.annotations.ValidRegex;
11+
12+
import java.util.regex.Pattern;
13+
import java.util.regex.PatternSyntaxException;
14+
15+
public class RegexValueValidator implements ConstraintValidator<ValidRegex, String> {
16+
@Override
17+
public boolean isValid(final String pattern, final ConstraintValidatorContext constraintValidatorContext) {
18+
if (pattern != null && !pattern.isEmpty()) {
19+
try {
20+
Pattern.compile(pattern);
21+
} catch (PatternSyntaxException e) {
22+
return false;
23+
}
24+
}
25+
26+
return true;
27+
}
28+
}

data-prepper-api/src/test/java/org/opensearch/dataprepper/model/plugin/InvalidPluginConfigurationExceptionTest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,20 @@
77

88
import org.junit.jupiter.api.BeforeEach;
99
import org.junit.jupiter.api.Test;
10+
import org.junit.jupiter.api.extension.ExtendWith;
11+
import org.mockito.Mock;
12+
import org.mockito.junit.jupiter.MockitoExtension;
1013

1114
import java.util.UUID;
1215

1316
import static org.hamcrest.CoreMatchers.equalTo;
1417
import static org.hamcrest.MatcherAssert.assertThat;
1518

19+
@ExtendWith(MockitoExtension.class)
1620
class InvalidPluginConfigurationExceptionTest {
21+
@Mock
22+
private Throwable cause;
23+
1724
private String message;
1825

1926
@BeforeEach
@@ -30,4 +37,11 @@ void getMessage_returns_message() {
3037
assertThat(createObjectUnderTest().getMessage(),
3138
equalTo(message));
3239
}
40+
41+
@Test
42+
void getCause_returns_cause() {
43+
final InvalidPluginConfigurationException objectUnderTest = new InvalidPluginConfigurationException(
44+
message, cause);
45+
assertThat(objectUnderTest.getCause(), equalTo(cause));
46+
}
3347
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
* Copyright OpenSearch Contributors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package org.opensearch.dataprepper.model.validation;
7+
8+
import jakarta.validation.ConstraintValidatorContext;
9+
import org.junit.jupiter.api.extension.ExtendWith;
10+
import org.junit.jupiter.params.ParameterizedTest;
11+
import org.junit.jupiter.params.provider.Arguments;
12+
import org.junit.jupiter.params.provider.MethodSource;
13+
import org.mockito.Mock;
14+
import org.mockito.junit.jupiter.MockitoExtension;
15+
16+
import java.util.stream.Stream;
17+
18+
import static org.hamcrest.CoreMatchers.is;
19+
import static org.hamcrest.MatcherAssert.assertThat;
20+
import static org.junit.jupiter.params.provider.Arguments.arguments;
21+
22+
@ExtendWith(MockitoExtension.class)
23+
class RegexValueValidatorTest {
24+
@Mock
25+
private ConstraintValidatorContext constraintValidatorContext;
26+
27+
@ParameterizedTest
28+
@MethodSource("provideRegexAndExpectedResult")
29+
void testValidateRegex(final String delimiterRegex, final boolean isValid) {
30+
final RegexValueValidator objectUnderTest = new RegexValueValidator();
31+
assertThat(objectUnderTest.isValid(delimiterRegex, constraintValidatorContext), is(isValid));
32+
}
33+
34+
private static Stream<Arguments> provideRegexAndExpectedResult() {
35+
return Stream.of(
36+
arguments(null, true),
37+
arguments("", true),
38+
arguments("abc", true),
39+
arguments("(abc", false)
40+
);
41+
}
42+
}

data-prepper-core/src/integrationTest/java/org/opensearch/dataprepper/plugin/DefaultPluginFactoryIT.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.opensearch.dataprepper.model.plugin.InvalidPluginConfigurationException;
2222
import org.opensearch.dataprepper.model.plugin.NoPluginFoundException;
2323
import org.opensearch.dataprepper.model.source.Source;
24+
import org.opensearch.dataprepper.pipeline.parser.DataPrepperDeserializationProblemHandler;
2425
import org.opensearch.dataprepper.plugins.TestObjectPlugin;
2526
import org.opensearch.dataprepper.plugins.configtest.TestComponentWithConfigInject;
2627
import org.opensearch.dataprepper.plugins.configtest.TestDISourceWithConfig;
@@ -82,6 +83,7 @@ private DefaultPluginFactory createObjectUnderTest() {
8283
coreContext.register(PluginBeanFactoryProvider.class);
8384
coreContext.registerBean(PluginErrorCollector.class, PluginErrorCollector::new);
8485
coreContext.registerBean(PluginErrorsHandler.class, LoggingPluginErrorsHandler::new);
86+
coreContext.registerBean(DataPrepperDeserializationProblemHandler.class, DataPrepperDeserializationProblemHandler::new);
8587
coreContext.registerBean(ExtensionsConfiguration.class, () -> extensionsConfiguration);
8688
coreContext.registerBean(PipelinesDataFlowModel.class, () -> pipelinesDataFlowModel);
8789
coreContext.registerBean(ExperimentalConfigurationContainer.class, () -> experimentalConfigurationContainer);

0 commit comments

Comments
 (0)