Skip to content

Commit 1ad0fa9

Browse files
author
Grzegorz Kołakowski
committed
Support backward compatibility
1 parent 6a2a994 commit 1ad0fa9

File tree

5 files changed

+32
-18
lines changed

5 files changed

+32
-18
lines changed

src/main/java/com/getindata/connectors/http/internal/sink/httpclient/JavaNetSinkHttpClient.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,11 @@ public JavaNetSinkHttpClient(
6161
ComposeHttpStatusCodeCheckerConfig checkerConfig =
6262
ComposeHttpStatusCodeCheckerConfig.builder()
6363
.properties(properties)
64-
.errorWhiteListPrefix(HTTP_ERROR_SINK_CODE_WHITE_LIST)
65-
.errorCodePrefix(HTTP_ERROR_SINK_CODES_LIST)
66-
.retryableWhiteListPrefix("") // TODO: sink retries not implemented yet
64+
.deprecatedErrorWhiteListPrefix(HTTP_ERROR_SINK_CODE_WHITE_LIST)
65+
.deprecatedCodePrefix(HTTP_ERROR_SINK_CODES_LIST)
66+
.errorWhiteListPrefix("") // TODO: sink not refactored yet
67+
.errorCodePrefix("")
68+
.retryableWhiteListPrefix("")
6769
.retryableCodePrefix("")
6870
.build();
6971

src/main/java/com/getindata/connectors/http/internal/status/ComposeHttpStatusCodeChecker.java

+18-6
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import lombok.Data;
1111
import lombok.RequiredArgsConstructor;
1212
import org.apache.flink.util.Preconditions;
13-
import org.apache.flink.util.StringUtils;
13+
import static org.apache.flink.util.StringUtils.isNullOrWhitespaceOnly;
1414

1515
import com.getindata.connectors.http.internal.config.HttpConnectorConfigConstants;
1616

@@ -35,8 +35,7 @@ public class ComposeHttpStatusCodeChecker implements HttpStatusCodeChecker {
3535

3636
public ComposeHttpStatusCodeChecker(ComposeHttpStatusCodeCheckerConfig config) {
3737
// Handle deprecated configuration for backward compatibility.
38-
if (!StringUtils.isNullOrWhitespaceOnly(config.getDeprecatedCodePrefix()) ||
39-
!StringUtils.isNullOrWhitespaceOnly(config.getDeprecatedErrorWhiteListPrefix())) {
38+
if (areDeprecatedPropertiesUsed(config)) {
4039
notRetryableErrorStatusCodes = buildPredicate(config, config.getDeprecatedCodePrefix(),
4140
config.getDeprecatedErrorWhiteListPrefix(), DEFAULT_DEPRECATED_ERROR_CODES);
4241
retryableErrorStatusCodes = integer -> false;
@@ -48,15 +47,28 @@ public ComposeHttpStatusCodeChecker(ComposeHttpStatusCodeCheckerConfig config) {
4847
}
4948
}
5049

50+
private boolean areDeprecatedPropertiesUsed(ComposeHttpStatusCodeCheckerConfig config) {
51+
boolean whiteListDefined =
52+
!isNullOrWhitespaceOnly(config.getDeprecatedErrorWhiteListPrefix());
53+
boolean codeListDefined = !isNullOrWhitespaceOnly(config.getDeprecatedCodePrefix());
54+
55+
return (whiteListDefined && !isNullOrWhitespaceOnly(
56+
config.getProperties().getProperty(config.getDeprecatedErrorWhiteListPrefix())))
57+
|| (codeListDefined && !isNullOrWhitespaceOnly(
58+
config.getProperties().getProperty(config.getDeprecatedCodePrefix())));
59+
}
60+
5161
private Predicate<Integer> buildPredicate(
5262
ComposeHttpStatusCodeCheckerConfig config,
5363
String errorCodePrefix,
5464
String whiteListPrefix,
5565
Predicate<Integer> defaultErrorCodes) {
5666
Properties properties = config.getProperties();
5767

58-
String errorCodes = properties.getProperty(errorCodePrefix, "");
59-
String whitelistCodes = properties.getProperty(whiteListPrefix, "");
68+
String errorCodes =
69+
errorCodePrefix == null ? "" : properties.getProperty(errorCodePrefix, "");
70+
String whitelistCodes =
71+
whiteListPrefix == null ? "" : properties.getProperty(whiteListPrefix, "");
6072

6173
Predicate<Integer> errorPredicate =
6274
prepareErrorCodes(errorCodes).orElse(defaultErrorCodes);
@@ -74,7 +86,7 @@ private Predicate<Integer> buildPredicate(
7486
*/
7587
private Optional<Predicate<Integer>> prepareErrorCodes(String statusCodesStr) {
7688
return Arrays.stream(statusCodesStr.split(HttpConnectorConfigConstants.PROP_DELIM))
77-
.filter(code -> !StringUtils.isNullOrWhitespaceOnly(code))
89+
.filter(code -> !isNullOrWhitespaceOnly(code))
7890
.map(code -> code.toUpperCase().trim())
7991
.map(codeStr -> {
8092
Preconditions.checkArgument(

src/main/java/com/getindata/connectors/http/internal/table/lookup/JavaNetHttpPollingClient.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@
77
import java.time.Duration;
88
import java.util.Collections;
99
import java.util.Optional;
10-
import static com.getindata.connectors.http.internal.config.HttpConnectorConfigConstants.HTTP_ERROR_NON_RETRYABLE_SOURCE_LOOKUP_CODES_LIST;
11-
import static com.getindata.connectors.http.internal.config.HttpConnectorConfigConstants.HTTP_ERROR_NON_RETRYABLE_SOURCE_LOOKUP_CODE_WHITE_LIST;
12-
import static com.getindata.connectors.http.internal.config.HttpConnectorConfigConstants.HTTP_ERROR_SOURCE_LOOKUP_CODES_LIST;
13-
import static com.getindata.connectors.http.internal.config.HttpConnectorConfigConstants.HTTP_ERROR_SOURCE_LOOKUP_CODE_WHITE_LIST;
1410
import static java.lang.String.format;
1511

1612
import lombok.AllArgsConstructor;
@@ -32,8 +28,12 @@
3228
import com.getindata.connectors.http.internal.status.ComposeHttpStatusCodeChecker.ComposeHttpStatusCodeCheckerConfig;
3329
import com.getindata.connectors.http.internal.status.HttpResponseStatus;
3430
import com.getindata.connectors.http.internal.status.HttpStatusCodeChecker;
31+
import static com.getindata.connectors.http.internal.config.HttpConnectorConfigConstants.HTTP_ERROR_NON_RETRYABLE_SOURCE_LOOKUP_CODES_LIST;
32+
import static com.getindata.connectors.http.internal.config.HttpConnectorConfigConstants.HTTP_ERROR_NON_RETRYABLE_SOURCE_LOOKUP_CODE_WHITE_LIST;
3533
import static com.getindata.connectors.http.internal.config.HttpConnectorConfigConstants.HTTP_ERROR_RETRYABLE_SOURCE_LOOKUP_CODES_LIST;
3634
import static com.getindata.connectors.http.internal.config.HttpConnectorConfigConstants.HTTP_ERROR_RETRYABLE_SOURCE_LOOKUP_CODE_WHITE_LIST;
35+
import static com.getindata.connectors.http.internal.config.HttpConnectorConfigConstants.HTTP_ERROR_SOURCE_LOOKUP_CODES_LIST;
36+
import static com.getindata.connectors.http.internal.config.HttpConnectorConfigConstants.HTTP_ERROR_SOURCE_LOOKUP_CODE_WHITE_LIST;
3737
import static com.getindata.connectors.http.internal.table.lookup.HttpLookupConnectorOptions.LOOKUP_RESTART_STRATEGY_EXPONENTIAL_DELAY_ATTEMPTS;
3838
import static com.getindata.connectors.http.internal.table.lookup.HttpLookupConnectorOptions.LOOKUP_RESTART_STRATEGY_EXPONENTIAL_DELAY_INITIAL_DELAY;
3939
import static com.getindata.connectors.http.internal.table.lookup.HttpLookupConnectorOptions.LOOKUP_RESTART_STRATEGY_EXPONENTIAL_DELAY_MAX_DELAY;

src/test/java/com/getindata/connectors/http/internal/sink/HttpSinkConnectionTest.java

-1
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,6 @@ public void testFailedConnection404OnWhiteList() throws Exception {
274274
.setSinkHttpClientBuilder(JavaNetSinkHttpClient::new)
275275
.setProperty("gid.connector.http.sink.error.code.exclude", "404, 405")
276276
.setProperty("gid.connector.http.sink.error.code", "4XX")
277-
.setProperty("gid.connector.http.sink.error-retryable.code.exclude", "404, 405")
278277
.build();
279278
source.sinkTo(httpSink);
280279
env.execute("Http Sink test failed connection");

src/test/java/com/getindata/connectors/http/internal/status/ComposeHttpStatusCodeCheckerTest.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@
1717

1818
class ComposeHttpStatusCodeCheckerTest {
1919

20-
private static final String NOT_RETRYABLE_CODE_PROPERTY = "error.code";
21-
private static final String NOT_RETRYABLE_WHITELIST_PROPERTY = "error.code.exclude";
22-
private static final String RETRYABLE_CODE_PROPERTY = "retryable.code";
23-
private static final String RETRYABLE_WHITELIST_PROPERTY = "retryable.code.exclude";
20+
private static final String NOT_RETRYABLE_CODE_PROPERTY = "error.non-retryable.code";
21+
private static final String NOT_RETRYABLE_WHITELIST_PROPERTY =
22+
"error.non-retryable.code.exclude";
23+
private static final String RETRYABLE_CODE_PROPERTY = "error.retryable.code";
24+
private static final String RETRYABLE_WHITELIST_PROPERTY = "error.retryable.code.exclude";
2425

2526
@Test
2627
void shouldReturnAppropriateStatusByDefault() {

0 commit comments

Comments
 (0)