View Javadoc
1   /**
2    * Copyright 2010-2014 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.common.util.spring.env;
17  
18  import java.util.Properties;
19  
20  import org.kuali.common.util.PropertyUtils;
21  import org.kuali.common.util.property.ImmutableProperties;
22  import org.springframework.core.env.AbstractEnvironment;
23  import org.springframework.core.env.PropertiesPropertySource;
24  
25  public final class PropertiesEnvironment extends AbstractEnvironment {
26  
27  	private static final String NAME = "properties";
28  
29  	/**
30  	 * Default environment that uses system properties / environment variables (prefixed with <code>env</code>)
31  	 */
32  	public PropertiesEnvironment() {
33  		this(PropertyUtils.getGlobalProperties());
34  	}
35  
36  	/**
37  	 * Create an environment based on <code>properties</code>
38  	 */
39  	public PropertiesEnvironment(Properties properties) {
40  		this(NAME, properties);
41  	}
42  
43  	public PropertiesEnvironment(String name, Properties properties) {
44  		this.properties = ImmutableProperties.copyOf(properties);
45  		super.getPropertySources().addLast(new PropertiesPropertySource(name, properties));
46  	}
47  
48  	private final Properties properties;
49  
50  	public Properties getProperties() {
51  		return properties;
52  	}
53  
54  }