-
Notifications
You must be signed in to change notification settings - Fork 980
Closed
Labels
Description
Trying to mirgate to config library from plain Properties. My property file contains several settings with "default" in key (changing keys is no option for me):
gate.default.query=...
gate.default.action=...
.....
My bean contains a field with getter-setter pair:
....
@Optional
private DefaultConfig Default; // DefaultConfig is another bean
public DefaultConfig getDefault() {
return Default;
}
public void setDefault(DefaultConfig Default) {
this.Default = Default;
}
...Method com.typesafe.config.impl.ConfigBeanImpl.isOptionalProperty(Class, PropertyDescriptor) requires the @Optional annotation to be placed at field named exactly as config option. But minimal change will allow to place @Optional annotation at property getter method if field cannot be created (actually, I've reproduced problem). This is proposed fix for com.typesafe.config.impl.ConfigBeanImpl.isOptionalProperty(Class, PropertyDescriptor):
private static boolean isOptionalProperty(Class beanClass, PropertyDescriptor beanProp) {
Field field = getField(beanClass, beanProp.getName());
return field != null ? field.getAnnotationsByType(Optional.class).length > 0
: beanProp.getReadMethod().getAnnotationsByType(Optional.class).length > 0;
}Reactions are currently unavailable