You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltaspike.apache.org by "Seto (JIRA)" <ji...@apache.org> on 2016/08/31 05:09:20 UTC

[jira] [Created] (DELTASPIKE-1199) Problems with ContextControl and Weld ContainerInitialized, ContainerShutdown event.

Seto created DELTASPIKE-1199:
--------------------------------

             Summary:  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. 
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");
}Then the kernel is constructed twice with the code below, one after boot, one after shutdown.

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();
}
}
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)