/*
* Licensed to the OpenNMS Group Inc. under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenNMS Group Inc. licences this file to You 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 org.opennms.xmlclient;
import java.net.URL;
import java.util.Properties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class ClientPropertiesLoader {
private Log log = LogFactory.getLog(ClientPropertiesLoader.class.getName());
private String opennmsUrl= "http://localhost:8980"; // URL to address opennms
private String username = "admin"; // user ID for accessing REST interface
private String password = "admin"; // password for accessing REST interface
private String foreign_source= "imported:TestForeignSource1"; // foreign source for importing data
private String propertiesFilename="onmsclient.properties"; // file name of properties file
private Properties properties = null;
private String path="";
private void loadProperties() {
properties = new Properties();
try {
// try to Load from the startup directory of application (ex. directory containing the jar)
String p=getClass().getProtectionDomain().getCodeSource().getLocation().toString().substring(6);
path= "/"+p.substring(0, p.lastIndexOf("/"));
java.io.File propfile = new java.io.File( path + "/"+propertiesFilename);
if (propfile.exists()){
log.debug("PropertiesLoader() Trying to load properties file '"+propertiesFilename+"' from directory path:"+path);
java.io.FileInputStream fis = new java.io.FileInputStream(propfile);
properties.load(fis);
} else {
// try to load from class path
log.debug("PropertiesLoader() Properties file not in directory path:'"+path+"' Loading properties file '"+propertiesFilename+"' from classpath");
URL url = ClassLoader.getSystemResource(propertiesFilename);
properties.load(url.openStream());
}
if (properties.getProperty("opennmsUrl")!=null) {
opennmsUrl= properties.getProperty("opennmsUrl");
} else log.error ("PropertiesLoader() 'opennmsUrl' property does not exist in '"+propertiesFilename+"' file. Using default value.");
if (properties.getProperty("username")!=null) {
username= properties.getProperty("username");
} else log.error ("PropertiesLoader() 'username' property does not exist in '"+propertiesFilename+"' file. Using default value.");
if (properties.getProperty("password")!=null) {
password= properties.getProperty("password");
} else log.error ("PropertiesLoader() 'password' property does not exist in '"+propertiesFilename+"' file. Using default value.");
if (properties.getProperty("foreign_source")!=null) {
foreign_source= properties.getProperty("foreign_source");
} else log.error ("PropertiesLoader() 'foreign_source' property does not exist in '"+propertiesFilename+"' file. Using default value.");
} catch (Throwable e) {
log.error("PropertiesLoader() unable to load '"+propertiesFilename+"' file from classpath or file path '"+path+"'. Using default properties. ");
}
log.info("PropertiesLoader() using properties: foreign_source='"+foreign_source
+"', opennmsUrl='"+opennmsUrl+"', username='"+username+"', password='"+password+"'");
}
public void setLog(Log log) {
this.log = log;
}
public void setPropertiesFilename(String propertiesFilename) {
this.propertiesFilename = propertiesFilename;
}
public String getOpennmsUrl() {
if (properties==null) loadProperties();
return opennmsUrl;
}
public String getUsername() {
if (properties==null) loadProperties();
return username;
}
public String getPassword() {
if (properties==null) loadProperties();
return password;
}
public String getForeign_source() {
if (properties==null) loadProperties();
return foreign_source;
}
}