001package org.kuali.common.util.spring.env; 002 003import java.util.Properties; 004 005import org.kuali.common.util.PropertyUtils; 006import org.kuali.common.util.property.ImmutableProperties; 007import org.springframework.core.env.AbstractEnvironment; 008import org.springframework.core.env.PropertiesPropertySource; 009 010public final class PropertiesEnvironment extends AbstractEnvironment { 011 012 private static final String NAME = "properties"; 013 014 /** 015 * Default environment that uses system properties / environment variables (prefixed with <code>env</code>) 016 */ 017 public PropertiesEnvironment() { 018 this(PropertyUtils.getGlobalProperties()); 019 } 020 021 /** 022 * Create an environment based on <code>properties</code> 023 */ 024 public PropertiesEnvironment(Properties properties) { 025 this(NAME, properties); 026 } 027 028 public PropertiesEnvironment(String name, Properties properties) { 029 this.properties = ImmutableProperties.copyOf(properties); 030 super.getPropertySources().addLast(new PropertiesPropertySource(name, properties)); 031 } 032 033 private final Properties properties; 034 035 public Properties getProperties() { 036 return properties; 037 } 038 039}