[ https://issues.apache.org/jira/browse/DELTASPIKE-1199?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tomas Remes updated DELTASPIKE-1199: ------------------------------------ Comment: was deleted (was: Hi, I took a quick look at the code and it seems that the first start of contexts happens also within {{cdiContainer.boot()}} call which seems to call {{org.apache.webbeans.spi.ContainerLifecycle#startApplication}} which then calls {{org.apache.webbeans.lifecycle.AbstractLifeCycle#bootstrapApplication}} and I guess the first context start/init happens there but I could be wrong. ) > Problems with ContextControl and Weld ContainerInitialized, > ContainerShutdown event. > ------------------------------------------------------------------------------------- > > Key: DELTASPIKE-1199 > URL: https://issues.apache.org/jira/browse/DELTASPIKE-1199 > Project: DeltaSpike > Issue Type: Bug > Components: CdiControl > Affects Versions: 1.7.1 > Reporter: Seto > > No replies in user mail list. So I submit an issue here. And I think it's a > bug as well. > I have an @ApplicationScoped bean. It observes ContainerInitialized and > ContainerShutdown event. > {code:title=Kernel.java|borderStyle=solid} > public Kernel(){ > System.out.println("Kernel constructed"); > } > public void onContainerInitialized(@Observes ContainerInitialized event, > @Parameters List<String> parameters) { > System.out.println("container initialized"); > } > public void onContainerShutdown(@Observes ContainerShutdown event){ > System.out.println("container shutdown"); > } > {code} > Then the kernel is constructed twice with the code below, one after boot, one > after shutdown. > {code:title=Test.java|borderStyle=solid} > public class Test { > public static void main(String[] args) { > CdiContainer cdiContainer = CdiContainerLoader.getCdiContainer(); > cdiContainer.boot(); > // Starting the application-context enables use of @ApplicationScoped > beans > ContextControl contextControl = cdiContainer.getContextControl(); > contextControl.startContext(ApplicationScoped.class); > // You can use CDI here > contextControl.stopContext(ApplicationScoped.class); > cdiContainer.shutdown(); > } > } > {code} > If I remove the ContextControl related code. Then it is constructed only once > after boot. > If I keep the ContextControl related code and remove the observation of > ContainerInitialized. Then it is constructed only after shutdown. > If I keep the ContextControl related code and remove the observation of > ContainerShutdown. Then it is constructed only after shutdown. > What I expect is it is constructed only once after boot even I keep the > ContextControl related code. -- This message was sent by Atlassian JIRA (v6.3.4#6332)