blob: 184c4ce50cd45ee76bc091e24f46d49720a9f24e [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.tamaya.doc;
import org.apache.tamaya.doc.annot.ConfigAreaSpec;
import org.apache.tamaya.doc.annot.ConfigPropertySpec;
import org.apache.tamaya.doc.annot.ConfigSpec;
import org.apache.tamaya.inject.api.Config;
import org.apache.tamaya.inject.api.DynamicValue;
import org.apache.tamaya.inject.api.NoConfig;
import org.apache.tamaya.spi.PropertyValue;
import java.util.ArrayList;
import java.util.List;
/**
* An example showing some basic annotations, using an interface to be proxied by the
* configuration system, nevertheless extending the overall Configuration interface.
* Created by Anatole on 15.02.14.
*/
@ConfigSpec(
name="Test",
version="0.1.0"
)
@ConfigAreaSpec(
path="",
description = "Default root configuration",
areaType = PropertyValue.ValueType.MAP
)
public class AnnotatedDocConfigBean {
@ConfigPropertySpec(description = "Tests a multi key resolution")
@Config(value = {"foo.bar.myprop", "mp", "common.testdata.myProperty"}, defaultValue = "ET")
public String myParameter;
@ConfigPropertySpec(description = "Tests a simple String description")
@Config("simple_value")
public String simpleValue;
@ConfigPropertySpec(description = "Another test value without any explicit definition")
@Config
String anotherValue;
@ConfigPropertySpec(description = "An explicit config parameter value.")
@Config("[host.name]")
private String hostName;
@ConfigPropertySpec(description = "An non String typed instance.")
@Config("host.name")
private DynamicValue<String> dynamicHostname;
@NoConfig
public String javaVersion;
public String getAnotherValue(){
return anotherValue;
}
public String getHostName(){
return hostName;
}
public DynamicValue<String> getDynamicValue(){
return dynamicHostname;
}
@NoConfig
private List<String> events = new ArrayList<>();
// verify we don't try to inject final fields
public static final String CONSTANT = "a constant";
@Config("java.version")
void setJavaVersion(String version){
this.javaVersion = version;
}
}