package com.ibm.sbt.opensocial.domino.modules;
import java.util.Iterator;
import java.util.Properties;
import org.apache.shindig.common.PropertiesModule;
/**
* Provides properties to Shindig.
* This module will read the default properties from Shindig and then override them with ones specified
* in our properties file.
*
*/
//TODO Should probably use/override the similar class from the OpenSocial Explorer
public class DominoPropertiesModule extends PropertiesModule {
private static final String DEFAULT_PROPERTIES = "config/domino-shindig.properties";
private Properties properties;
public DominoPropertiesModule() {
super((Properties) null);
Properties shindigProperties = readPropertyFile(getDefaultPropertiesPath());
Properties playgroundProperties = readPropertyFile(DEFAULT_PROPERTIES);
// Merge the properties together. Playground properties take precedence
this.properties = mergeProperties(shindigProperties, playgroundProperties);
}
@Override
protected Properties getProperties() {
return this.properties;
}
protected Properties mergeProperties(Properties...propertiesArray) {
if (propertiesArray.length == 0) {
return null;
}
if (propertiesArray.length == 1) {
return propertiesArray[0];
}
Properties merged = new Properties();
Iterator<String> keyItr;
String key;
for (Properties p : propertiesArray) {
keyItr = p.stringPropertyNames().iterator();
while (keyItr.hasNext()) {
key = keyItr.next();
merged.setProperty(key, p.getProperty(key));
}
}
return merged;
}
}