Commit 588ca76ec8fd5386bfb11baabe81066fcb5a461a

Authored by Cleverson Sacramento
1 parent 187a6500
Exists in master

Ajuste no startup e shutdown

impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/ShutdownBootstrap.java
@@ -55,6 +55,7 @@ import javax.enterprise.inject.spi.ProcessAnnotatedType; @@ -55,6 +55,7 @@ import javax.enterprise.inject.spi.ProcessAnnotatedType;
55 import br.gov.frameworkdemoiselle.DemoiselleException; 55 import br.gov.frameworkdemoiselle.DemoiselleException;
56 import br.gov.frameworkdemoiselle.annotation.Shutdown; 56 import br.gov.frameworkdemoiselle.annotation.Shutdown;
57 import br.gov.frameworkdemoiselle.annotation.ViewScoped; 57 import br.gov.frameworkdemoiselle.annotation.ViewScoped;
  58 +import br.gov.frameworkdemoiselle.internal.configuration.ConfigurationLoader;
58 import br.gov.frameworkdemoiselle.internal.context.CustomContext; 59 import br.gov.frameworkdemoiselle.internal.context.CustomContext;
59 import br.gov.frameworkdemoiselle.internal.context.ThreadLocalContext; 60 import br.gov.frameworkdemoiselle.internal.context.ThreadLocalContext;
60 import br.gov.frameworkdemoiselle.internal.processor.ShutdownProcessor; 61 import br.gov.frameworkdemoiselle.internal.processor.ShutdownProcessor;
@@ -128,10 +129,16 @@ public class ShutdownBootstrap extends AbstractBootstrap { @@ -128,10 +129,16 @@ public class ShutdownBootstrap extends AbstractBootstrap {
128 ShutdownProcessor processor = iter.next(); 129 ShutdownProcessor processor = iter.next();
129 130
130 try { 131 try {
131 - processor.process(); 132 + ClassLoader classLoader = ConfigurationLoader.getClassLoaderForClass(processor.getAnnotatedMethod()
  133 + .getDeclaringType().getJavaClass().getCanonicalName());
132 134
133 - if (remove) {  
134 - iter.remove(); 135 + if (Thread.currentThread().getContextClassLoader().equals(classLoader)) {
  136 +
  137 + processor.process();
  138 +
  139 + if (remove) {
  140 + iter.remove();
  141 + }
135 } 142 }
136 143
137 } catch (Throwable cause) { 144 } catch (Throwable cause) {
@@ -139,7 +146,9 @@ public class ShutdownBootstrap extends AbstractBootstrap { @@ -139,7 +146,9 @@ public class ShutdownBootstrap extends AbstractBootstrap {
139 } 146 }
140 } 147 }
141 148
142 - unloadTempContexts(); 149 + if (processors.isEmpty()) {
  150 + unloadTempContexts();
  151 + }
143 152
144 if (failure != null) { 153 if (failure != null) {
145 throw new DemoiselleException(failure); 154 throw new DemoiselleException(failure);
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/StartupBootstrap.java
@@ -56,6 +56,7 @@ import br.gov.frameworkdemoiselle.DemoiselleException; @@ -56,6 +56,7 @@ import br.gov.frameworkdemoiselle.DemoiselleException;
56 import br.gov.frameworkdemoiselle.annotation.Startup; 56 import br.gov.frameworkdemoiselle.annotation.Startup;
57 import br.gov.frameworkdemoiselle.annotation.ViewScoped; 57 import br.gov.frameworkdemoiselle.annotation.ViewScoped;
58 import br.gov.frameworkdemoiselle.internal.configuration.ConfigurationLoader; 58 import br.gov.frameworkdemoiselle.internal.configuration.ConfigurationLoader;
  59 +import br.gov.frameworkdemoiselle.internal.context.CustomContext;
59 import br.gov.frameworkdemoiselle.internal.context.ThreadLocalContext; 60 import br.gov.frameworkdemoiselle.internal.context.ThreadLocalContext;
60 import br.gov.frameworkdemoiselle.internal.processor.StartupProcessor; 61 import br.gov.frameworkdemoiselle.internal.processor.StartupProcessor;
61 62
@@ -66,7 +67,7 @@ public class StartupBootstrap extends AbstractBootstrap { @@ -66,7 +67,7 @@ public class StartupBootstrap extends AbstractBootstrap {
66 67
67 private static final Class<? extends Annotation> annotationClass = Startup.class; 68 private static final Class<? extends Annotation> annotationClass = Startup.class;
68 69
69 - private static final List<ThreadLocalContext> tempContexts = new ArrayList<ThreadLocalContext>(); 70 + private static final List<CustomContext> tempContexts = new ArrayList<CustomContext>();
70 71
71 @SuppressWarnings("rawtypes") 72 @SuppressWarnings("rawtypes")
72 private static final List<StartupProcessor> processors = Collections 73 private static final List<StartupProcessor> processors = Collections
@@ -97,7 +98,7 @@ public class StartupBootstrap extends AbstractBootstrap { @@ -97,7 +98,7 @@ public class StartupBootstrap extends AbstractBootstrap {
97 tempContexts.add(new ThreadLocalContext(ConversationScoped.class)); 98 tempContexts.add(new ThreadLocalContext(ConversationScoped.class));
98 tempContexts.add(new ThreadLocalContext(RequestScoped.class)); 99 tempContexts.add(new ThreadLocalContext(RequestScoped.class));
99 100
100 - for (ThreadLocalContext tempContext : tempContexts) { 101 + for (CustomContext tempContext : tempContexts) {
101 addContext(tempContext, event); 102 addContext(tempContext, event);
102 } 103 }
103 } 104 }
@@ -140,7 +141,7 @@ public class StartupBootstrap extends AbstractBootstrap { @@ -140,7 +141,7 @@ public class StartupBootstrap extends AbstractBootstrap {
140 } 141 }
141 } 142 }
142 143
143 - if (processors.isEmpty()){ 144 + if (processors.isEmpty()) {
144 unloadTempContexts(); 145 unloadTempContexts();
145 } 146 }
146 147
@@ -150,7 +151,7 @@ public class StartupBootstrap extends AbstractBootstrap { @@ -150,7 +151,7 @@ public class StartupBootstrap extends AbstractBootstrap {
150 } 151 }
151 152
152 private static void unloadTempContexts() { 153 private static void unloadTempContexts() {
153 - for (ThreadLocalContext tempContext : tempContexts) { 154 + for (CustomContext tempContext : tempContexts) {
154 disableContext(tempContext); 155 disableContext(tempContext);
155 } 156 }
156 } 157 }