Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.splout.db.common;
  
  /*
   * #%L
   * Splout SQL Server
   * %%
   * Copyright (C) 2012 Datasalt Systems S.L.
   * %%
   * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  * 
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  * 
  * You should have received a copy of the GNU Affero General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  * #L%
  */
 
 import java.io.File;
 import java.net.URL;
 
 
An Apache Commons Configuration object holding the configuration for DNode and QNode. The properties that are used can be found, depending on its usage, in:
 
 @SuppressWarnings("serial")
 public class SploutConfiguration extends CompositeConfiguration implements Serializable {
 
 	static Log log = LogFactory.getLog(SploutConfiguration.class);
 
 	public final static String SPLOUT_PROPERTIES = "splout.properties";
 
 	public static SploutConfiguration get() {
 		return get(".");
 	}

Gets only the default values and adds some desirable properties for testing,
 
 	public static SploutConfiguration getTestConfig() { 
 		SploutConfiguration properties = new SploutConfiguration();
 		PropertiesConfiguration config = load("" + ".default"true);
 		properties.addConfiguration(config);
 		
 		// Activate replica balancing for tests
 		
 		// Disable wait for testing speedup.
 		
 		// Disable warming up - set it to only one second
 		// that's enough since Hazelcast joining is by far slower
 		
 		// Disable HZ state storage
 		return properties;
 	}

Get the Splout configuration using double configuration: defaults + custom
 
 	public static SploutConfiguration get(String rootDir) {
 		SploutConfiguration properties = new SploutConfiguration();
 
 		PropertiesConfiguration config = load(rootDirfalse);
 		if(config != null) {
 			properties.addConfiguration(config);
 		}
 		config = load(rootDir + ".default"true);
 		properties.addConfiguration(config);
 
 		// The following lines replaces the default "localhost" by the local IP for convenience:
 		String myIp = "localhost";
		try {
			Collection<InetAddressiNetAddresses = GetIPAddresses.getAllLocalIPs();
			// but only if there is Internet connectivity!
			if(iNetAddresses != null) {
				Iterator<InetAddressit = iNetAddresses.iterator();
				if(it.hasNext()) {
					InetAddress address = it.next();
					if(address.getHostAddress() != null) {
						myIp = address.getHostAddress();
					}
				}
			}
catch(IOException e) {
			throw new RuntimeException(e);
		}
		if(config.getString(.) != null
		    && config.getString(.).equals("localhost")) {
		}
		if(config.getString(.) != null
		    && config.getString(.).equals("localhost")) {
		}
		return properties;
	}
	// --------------- //
	private static URL loadAsResource(String what) {
		if(url == null) {
			url = ClassLoader.getSystemClassLoader().getResource(what);
			if(url != null) {
				.info("Loading " + what + " from system classloader at: " + url);
			}
			return url;
else {
			.info("Loading " + what + " from " + SploutConfiguration.class.getName() + " classloader at: "
			    + url);
		}
		return url;
	}
	private static PropertiesConfiguration load(String rootDirString whatboolean strict) {
		File file = new File(new File(rootDir), what);
		if(!file.exists()) {
			URL url = loadAsResource(what);
			if(url == null) {
				if(strict) {
					throw new RuntimeException(what + " doesn't exist and it is not in the classpath.");
else {
					.info(what + " doesn't exist.");
					return null;
				}
else {
				try {
					return config;
catch(ConfigurationException e) {
					throw new RuntimeException("Error loading default " + what);
				}
			}
else {
			.info("Loading " + what + " from " + file);
			try {
				return config;
catch(ConfigurationException e) {
				throw new RuntimeException("Error loading default " + what);
			}
		}
	}
	private SploutConfiguration() {
		super();
	}
New to GrepCode? Check out our FAQ X