[
https://issues.apache.org/jira/browse/FELIX-2246?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Felix Meschberger reassigned FELIX-2246:
----------------------------------------
Assignee: Felix Meschberger
> Lazy initialization of plugins
> ------------------------------
>
> Key: FELIX-2246
> URL: https://issues.apache.org/jira/browse/FELIX-2246
> Project: Felix
> Issue Type: Improvement
> Components: Web Console
> Affects Versions: webconsole-3.0.0
> Reporter: Valentin Valchev
> Assignee: Felix Meschberger
> Attachments: lazy-webconsole-plugins.jude, lazy-webconsole-plugins.png
>
>
> Here at ProSyst we use a small trick to delay initialization of our services:
> When the service is quite big, and loads many resources (incl. too many
> classes), we register not a service, but a ServiceFactory instead. With that
> factory we delay the instantiation of the service, when it is actually needed
> and obtained by other bundle.
> Yes, this makes the code a little bit more complex, but it greatly improves
> the start-up time and the overall memory usage.
> This can be applied to webconsole plugins too. My idea is that Web Console
> should only track Service Reference without actually obtaining the service
> itself [not getService()].
> When the user makes request the WebConsole calls the factory to create
> instance. Instance is created and returned to the Web Console, which uses it
> to generate content for the request.
> This way a plugin is actually not initialized until it is really used. Only
> small portion of classes, from the bundle are initialized.
> Unfortunately the ServiceTracker, when notified for added service obtains the
> real service object. So it might be better to use directly ServiceListener
> for the plugins.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.