code: public List<ImageConfiguration> resolve(ImageConfiguration unresolvedConfig, MavenProject project, MavenSession session) {
          injectExternalConfigActivation(unresolvedConfig, project);
          Map<String,String> externalConfig = unresolvedConfig.getExternalConfig();
          if (externalConfig != null) {
              String type = externalConfig.get("type");
              if (type == null) {
                  throw new IllegalArgumentException(unresolvedConfig.getDescription() + ": No config type given");
              }
              ExternalConfigHandler handler = registry.get(type);
              if (handler == null) {
                  throw new IllegalArgumentException(unresolvedConfig.getDescription() + ": No handler for type " + type + " given");
              }
              return handler.resolve(unresolvedConfig, project, session);
          } else {
              return Collections.singletonList(unresolvedConfig);
          }
      }
docs: Resolve an image configuration. If it contains a reference to an external configuration
  the corresponding resolver is called and the resolved image configurations are returned (can
  be multiple).
  
  If no reference to an external configuration is found, the original configuration
  is returned directly.
  
  @param unresolvedConfig the configuration to resolve
  @param project project used for resolving
  @param session
  @return list of resolved image configurations
  @throws IllegalArgumentException if no type is given when an external reference configuration is provided
  or when the type is not known (i.e. no handler is registered for this type).