Hi,

I've added a new interface
"org.wso2.carbon.core.init.CarbonStartupListener", and a static method
"CarbonServerManager#addCarbonStartupListener(CarbonStartupListener
listener)", to get notifications when the Carbon server is fully
initialized. This is done from the class
"StartupFinalizerServiceComponent", where it keeps the list of registered
CarbonStartupListener objects, and at the end of the Carbon server init,
all the CarbonStartupListeners are notified. And, if the server is already
initialized when a addCarbonStartupListener is called, it will be
immediately called back, without it being stored.

This functionality was basically required for the ntask implementation,
where the server has to be fully initialized before the scheduled tasks are
run, for example, this is a required by BAM tasks and also data services
scheduled tasks, where the fully required resources are only available
after the Carbon server is fully initialized.

The changed code can be found in the following locations:

*
https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.0.0/core/org.wso2.carbon.core/4.0.1/src/main/java/org/wso2/carbon/core/init/CarbonServerManager.java
*
https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.0.0/core/org.wso2.carbon.core/4.0.1/src/main/java/org/wso2/carbon/core/init/CarbonStartupListener.java
*
https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.0.0/core/org.wso2.carbon.core/4.0.1/src/main/java/org/wso2/carbon/core/internal/StartupFinalizerServiceComponent.java

And the usage of the above functionality in ntask can be found at:

*
https://svn.wso2.org/repos/wso2/carbon/platform/branches/4.0.0/components/ntask/org.wso2.carbon.ntask.core/4.0.1/src/main/java/org/wso2/carbon/ntask/core/service/impl/TaskServiceImpl.java

Cheers,
Anjana.
-- 
*Anjana Fernando*
Associate Technical Lead
WSO2 Inc. | http://wso2.com
lean . enterprise . middleware
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to