/*********************************************************************************************************************** * Copyright (C) 2010-2013 by the Stratosphere project (http://stratosphere.eu) * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. **********************************************************************************************************************/ package eu.stratosphere.testutils; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import eu.stratosphere.configuration.GlobalConfiguration; /** * */ public class TestConfigUtils { public static final void loadGlobalConf(String[] keys, String[] values) throws IOException { loadGlobalConf(getConfAsString(keys, values)); } public static void loadGlobalConf(String contents) throws IOException { final File tempDir = new File(System.getProperty("java.io.tmpdir")); File confDir = null; do { confDir = new File(tempDir, TestFileUtils.randomFileName()); } while (confDir.exists()); try { confDir.mkdirs(); final File confFile = new File(confDir, "tempConfig.xml"); try { BufferedWriter writer = new BufferedWriter(new FileWriter(confFile)); try { writer.write(contents); } finally { writer.close(); } GlobalConfiguration.loadConfiguration(confDir.getAbsolutePath()); } finally { confFile.delete(); } } finally { confDir.delete(); } } public static final String getConfAsString(String[] keys, String[] values) { if (keys == null || values == null || keys.length != values.length) { throw new IllegalArgumentException(); } StringBuilder bld = new StringBuilder(); bld.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<configuration>\n"); for (int i = 0; i < keys.length; i++) { bld.append("<property>\n<key>").append(keys[i]).append("</key>\n"); bld.append("<value>").append(values[i]).append("</value>\n</property>\n"); } bld.append("</configuration>\n"); return bld.toString(); } // ------------------------------------------------------------------------ private TestConfigUtils() {} }