diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java index 1e96eb6..77e4bea 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java @@ -43,8 +43,11 @@ import java.lang.reflect.Method; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.net.URL; +import java.util.ArrayList; +import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; +import java.util.List; import java.util.Properties; import java.util.Set; @@ -102,11 +105,22 @@ public class ConfigurationLoader implements Serializable { getLogger().debug(getBundle().getString("loading-configuration-class", config.getName())); - for (Field field : Reflections.getNonStaticDeclaredFields(config)) { + for (Field field : getNonStaticFields(config)) { loadField(field, object, config); } } + private List getNonStaticFields(Class type) { + List fields = new ArrayList(); + + if (type != null) { + fields.addAll(Arrays.asList(Reflections.getNonStaticDeclaredFields(type))); + fields.addAll(getNonStaticFields(type.getSuperclass())); + } + + return fields; + } + private void loadField(Field field, Object object, Class clazz) { if (!field.isAnnotationPresent(Ignore.class) && clazz.isAnnotationPresent(Configuration.class)) { String resource = clazz.getAnnotation(Configuration.class).resource(); -- libgit2 0.21.2