[ 
https://issues.apache.org/jira/browse/FELIX-4158?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pierre De Rop resolved FELIX-4158.
----------------------------------
       Resolution: Fixed
    Fix Version/s: dependencymanager-4.0.0

Committed a patch in revision 1636069 for this issue, and also the 
corresponding test case in [1].

The component implementation class name and the provided services was already 
returned by ComponentDeclaration.getClassName() and 
ComponentDeclaration.getServices() methods.

For the dependency class name and dependency filter, I just added the following 
signatures in the ComponentDependencyDeclaration interface:

- ComponentDependencyDeclaration.getSimpleName(): only returns the dependency 
name (it does not include the filters, unlike the getName() method does).

- ComponentDependencyDeclaration.getFilter(): returns the dependency filter.

(see the FELIX4158_DependencyDeclarationTest for examples).

[1] 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/FELIX4158_DependencyDeclarationTest.java

> ComponentDeclaration should give access to component information
> ----------------------------------------------------------------
>
>                 Key: FELIX-4158
>                 URL: https://issues.apache.org/jira/browse/FELIX-4158
>             Project: Felix
>          Issue Type: Improvement
>          Components: Dependency Manager
>            Reporter: Arjun Panday
>            Priority: Minor
>             Fix For: dependencymanager-4.0.0
>
>
> DependencyManager has a ComponentDeclaration and 
> ComponentDependencyDeclaration interface to get information about the 
> components it manages, but these interfaces don't have a explicit access to 
> the implementation class, the exposed interfaces or the dependency filter.
> For now, one can only parse Component.toString to find the services and 
> implementation (assuming the implementation doesn't override its toString 
> method), and parse ComponentDependencyDeclaration.getName to find the 
> requested service and filter. This kind of parsing is naturally very unsafe 
> and dependent on the implementation details.
> I suggest to add the following methods:
> ComponentDeclaration.getImplementation should return the implementation class 
> name
> ComponentDeclaration.getServices should return a list of interfaces declared 
> by the component
> ComponentDependencyDeclaration.getService should return the requested service 
> name (interface)
> ComponentDependencyDeclaration.getFilter should return the associated filter
> Although minor, these changes would be very useful. (My immediate need is for 
> the improvement of the service diagnostics webconsole plugin)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to