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

org.javasimon.spring.SimonConfigurationBean Maven / Gradle / Ivy

package org.javasimon.spring;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.javasimon.Manager;
import org.javasimon.SimonManager;
import org.javasimon.SwitchingManager;

import org.springframework.beans.factory.InitializingBean;

/**
 * Spring bean that configures Simon manager using {@link org.javasimon.ManagerConfiguration} facility.
 *
 * @author Richard "Virgo" Richter
 */
public class SimonConfigurationBean implements InitializingBean {
	private Manager simonManager = SimonManager.manager();
	private String configurationPath;

	public Manager getSimonManager() {
		return simonManager;
	}

	public void setSimonManager(Manager simonManager) {
		this.simonManager = simonManager;
	}

	/**
	 * Creates new {@link org.javasimon.SwitchingManager} instead of using {@link org.javasimon.SimonManager#manager()}.
	 */
	public void setNewManager() {
		simonManager = new SwitchingManager();
	}

	/**
	 * Loads configuration for the manager from the specified resource path.
	 *
	 * @param configurationPath resource path to the configuration XML
	 * @throws IOException thrown if the resource is not found or the configuration XML is not well formed
	 */
	public void setConfiguration(String configurationPath) throws IOException {
		this.configurationPath = configurationPath;
	}

	@Override
	public void afterPropertiesSet() throws Exception {
		if (configurationPath != null) {
			InputStream is = getClass().getClassLoader().getResourceAsStream(configurationPath);
			if (is == null) {
				throw new FileNotFoundException(configurationPath);
			}
			simonManager.configuration().readConfig(new InputStreamReader(is));
		}
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy