001/* -*- mode: Java; c-basic-offset: 2; indent-tabs-mode: nil; coding: utf-8-unix -*- 002 * 003 * Copyright © 2017–2019 microBean. 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 014 * implied. See the License for the specific language governing 015 * permissions and limitations under the License. 016 */ 017package org.microbean.configuration.spi; 018 019import java.io.Serializable; 020 021import java.util.Collections; 022import java.util.Map; 023import java.util.Properties; 024import java.util.Set; 025 026import java.util.function.Function; 027 028import org.microbean.configuration.api.ConfigurationValue; 029 030/** 031 * A {@link PropertiesConfiguration} that {@linkplain 032 * #getValue(Resource, Map, String) gets configuration property 033 * values} from {@link Properties} resources. 034 * 035 * @author <a href="https://about.me/lairdnelson" 036 * target="_parent">Laird Nelson</a> 037 * 038 * @see #getValue(Resource, Map, String) 039 */ 040public class ApplicationPropertiesConfiguration extends PropertiesConfiguration { 041 042 043 /* 044 * Static fields. 045 */ 046 047 048 /** 049 * The version of this class for {@linkplain Serializable 050 * serialization purposes}. 051 */ 052 private static final long serialVersionUID = 1L; 053 054 055 /* 056 * Constructors. 057 */ 058 059 060 /** 061 * Creates a new {@link ApplicationPropertiesConfiguration}. 062 */ 063 public ApplicationPropertiesConfiguration() { 064 super(new CachingResourceLoader<>(new PropertiesLoader("application.properties"))); 065 } 066 067}