felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Felix Meschberger (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (FELIX-2246) Lazy initialization of plugins
Date Wed, 07 Apr 2010 11:13:33 GMT

    [ https://issues.apache.org/jira/browse/FELIX-2246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12854418#action_12854418

Felix Meschberger edited comment on FELIX-2246 at 4/7/10 11:11 AM:

> So.. will you commit your changes?

No, because I found a problem with may approach: It causes the plugins to be eagerly accessed
as soon as the top navigation is to be rendered thus preventing the delayed plugin loading.

      was (Author: fmeschbe):
    > So.. will you commit your changes?

> 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: FELIX-2246.patch, lazy-webconsole-plugins.jude, lazy-webconsole-plugins.png,
lazyloading.patch, SimpleWebConsoleFactory.java
> 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.

View raw message