Commit 07a2d312174faa12d832b739fe1ebd36bba203d8
1 parent
e386cfd7
Exists in
master
Suporte a herança em classes anotadas com @Configuration
Showing
2 changed files
with
13 additions
and
18 deletions
Show diff stats
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java
| ... | ... | @@ -63,10 +63,8 @@ import br.gov.frameworkdemoiselle.annotation.Name; |
| 63 | 63 | import br.gov.frameworkdemoiselle.configuration.ConfigType; |
| 64 | 64 | import br.gov.frameworkdemoiselle.configuration.Configuration; |
| 65 | 65 | import br.gov.frameworkdemoiselle.configuration.ConfigurationException; |
| 66 | -import br.gov.frameworkdemoiselle.internal.bootstrap.CoreBootstrap; | |
| 67 | 66 | import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer; |
| 68 | 67 | import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; |
| 69 | -import br.gov.frameworkdemoiselle.util.Beans; | |
| 70 | 68 | import br.gov.frameworkdemoiselle.util.Reflections; |
| 71 | 69 | import br.gov.frameworkdemoiselle.util.ResourceBundle; |
| 72 | 70 | import br.gov.frameworkdemoiselle.util.Strings; |
| ... | ... | @@ -85,8 +83,6 @@ public class ConfigurationLoader implements Serializable { |
| 85 | 83 | |
| 86 | 84 | private Logger logger; |
| 87 | 85 | |
| 88 | - private CoreBootstrap bootstrap; | |
| 89 | - | |
| 90 | 86 | /** |
| 91 | 87 | * Loads a config class filling it with the corresponding values. |
| 92 | 88 | * |
| ... | ... | @@ -97,14 +93,9 @@ public class ConfigurationLoader implements Serializable { |
| 97 | 93 | public void load(Object object) throws ConfigurationException { |
| 98 | 94 | Class<?> config = object.getClass(); |
| 99 | 95 | |
| 100 | - if (!getBootstrap().isAnnotatedType(config)) { | |
| 101 | - config = config.getSuperclass(); | |
| 102 | - getLogger().debug(getBundle().getString("proxy-detected", config, config.getClass().getSuperclass())); | |
| 103 | - } | |
| 104 | - | |
| 105 | 96 | getLogger().debug(getBundle().getString("loading-configuration-class", config.getName())); |
| 106 | 97 | |
| 107 | - for (Field field : Reflections.getNonStaticDeclaredFields(config)) { | |
| 98 | + for (Field field : Reflections.getNonStaticFields(config)) { | |
| 108 | 99 | loadField(field, object, config); |
| 109 | 100 | } |
| 110 | 101 | } |
| ... | ... | @@ -414,14 +405,6 @@ public class ConfigurationLoader implements Serializable { |
| 414 | 405 | return logger; |
| 415 | 406 | } |
| 416 | 407 | |
| 417 | - private CoreBootstrap getBootstrap() { | |
| 418 | - if (bootstrap == null) { | |
| 419 | - bootstrap = Beans.getReference(CoreBootstrap.class); | |
| 420 | - } | |
| 421 | - | |
| 422 | - return bootstrap; | |
| 423 | - } | |
| 424 | - | |
| 425 | 408 | private class Key { |
| 426 | 409 | |
| 427 | 410 | private String prefix; | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Reflections.java
| ... | ... | @@ -43,6 +43,7 @@ import java.lang.reflect.Modifier; |
| 43 | 43 | import java.lang.reflect.ParameterizedType; |
| 44 | 44 | import java.lang.reflect.Type; |
| 45 | 45 | import java.util.ArrayList; |
| 46 | +import java.util.Arrays; | |
| 46 | 47 | import java.util.List; |
| 47 | 48 | |
| 48 | 49 | public final class Reflections { |
| ... | ... | @@ -131,6 +132,17 @@ public final class Reflections { |
| 131 | 132 | return fields.toArray(new Field[0]); |
| 132 | 133 | } |
| 133 | 134 | |
| 135 | + public static List<Field> getNonStaticFields(Class<?> type) { | |
| 136 | + List<Field> fields = new ArrayList<Field>(); | |
| 137 | + | |
| 138 | + if (type != null) { | |
| 139 | + fields.addAll(Arrays.asList(getNonStaticDeclaredFields(type))); | |
| 140 | + fields.addAll(getNonStaticFields(type.getSuperclass())); | |
| 141 | + } | |
| 142 | + | |
| 143 | + return fields; | |
| 144 | + } | |
| 145 | + | |
| 134 | 146 | public static <T> T instantiate(Class<T> clasz) { |
| 135 | 147 | T object = null; |
| 136 | 148 | try { | ... | ... |