public <T> T getObject(ConfigKey key, T fromConfig, final com.google.common.base.Function<String, T> converter) {
        ValueExtractor<T> arbitraryExtractor = new ValueExtractor<T>() {
            @Override
            protected T withPrefix(String prefix, ConfigKey key, Properties properties) {
                return converter.apply(properties.getProperty(key.asPropertyKey(prefix)));
            }
        };

        return arbitraryExtractor.getFromPreferredSource(prefix, key, fromConfig);
    }
Initiates ValueProvider which is to work with data from the given properties.

The PropertyMode controls which source(s) to consult, and in which order.

@param prefix Only look at properties with this prefix.
@param properties
@param propertyMode Which source to prioritize
src/main/java/io/fabric8/maven/docker/config/handler/property/ValueProvider.java