@Override
        protected List<ValueProvider> withPrefix(String prefix, ConfigKey key, Properties properties) {
            Map<String, String> props = extractFromPropertiesAsMap(key.asPropertyKey(prefix), properties);

            if (props == null) {
                return Collections.emptyList();
            }

            Properties nestedProperties = new Properties();
            nestedProperties.putAll(props);

            Map<Integer, ValueProvider> res = new TreeMap<>();
            for(Map.Entry<String, String> entry : props.entrySet()) {
                String pfx = entry.getKey().substring(0, entry.getKey().indexOf('.'));
                try {
                    int n = Integer.parseInt(pfx);
                    res.computeIfAbsent(n, k -> new ValueProvider(pfx + '.' + prefix, nestedProperties, propertyMode));
                } catch (NumberFormatException ex) {
                    // Skip this entry
                }
            }

            return new ArrayList<>(res.values());
        }
Data type-specific extractor to read value from properties.

@param prefix
@param key
@param properties
@return
src/main/java/io/fabric8/maven/docker/config/handler/property/ValueProvider.java