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 | } |