Commit 8efb1b4269eef48fb840b03c6cf850ff0125b1be

Authored by Cleverson Sacramento
1 parent 1be04f3f
Exists in master

Definição do escopo estático nas classes de configuração.

impl/core/src/main/java/br/gov/frameworkdemoiselle/configuration/Configuration.java
@@ -46,6 +46,8 @@ import java.lang.annotation.Target; @@ -46,6 +46,8 @@ import java.lang.annotation.Target;
46 import javax.enterprise.inject.Stereotype; 46 import javax.enterprise.inject.Stereotype;
47 import javax.enterprise.util.Nonbinding; 47 import javax.enterprise.util.Nonbinding;
48 48
  49 +import br.gov.frameworkdemoiselle.annotation.StaticScoped;
  50 +
49 /** 51 /**
50 * Identifies a <b>configuration class</b>, that is, a structure reserved to store configuration values retrieved from a 52 * Identifies a <b>configuration class</b>, that is, a structure reserved to store configuration values retrieved from a
51 * given resource file or system variables. 53 * given resource file or system variables.
@@ -61,8 +63,9 @@ import javax.enterprise.util.Nonbinding; @@ -61,8 +63,9 @@ import javax.enterprise.util.Nonbinding;
61 * 63 *
62 * @author SERPRO 64 * @author SERPRO
63 */ 65 */
64 -@Stereotype  
65 @Inherited 66 @Inherited
  67 +@Stereotype
  68 +@StaticScoped
66 @Target(TYPE) 69 @Target(TYPE)
67 @Retention(RUNTIME) 70 @Retention(RUNTIME)
68 public @interface Configuration { 71 public @interface Configuration {
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/ConfigurationBootstrap.java
@@ -51,7 +51,6 @@ import javassist.LoaderClassPath; @@ -51,7 +51,6 @@ import javassist.LoaderClassPath;
51 import javassist.NotFoundException; 51 import javassist.NotFoundException;
52 52
53 import javax.enterprise.event.Observes; 53 import javax.enterprise.event.Observes;
54 -import javax.enterprise.inject.spi.AfterBeanDiscovery;  
55 import javax.enterprise.inject.spi.AnnotatedType; 54 import javax.enterprise.inject.spi.AnnotatedType;
56 import javax.enterprise.inject.spi.BeanManager; 55 import javax.enterprise.inject.spi.BeanManager;
57 import javax.enterprise.inject.spi.Extension; 56 import javax.enterprise.inject.spi.Extension;
@@ -62,26 +61,17 @@ import br.gov.frameworkdemoiselle.internal.implementation.ConfigurationImpl; @@ -62,26 +61,17 @@ import br.gov.frameworkdemoiselle.internal.implementation.ConfigurationImpl;
62 61
63 public class ConfigurationBootstrap implements Extension { 62 public class ConfigurationBootstrap implements Extension {
64 63
65 - private final List<Class<Object>> cache = Collections.synchronizedList(new ArrayList<Class<Object>>());  
66 -  
67 private static final Map<ClassLoader, Map<String, Class<Object>>> cacheClassLoader = Collections 64 private static final Map<ClassLoader, Map<String, Class<Object>>> cacheClassLoader = Collections
68 .synchronizedMap(new HashMap<ClassLoader, Map<String, Class<Object>>>()); 65 .synchronizedMap(new HashMap<ClassLoader, Map<String, Class<Object>>>());
69 66
70 - public void processAnnotatedType(@Observes final ProcessAnnotatedType<Object> event) { 67 + public void processAnnotatedType(@Observes final ProcessAnnotatedType<Object> event, BeanManager beanManager)
  68 + throws Exception {
71 final AnnotatedType<Object> annotatedType = event.getAnnotatedType(); 69 final AnnotatedType<Object> annotatedType = event.getAnnotatedType();
72 70
73 if (annotatedType.getJavaClass().isAnnotationPresent(Configuration.class)) { 71 if (annotatedType.getJavaClass().isAnnotationPresent(Configuration.class)) {
74 - cache.add(annotatedType.getJavaClass());  
75 - event.veto();  
76 - }  
77 - }  
78 -  
79 - public void afterBeanDiscovery(@Observes AfterBeanDiscovery event, BeanManager beanManager) throws Exception {  
80 - Class<Object> proxy;  
81 -  
82 - for (Class<Object> config : cache) {  
83 - proxy = createProxy(config);  
84 - event.addBean(new CustomBean(proxy, beanManager)); 72 + Class<Object> proxyClass = createProxy(annotatedType.getJavaClass());
  73 + AnnotatedType<Object> proxyAnnotatedType = beanManager.createAnnotatedType(proxyClass);
  74 + event.setAnnotatedType(proxyAnnotatedType);
85 } 75 }
86 } 76 }
87 77