You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "David Jencks (JIRA)" <ji...@apache.org> on 2012/06/22 22:27:42 UTC

[jira] [Commented] (FELIX-3569) Improve configured method handling for ComponentFactory instances

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

David Jencks commented on FELIX-3569:
-------------------------------------

I've been wondering about this issue.  I thought the reason for the current situation might be that there could be several choices for e.g. bind methods but some might be inaccessible due to missing dynamic imports, but the "next" time they are looked up the dynamic import was satisfied so the method became available.  Does this make sense and is it something we care about?

Would it make sense to cache the e.g. BindMethod objects in the metadata?  I think the metadata is shared among all the component manager instances for a given component "xml"
                
> Improve configured method handling for ComponentFactory instances
> -----------------------------------------------------------------
>
>                 Key: FELIX-3569
>                 URL: https://issues.apache.org/jira/browse/FELIX-3569
>             Project: Felix
>          Issue Type: Improvement
>          Components: Declarative Services (SCR)
>    Affects Versions:  scr-1.6.0
>            Reporter: Felix Meschberger
>
> Currently the ComponentFactory.newInstance method creates a new instance of an extension of the ImmediateComponentManager class to create a new component instance.
> Since configured methods to be called on the component (activator and bind methods) are maintained by these ImmediateComponentManager and its related DependencyManager instances, these methods are looked up over and over again for the same component class.
> In a web application using Sling's Rewriter which leverages ComponentFactory components to postprocess requests this amounts to a considerable number of repeated and needless reflection calls. This is particularly nasty in case of methods not existing.
> The same problem in fact also occurrs for components created due to factory configuration, where for each configuration instance a ComponentManager and its associated DependencyManagers is created to lookup the methods.
> We might want to come up with a centralized method accessor functionality which caches these methods and provides them to any ComponentManager and DependencyManager needing them.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira