Commit 588ca76ec8fd5386bfb11baabe81066fcb5a461a
1 parent
187a6500
Exists in
master
Ajuste no startup e shutdown
Showing
2 changed files
with
18 additions
and
8 deletions
Show diff stats
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 | } |