@SuppressWarnings("unchecked") public static CubeDockerConfiguration fromMap(Map<String, String> map) { CubeDockerConfiguration cubeConfiguration = new CubeDockerConfiguration(); if (map.containsKey(DOCKER_SERVER_IP)) { cubeConfiguration.dockerServerIp = map.get(DOCKER_SERVER_IP); } if (map.containsKey(DOCKER_VERSION)) { cubeConfiguration.dockerServerVersion = map.get(DOCKER_VERSION); } if (map.containsKey(DOCKER_URI)) { cubeConfiguration.dockerServerUri = map.get(DOCKER_URI); } if (map.containsKey(DIND_RESOLUTION)) { cubeConfiguration.dockerInsideDockerResolution = Boolean.parseBoolean(map.get(DIND_RESOLUTION)); } if (map.containsKey(BOOT2DOCKER_PATH)) { cubeConfiguration.boot2DockerPath = map.get(BOOT2DOCKER_PATH); } if (map.containsKey(DOCKER_MACHINE_PATH)) { cubeConfiguration.dockerMachinePath = map.get(DOCKER_MACHINE_PATH); } if (map.containsKey(DOCKER_MACHINE_NAME)) { cubeConfiguration.machineName = map.get(DOCKER_MACHINE_NAME); } if (map.containsKey(USERNAME)) { cubeConfiguration.username = map.get(USERNAME); } if (map.containsKey(PASSWORD)) { cubeConfiguration.password = map.get(PASSWORD); } if (map.containsKey(EMAIL)) { cubeConfiguration.email = map.get(EMAIL); } if (map.containsKey(CERT_PATH)) { cubeConfiguration.certPath = map.get(CERT_PATH); } if (map.containsKey(DOCKER_REGISTRY)) { cubeConfiguration.dockerRegistry = map.get(DOCKER_REGISTRY); } if (map.containsKey(DEFINITION_FORMAT)) { String definitionContent = map.get(DEFINITION_FORMAT); cubeConfiguration.definitionFormat = DefinitionFormat.valueOf(DefinitionFormat.class, definitionContent); } if (map.containsKey(DOCKER_CONTAINERS)) { String content = map.get(DOCKER_CONTAINERS); cubeConfiguration.dockerContainersContent = DockerContainerDefinitionParser.convert(content, cubeConfiguration.definitionFormat); } if (map.containsKey(DOCKER_CONTAINERS_FILE)) { final String location = map.get(DOCKER_CONTAINERS_FILE); final List<URI> resolveUri = new ArrayList<>(); try { final URI uri = URI.create(location); resolveUri.add(uri); if (System.getProperty(CUBE_ENVIRONMENT) != null) { final String resolveFilename = resolveFilename(uri); final String environmentUri = uri.toString() .replace( resolveFilename, resolveFilename + "." + System.getProperty(CUBE_ENVIRONMENT)); resolveUri.add(URI.create(environmentUri)); } cubeConfiguration.dockerContainersContent = DockerContainerDefinitionParser.convert( cubeConfiguration.definitionFormat, resolveUri.toArray(new URI[resolveUri.size()])); } catch (IOException e) { throw new IllegalArgumentException(e); } } if (map.containsKey(DOCKER_CONTAINERS_FILES)) { String locations = map.get(DOCKER_CONTAINERS_FILES); List<URI> realLocations = getUris(locations); try { cubeConfiguration.dockerContainersContent = DockerContainerDefinitionParser.convert( cubeConfiguration.definitionFormat, realLocations.toArray(new URI[realLocations.size()])); } catch (IOException e) { throw new IllegalArgumentException(e); } } if (!map.containsKey(DOCKER_CONTAINERS) && !map.containsKey(DOCKER_CONTAINERS_FILE) && !map.containsKey(DOCKER_CONTAINERS_FILES)) { try { cubeConfiguration.dockerContainersContent = DockerContainerDefinitionParser.convertDefault(cubeConfiguration.definitionFormat); } catch (IOException e) { throw new IllegalArgumentException(e); } } if (map.containsKey(AUTO_START_CONTAINERS)) { String expression = map.get(AUTO_START_CONTAINERS); Map<String, Object> containerDefinitions = cubeConfiguration.getDockerContainersContent(); AutoStartParser autoStartParser = AutoStartParserFactory.create(expression, containerDefinitions); cubeConfiguration.autoStartContainers = autoStartParser; } return cubeConfiguration; }