Commit 40489b2e6d24fa76f8abf5e2153038df35cb8431

Authored by Cleverson Sacramento
1 parent 348cb50c
Exists in master

Ajuste no bootstrap para ficar mais aderente à espec cdi

impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/ShutdownBootstrap.java
... ... @@ -49,7 +49,6 @@ import javax.enterprise.inject.spi.AfterBeanDiscovery;
49 49 import javax.enterprise.inject.spi.AnnotatedMethod;
50 50 import javax.enterprise.inject.spi.AnnotatedType;
51 51 import javax.enterprise.inject.spi.BeanManager;
52   -import javax.enterprise.inject.spi.BeforeShutdown;
53 52 import javax.enterprise.inject.spi.ProcessAnnotatedType;
54 53  
55 54 import br.gov.frameworkdemoiselle.annotation.Shutdown;
... ... @@ -115,7 +114,7 @@ public class ShutdownBootstrap extends AbstractBootstrap {
115 114 * @throws Exception
116 115 */
117 116 @SuppressWarnings("unchecked")
118   - public static void shuttingDown(@Observes final BeforeShutdown event) throws Throwable {
  117 + public static void shutdown() throws Throwable {
119 118 loadTempContexts(ShutdownBootstrap.event);
120 119  
121 120 getLogger().debug(
... ...
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/StartupBootstrap.java
... ... @@ -46,7 +46,6 @@ import javax.enterprise.context.RequestScoped;
46 46 import javax.enterprise.context.SessionScoped;
47 47 import javax.enterprise.event.Observes;
48 48 import javax.enterprise.inject.spi.AfterBeanDiscovery;
49   -import javax.enterprise.inject.spi.AfterDeploymentValidation;
50 49 import javax.enterprise.inject.spi.AnnotatedMethod;
51 50 import javax.enterprise.inject.spi.AnnotatedType;
52 51 import javax.enterprise.inject.spi.BeanManager;
... ... @@ -64,7 +63,7 @@ public class StartupBootstrap extends AbstractBootstrap {
64 63  
65 64 private static final Class<? extends Annotation> annotationClass = Startup.class;
66 65  
67   - private final List<ThreadLocalContext> tempContexts = new ArrayList<ThreadLocalContext>();
  66 + private static final List<ThreadLocalContext> tempContexts = new ArrayList<ThreadLocalContext>();
68 67  
69 68 @SuppressWarnings("rawtypes")
70 69 private static final List<StartupProcessor> processors = Collections
... ... @@ -89,13 +88,13 @@ public class StartupBootstrap extends AbstractBootstrap {
89 88 }
90 89  
91 90 public void loadTempContexts(@Observes final AfterBeanDiscovery event) {
92   - //Não registrar o contexto de aplicação pq ele já é registrado pela implementação do CDI
93   - this.tempContexts.add(new ThreadLocalContext(ViewScoped.class));
94   - this.tempContexts.add(new ThreadLocalContext(SessionScoped.class));
95   - this.tempContexts.add(new ThreadLocalContext(ConversationScoped.class));
96   - this.tempContexts.add(new ThreadLocalContext(RequestScoped.class));
  91 + // Não registrar o contexto de aplicação pq ele já é registrado pela implementação do CDI
  92 + tempContexts.add(new ThreadLocalContext(ViewScoped.class));
  93 + tempContexts.add(new ThreadLocalContext(SessionScoped.class));
  94 + tempContexts.add(new ThreadLocalContext(ConversationScoped.class));
  95 + tempContexts.add(new ThreadLocalContext(RequestScoped.class));
97 96  
98   - for (ThreadLocalContext tempContext : this.tempContexts) {
  97 + for (ThreadLocalContext tempContext : tempContexts) {
99 98 addContext(tempContext, event);
100 99 }
101 100 }
... ... @@ -108,7 +107,7 @@ public class StartupBootstrap extends AbstractBootstrap {
108 107 * @throws StartupException
109 108 */
110 109 @SuppressWarnings("unchecked")
111   - public void startup(@Observes final AfterDeploymentValidation event) throws Throwable {
  110 + public static void startup() throws Throwable {
112 111 getLogger().debug(
113 112 getBundle("demoiselle-core-bundle").getString("executing-all", annotationClass.getSimpleName()));
114 113 Collections.sort(processors);
... ... @@ -116,12 +115,13 @@ public class StartupBootstrap extends AbstractBootstrap {
116 115 for (StartupProcessor<?> action : processors) {
117 116 action.process();
118 117 }
  118 +
119 119 processors.clear();
120 120 unloadTempContexts();
121 121 }
122 122  
123   - private void unloadTempContexts() {
124   - for (ThreadLocalContext tempContext : this.tempContexts) {
  123 + private static void unloadTempContexts() {
  124 + for (ThreadLocalContext tempContext : tempContexts) {
125 125 disableContext(tempContext);
126 126 }
127 127 }
... ...
impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/producer/JsfLocaleProducer.java
... ... @@ -21,7 +21,6 @@ package br.gov.frameworkdemoiselle.internal.producer;
21 21 import java.io.Serializable;
22 22 import java.util.Locale;
23 23  
24   -import javax.enterprise.context.ContextNotActiveException;
25 24 import javax.enterprise.context.RequestScoped;
26 25 import javax.enterprise.inject.Alternative;
27 26 import javax.enterprise.inject.Default;
... ...
impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/util/DemoiselleServletContextListener.java 0 → 100644
... ... @@ -0,0 +1,31 @@
  1 +package br.gov.frameworkdemoiselle.util;
  2 +
  3 +import javax.servlet.ServletContextEvent;
  4 +import javax.servlet.ServletContextListener;
  5 +
  6 +import br.gov.frameworkdemoiselle.DemoiselleException;
  7 +import br.gov.frameworkdemoiselle.internal.bootstrap.ShutdownBootstrap;
  8 +import br.gov.frameworkdemoiselle.internal.bootstrap.StartupBootstrap;
  9 +
  10 +public class DemoiselleServletContextListener implements ServletContextListener {
  11 +
  12 + @Override
  13 + public void contextInitialized(ServletContextEvent event) {
  14 + try {
  15 + StartupBootstrap.startup();
  16 +
  17 + } catch (Throwable cause) {
  18 + throw new DemoiselleException(cause);
  19 + }
  20 + }
  21 +
  22 + @Override
  23 + public void contextDestroyed(ServletContextEvent event) {
  24 + try {
  25 + ShutdownBootstrap.shutdown();
  26 +
  27 + } catch (Throwable cause) {
  28 + throw new DemoiselleException(cause);
  29 + }
  30 + }
  31 +}
... ...
impl/extension/jsf/src/main/resources/META-INF/web-fragment.xml 0 → 100644
... ... @@ -0,0 +1,7 @@
  1 +<web-fragment>
  2 +
  3 + <listener>
  4 + <listener-class>br.gov.frameworkdemoiselle.util.DemoiselleServletContextListener</listener-class>
  5 + </listener>
  6 +
  7 +</web-fragment>
0 8 \ No newline at end of file
... ...