public static ConfigurationFactory createConfigurationFactory(Repository repository, String config) { try { URI configUri = repository.configToHttpUri(config); Preconditions.checkNotNull(configUri, "Unknown configuration: " + config); return createConfigurationFactory(configUri); } catch (IOException e) { throw new RuntimeException("Unable to read configuration " + config); } }
public static InputSupplier<InputStream> newConfigEntrySupplier(final URI configBundle, String entryName) { InputSupplier<InputStream> configBundleInput = new InputSupplier<InputStream>() { @Override public InputStream getInput() throws IOException { URL url = configBundle.toURL(); URLConnection connection = url.openConnection(); if (connection instanceof HttpURLConnection) { HttpURLConnection httpConnection = (HttpURLConnection) connection; httpConnection.addRequestProperty("User-Agent", "User-Agent: Apache-Maven/3.0.3 (Java 1.6.0_29; Mac OS X 10.7.2)"); } InputStream in = connection.getInputStream(); return in; } }; return newConfigEntrySupplier(configBundleInput, entryName); }
private static void listFilesRecursive(String path, LinkedHashMap<String, File> files, File dir) { if (!path.isEmpty() && !path.endsWith("/")) { path = path + "/"; } for (File file : firstNonNull(dir.listFiles(), new File[0])) { String filePath = path + file.getName(); if (file.isDirectory()) { files.put(filePath, file); listFilesRecursive(filePath, files, file); } else { files.put(filePath, file); } } }
public static void packConfig(File outputFile, String rootPath, File... inputDirs) throws IOException { FileOutputStream outputStream = new FileOutputStream(outputFile); try { packConfig(outputStream, rootPath, inputDirs); } catch (IOException e) { outputStream.close(); } }
public static void packConfig(OutputStream outputStream, String rootPath, File... inputDirs) throws IOException { ZipOutputStream out = new ZipOutputStream(outputStream); try { zipDirectory(out, rootPath, inputDirs); } finally { out.finish(); out.flush(); } }
ConfigUtils.unpackConfig(Resources.newInputStreamSupplier(url), binaryRootDir);
ConfigurationFactory configurationFactory = createConfigurationFactory(repository, agentConfig); HttpServerConfig httpServerConfig = configurationFactory.build(HttpServerConfig.class);
public static ConfigurationFactory createConfigurationFactory(URI configUri) throws IOException { Properties properties = new Properties(); InputSupplier<InputStream> configPropertiesStream = newConfigEntrySupplier(configUri, "etc/config.properties"); InputStream input = configPropertiesStream.getInput(); try { properties.load(input); } finally { input.close(); } return new ConfigurationFactory((Map<String,String>) (Object) properties); } }
private static void zipDirectory(ZipOutputStream out, String rootPath, File... inputDirs) throws IOException { LinkedHashMap<String, File> files = newLinkedHashMap(); for (File inputDir : Lists.reverse(Arrays.asList(inputDirs))) { listFilesRecursive(rootPath, files, inputDir); } for (Entry<String, File> entry : files.entrySet()) { String path = entry.getKey(); File file = entry.getValue(); if (file.isDirectory()) { if (!path.endsWith("/")) { path = path + "/"; } ZipEntry dirEntry = new ZipEntry(path); dirEntry.setTime(file.lastModified()); out.putNextEntry(dirEntry); } else { ZipEntry fileEntry = new ZipEntry(path); fileEntry.setTime(file.lastModified()); out.putNextEntry(fileEntry); Files.copy(file, out); } } }
ConfigurationFactory configurationFactory = createConfigurationFactory(repository, coordinatorConfigSpec); AwsProvisionerConfig awsProvisionerConfig = configurationFactory.build(AwsProvisionerConfig.class); HttpServerConfig httpServerConfig = configurationFactory.build(HttpServerConfig.class);
public static Map<String, Integer> readResources(Repository repository, Assignment assignment) { ImmutableMap.Builder<String, Integer> builder = ImmutableMap.builder(); InputSupplier<? extends InputStream> resourcesFile = newConfigEntrySupplier(repository, assignment.getConfig(), "galaxy-resources.properties"); if (resourcesFile != null) { try { Properties resources = new Properties(); resources.load(resourcesFile.getInput()); for (Entry<Object, Object> entry : resources.entrySet()) { builder.put((String) entry.getKey(), Integer.valueOf((String) entry.getValue())); } } catch (IOException ignored) { } } return builder.build(); } }
ConfigurationFactory configurationFactory = createConfigurationFactory(repository, coordinatorConfig);
public static InputSupplier<InputStream> newConfigEntrySupplier(Repository repository, String config, final String entryName) { URI uri = repository.configToHttpUri(config); if (uri == null) { return null; } URL configUrl; try { configUrl = uri.toURL(); } catch (MalformedURLException e) { throw new RuntimeException("Invalid config bundle location " + uri); } return ConfigUtils.newConfigEntrySupplier(Resources.newInputStreamSupplier(configUrl), entryName); }
InputSupplier<? extends InputStream> configFile = ConfigUtils.newConfigEntrySupplier(repository, config, "galaxy-service-inventory.json"); if (configFile == null) { return null;