org.opennms.xmlclient.ClientPropertiesLoader.java Source code

Java tutorial

Introduction

Here is the source code for org.opennms.xmlclient.ClientPropertiesLoader.java

Source

/* 
 * 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;
    }

}