Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Page properties

Document the state by adding a label to the FLIP page with one of "discussion", "accepted", "released", "rejected".

JIRA
Discussion thread

preview discussion : https://lists.apache.org/thread/zzsf7glfcdjcjm1hfo1xdwc6jp37nb3m

Official discussion: https://lists.apache.org/thread/zfw1b1g3679yn0ppjbsokfrsx9k7ybg0

Vote threadhttps://lists.apache.org/thread/joyr7bxpo0lcj1zfzdj5nv0lrhb303rx
JIRA

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b

keyFLINK-34079

Release1.19, 1.20, 2.0


Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

...

  • Deprecate getXXX(String key, XXX defaultValue) and setXXX(String key, XXX value), discussed in the preview thread, except the following:
    • getString(String key, String defaultValue)
    • setString(String key, String value)
    • getBytes(String key, byte[] defaultValue) will be marked as @Internal
    • setBytes(String key, byte[] bytes)
    • getClass(String key, Class<? extends T> defaultValue, ClassLoader classLoader)

    • setClass(String key, Class<?> klazz)
    • will be marked as @Internal
  • Update the comment in getString(String key, String defaultValue) and setString(String key, String value) to encourage users to use ConfigOption.

...

Code Block
languagejava
titleConfiguration.java
@Public
public class Configuration extends ExecutionConfig.GlobalJobParameters
        implements IOReadableWritable,
                java.io.Serializable,
                Cloneable,
                ReadableConfig,
                WritableConfig {
...      

	/**
     * Returns the value associated with the given key as a string. We encourage users and
     * developers to always use ConfigOption for getting the configurations if possible, for its
     * rich description, type, default-value and other supports. The string-key-based getter should
     * only be used when ConfigOption is not applicable, e.g., the key is programmatically generated
     * in runtime.
     *
     * @param key the key pointing to the associated value
     * @param defaultValue the default value which is returned in case there is no value associated
     *     with the given key
     * @return the (default) value associated with the given key
     */     
	public String getString(String key, String defaultValue) {
		...
    }


    /**
     * Adds the given key/value pair to the configuration object. We encourage users and developers
     * to always use ConfigOption for setting the configurations if possible, for its rich
     * description, type, default-value and other supports. The string-key-based setter should only
     * be used when ConfigOption is not applicable, e.g., the key is programmatically generated in
     * runtime.
     *
     * @param key the key of the key/value pair to be added
     * @param value the value of the key/value pair to be added
     */
    public void setString(String key, String value) {
        ...
    }
	
	...			
}

2.2.2 Introduce public <T> T get(ConfigOption<T> configOption,

...

T overrideDefault)


Code Block

    /**
     * Returns the value associated with the given config option as a T. If no value is mapped
     * under any key of the option, it returns the specified default instead of the option's default
     * value.
     *
     * @param configOption The configuration option
     * @param overrideDefault The value to return if no value was mapper for any key of the option
     * @return the (default)configured value associated with the given config option
, or the overrideDefault      
	 */
    @Nonnull
    @PublicEvolving
    public <T> T get(ConfigOption<T> configOption, @Nonnull T overrideDefault) {
        return getOptional(configOption).orElse(overrideDefault);
    }

...