[ 
https://jira.nuxeo.org/browse/NXP-6035?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bogdan Stefanescu updated NXP-6035:
-----------------------------------

    Upgrade notes: 
FRAMEWORK_STARTED must not be used anymore. If you want be execute 
initialization code after Nuxeo bundles were started override the  
applicationStarted() method of the DefaultComponent ...
You MUST not access the BundleContext in component activate method. This object 
is null in that bundle state. An exception will be thrown if you try to do that.

  was:
FRAMEWORK_STARTED must not be used anymore. If you want to be execute 
initialization code after Nuxeo bundles were started override the  
applicationStarted() method of the DefaultComponent ...
You MUST not access the BundleContext in component activate method. This object 
is null in that bundle state. An exception will be thrown if you try to do that.


> Align to OSGi life cycle specifications
> ---------------------------------------
>
>                 Key: NXP-6035
>                 URL: https://jira.nuxeo.org/browse/NXP-6035
>             Project: Nuxeo Enterprise Platform
>          Issue Type: Improvement
>    Affects Versions: 5.4
>            Reporter: Bogdan Stefanescu
>            Assignee: Bogdan Stefanescu
>            Priority: Major
>
> There are 2 major issues in runtime - that are not OSGi compatible:
> 1. the FRAMEWORK_STARTED event is incorrectly used: 
>     - we cannot rely on this event to be sure that all nuxeo components are 
> activated - since this event means that the OSGi framework started and not 
> the application. For example in equinox  this event is sent even before 
> activating the Nuxeo runtime. 
> To solve this the runtime will send a specific runtime event. 
> Then I will rewrite the bootstrap code to avoid relying on FRAMEWORK_STARTED. 
> (this is not urgent for now but will be to be able to start in felix)
> 2. Runtime components are activated in the RESOLVE life cycle phase - which 
> is good. But in that phase the BundleContext is not available on true OSGi 
> frameworks. This object is available only after the bundle was started - this 
> means in the BundleActivator.
> Some Nuxeo components are accessing this object in the activate() method 
> which is illegal since on most OSGi frameworks it will throws a NPE. (this is 
> not the case in Equinox - this is why it is working in Apogee - but the specs 
> are clearly saying this). In felix we have a NPE which is normal.
> To solve this I will refactor all components which are accessing the 
> BundleContext in activate().
> This is a first step to be ready to run in any OSGi framework (like felix)
> The next step is to align Nuxeo services on OSGi services but this is a big 
> refactoring (and not urgent)
> Services must be initialized when the bundle is started - this means in a 
> BundleActivator - and not in the component activate()  method which is called 
> in RESOLVED state.
> This means moving all Nuxeo service initialization in BundleActivators.
> This also means components will be used only for extension points management 
> and not for providing services.
> I will make later another JIRA tack for this.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://jira.nuxeo.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
ECM-tickets mailing list
[email protected]
http://lists.nuxeo.com/mailman/listinfo/ecm-tickets

Reply via email to