All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.openshift.internal.client.RestServiceProperties Maven / Gradle / Ivy

/******************************************************************************* 
 * Copyright (c) 2012 Red Hat, Inc. 
 * Distributed under license by Red Hat, Inc. All rights reserved. 
 * This program is made available under the terms of the 
 * Eclipse Public License v1.0 which accompanies this distribution, 
 * and is available at http://www.eclipse.org/legal/epl-v10.html 
 * 
 * Contributors: 
 * Red Hat, Inc. - initial API and implementation 
 ******************************************************************************/
package com.openshift.internal.client;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.text.MessageFormat;
import java.util.Properties;

import com.openshift.internal.client.utils.StreamUtils;
import com.openshift.internal.client.utils.StringUtils;

/**
 * @author Andre Dietisheim
 */
public class RestServiceProperties {

	private static final String PROPERTIES_FILE = "restservice.properties";

	static final String KEY_USERAGENTPATTERN = "useragent";
	static final String KEY_VERSION = "version";
	static final String KEY_CLIENTID = "clientid";
	
	private String version;
	private String userAgent;
	private String clientId;

	private Properties properties;

	public String getVersion() {
		if (version == null) {
			version = getStringProperty(KEY_VERSION);
		}
		return version;
	}

	private String getStringProperty(String key) {
		try {
			return getProperties().getProperty(key);
		} catch (IOException e) {
			return null;
		}
	}

	public String getUseragent(String clientId) {
		String userAgent = null;
		String version = getVersion();
		String useragentPattern = getUseragentPattern();
		if (!StringUtils.isEmpty(useragentPattern)) {
			userAgent = MessageFormat.format(useragentPattern, 
					StringUtils.nullToEmptyString(version), 
					StringUtils.nullToEmptyString(clientId));
		}
		return userAgent;
	}

	protected String getUseragentPattern() {
		if (userAgent == null) {
			userAgent = getStringProperty(KEY_USERAGENTPATTERN);
		}

		return userAgent;
	}

	public String getClientId() {
		if (clientId == null) {
			clientId = getStringProperty(KEY_CLIENTID);
		}

		return clientId;
	}

	protected Properties getProperties() throws IOException {
		if (properties == null) {
			InputStream in = null;
			try {
				properties = new Properties();
				in = getClass().getResourceAsStream("/" + PROPERTIES_FILE);
				if (in == null) {
					throw new FileNotFoundException(
							MessageFormat.format("Could not load properties file {0}", PROPERTIES_FILE));
				}
				properties.load(in);
			} finally {
				StreamUtils.quietlyClose(in);
			}
		}
		return properties;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy