You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by tr...@apache.org on 2019/09/18 12:35:08 UTC

[flink] branch release-1.8 updated: [FLINK-13965] Keep hasDeprecatedKeys and deprecatedKeys methods in ConfigOption and mark it with @Deprecated annotation

This is an automated email from the ASF dual-hosted git repository.

trohrmann pushed a commit to branch release-1.8
in repository https://gitbox.apache.org/repos/asf/flink.git


The following commit(s) were added to refs/heads/release-1.8 by this push:
     new 517bd29  [FLINK-13965] Keep hasDeprecatedKeys and deprecatedKeys methods in ConfigOption and mark it with @Deprecated annotation
517bd29 is described below

commit 517bd293600d787b47175ce4e46be8746f15af97
Author: yanghua <ya...@gmail.com>
AuthorDate: Mon Sep 16 20:06:55 2019 +0800

    [FLINK-13965] Keep hasDeprecatedKeys and deprecatedKeys methods in ConfigOption and mark it with @Deprecated annotation
    
    This closes #9691.
---
 .../apache/flink/configuration/ConfigOption.java   | 26 ++++++++++++++++++
 .../flink/configuration/ConfigOptionTest.java      | 31 ++++++++++++++++++++++
 2 files changed, 57 insertions(+)

diff --git a/flink-core/src/main/java/org/apache/flink/configuration/ConfigOption.java b/flink-core/src/main/java/org/apache/flink/configuration/ConfigOption.java
index 1168255..9ad49c0 100644
--- a/flink-core/src/main/java/org/apache/flink/configuration/ConfigOption.java
+++ b/flink-core/src/main/java/org/apache/flink/configuration/ConfigOption.java
@@ -23,6 +23,7 @@ import org.apache.flink.configuration.description.Description;
 
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import static org.apache.flink.util.Preconditions.checkNotNull;
@@ -196,6 +197,31 @@ public class ConfigOption<T> {
 	}
 
 	/**
+	 * Checks whether this option has deprecated keys.
+	 * @return True if the option has deprecated keys, false if not.
+	 * @deprecated Replaced by {@link #hasFallbackKeys()}
+	 */
+	@Deprecated
+	public boolean hasDeprecatedKeys() {
+		return fallbackKeys == EMPTY ? false :
+			Arrays.stream(fallbackKeys).anyMatch(FallbackKey::isDeprecated);
+	}
+
+	/**
+	 * Gets the deprecated keys, in the order to be checked.
+	 * @return The option's deprecated keys.
+	 * @deprecated Replaced by {@link #fallbackKeys()}
+	 */
+	@Deprecated
+	public Iterable<String> deprecatedKeys() {
+		return fallbackKeys == EMPTY ? Collections.<String>emptyList() :
+			Arrays.stream(fallbackKeys)
+				.filter(FallbackKey::isDeprecated)
+				.map(FallbackKey::getKey)
+				.collect(Collectors.toList());
+	}
+
+	/**
 	 * Checks whether this option has fallback keys.
 	 * @return True if the option has fallback keys, false if not.
 	 */
diff --git a/flink-core/src/test/java/org/apache/flink/configuration/ConfigOptionTest.java b/flink-core/src/test/java/org/apache/flink/configuration/ConfigOptionTest.java
index 26c94e1..4515d1d 100644
--- a/flink-core/src/test/java/org/apache/flink/configuration/ConfigOptionTest.java
+++ b/flink-core/src/test/java/org/apache/flink/configuration/ConfigOptionTest.java
@@ -20,10 +20,15 @@ package org.apache.flink.configuration;
 
 import org.apache.flink.util.TestLogger;
 
+import org.apache.flink.shaded.guava18.com.google.common.collect.Sets;
+
 import org.junit.Test;
 
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 import static org.hamcrest.Matchers.containsInAnyOrder;
 import static org.junit.Assert.assertEquals;
@@ -86,4 +91,30 @@ public class ConfigOptionTest extends TestLogger {
 		assertThat(fallbackKeys, containsInAnyOrder("fallback1", "fallback2"));
 		assertThat(deprecatedKeys, containsInAnyOrder("deprecated1", "deprecated2"));
 	}
+
+	@Test
+	public void testDeprecationForDeprecatedKeys() {
+		String[] deprecatedKeys = new String[] { "deprecated1", "deprecated2" };
+		final Set<String> expectedDeprecatedKeys = new HashSet<>(Arrays.asList(deprecatedKeys));
+
+		final ConfigOption<Integer> optionWithDeprecatedKeys = ConfigOptions
+			.key("key")
+			.defaultValue(0)
+			.withDeprecatedKeys(deprecatedKeys)
+			.withFallbackKeys("fallback1");
+
+		assertTrue(optionWithDeprecatedKeys.hasDeprecatedKeys());
+		assertEquals(expectedDeprecatedKeys, Sets.newHashSet(optionWithDeprecatedKeys.deprecatedKeys()));
+	}
+
+	@Test
+	public void testNoDeprecationForFallbackKeysWithoutDeprecated() {
+		final ConfigOption<Integer> optionWithFallbackKeys = ConfigOptions
+			.key("key")
+			.defaultValue(0)
+			.withFallbackKeys("fallback1");
+
+		assertFalse(optionWithFallbackKeys.hasDeprecatedKeys());
+	}
+
 }