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

Stefan Bischof updated FELIX-5973:
----------------------------------
    Description: 
 

*Description*

1. Felix tries to resolve other bundles, even when the bundle has the 
capability for the requirement by its own

2. Felix resolves bundles, which are only required by bundles that aren't in 
the resolve result

 

 *Example:* [https://github.com/stbischof/ds.resolve]

 

try to resolve {{bundle req}}
 * {{bundle req}} has the requirement {{namespace="ns",name="name"}}

so we look for the same capability {{namespace="ns",name="name"}}
 * bundle cap has the capability {{namespace="ns",name="name"}}
 * but {{bundle cap}} has also a Requirement 
{{osgi.service;filter:="(objectClass=java.lang.Readable)";effective:=active;cardinality:=multiple}}.
 * this could be providet by itsselve 
{{osgi.service;objectClass:List<String>="java.lang.Readable"}} (target property 
of @Reference is not processed)

h3. Issues:
 * it resolves {{bundle capfora}} which provides a capability that is required 
by {{bundle a}} -> provides also the capability that is required from {{bundle 
cap}} ( {{osgi.service;objectClass:List<String>="java.lang.Readable"}}).
 * But in this case {{bundle a}} is not in the resolveresult
 * bundle b is also resolved. (not needet, cap has the needet capability by its 
own)

 

*Reproduce:*
h3. bndtools/eclipse

push the resolve button at ds.resolve/resolveActive.bndrun
h3. commands

 
{code:java}
git clone https://github.com/stbischof/ds.resolve.git
cd ds.resolve
java -jar biz.aQute.bnd-4.1.0.jar clean
java -jar biz.aQute.bnd-4.1.0.jar _par
java -jar biz.aQute.bnd-4.1.0.jar resolve resolve --write 
ds.resolve/resolveActive.bndrun
git diff
{code}
 

 

results:

{\{+-runbundles: \ + ds.resolve.b;version=snapshot,\ + 
ds.resolve.cap;version=snapshot,\ + ds.resolve.capfora;version=snapshot,\ + 
ds.resolve.req;version=snapshot,\ + 
org.apache.felix.scr;version='[2.1.0,2.1.1)' }}
h2.  

  was:
 

*Description*

1. Felix tries to resolve other bundles, even when the bundle has the 
capability for the requirement by its own

2. Felix resolves bundles, which are only required by bundles that aren't in 
the resolve result

 

 *Example:* [https://github.com/stbischof/ds.resolve]

 

try to resolve {{bundle req}}
 * {{bundle req}} has the requirement {{namespace="ns",name="name"}}

so we look for the same capability {{namespace="ns",name="name"}}
 * bundle cap has the capability {{namespace="ns",name="name"}}
 * but {{bundle cap}} has also a Requirement 
{{osgi.service;filter:="(objectClass=java.lang.Readable)";effective:=active;cardinality:=multiple}}.
 * this could be providet by itsselve 
{{osgi.service;objectClass:List<String>="java.lang.Readable"}} (target property 
of @Reference is not processed)

h3. [|https://github.com/stbischof/ds.resolve#issues]Issues:
 * it resolves {{bundle capfora}} which provides a capability that is required 
by {{bundle a}} -> provides also the capability that is required from {{bundle 
cap}} ( {{osgi.service;objectClass:List<String>="java.lang.Readable"}}).
 * But in this case {{bundle a}} is not in the resolveresult
 * bundle b is also resolved. (not needet, cap has the needet capability by its 
own)

 

*Reproduce:*
h3. [|https://github.com/stbischof/ds.resolve#bndtoolseclipse]bndtools/eclipse

push the resolve button at ds.resolve/resolveActive.bndrun
h3. [|https://github.com/stbischof/ds.resolve#commands]commands

{{git clone https://github.com/stbischof/ds.resolve.git cd ds.resolve java -jar 
biz.aQute.bnd-4.1.0.jar clean java -jar biz.aQute.bnd-4.1.0.jar _par java -jar 
biz.aQute.bnd-4.1.0.jar resolve resolve --write ds.resolve/resolveActive.bndrun 
git diff }}
h3. [|https://github.com/stbischof/ds.resolve#results]results:

{{+-runbundles: \ + ds.resolve.b;version=snapshot,\ + 
ds.resolve.cap;version=snapshot,\ + ds.resolve.capfora;version=snapshot,\ + 
ds.resolve.req;version=snapshot,\ + 
org.apache.felix.scr;version='[2.1.0,2.1.1)' }}
h2.  


> fix resolving issues
> --------------------
>
>                 Key: FELIX-5973
>                 URL: https://issues.apache.org/jira/browse/FELIX-5973
>             Project: Felix
>          Issue Type: Bug
>          Components: Resolver
>            Reporter: Stefan Bischof
>            Priority: Major
>
>  
> *Description*
> 1. Felix tries to resolve other bundles, even when the bundle has the 
> capability for the requirement by its own
> 2. Felix resolves bundles, which are only required by bundles that aren't in 
> the resolve result
>  
>  *Example:* [https://github.com/stbischof/ds.resolve]
>  
> try to resolve {{bundle req}}
>  * {{bundle req}} has the requirement {{namespace="ns",name="name"}}
> so we look for the same capability {{namespace="ns",name="name"}}
>  * bundle cap has the capability {{namespace="ns",name="name"}}
>  * but {{bundle cap}} has also a Requirement 
> {{osgi.service;filter:="(objectClass=java.lang.Readable)";effective:=active;cardinality:=multiple}}.
>  * this could be providet by itsselve 
> {{osgi.service;objectClass:List<String>="java.lang.Readable"}} (target 
> property of @Reference is not processed)
> h3. Issues:
>  * it resolves {{bundle capfora}} which provides a capability that is 
> required by {{bundle a}} -> provides also the capability that is required 
> from {{bundle cap}} ( 
> {{osgi.service;objectClass:List<String>="java.lang.Readable"}}).
>  * But in this case {{bundle a}} is not in the resolveresult
>  * bundle b is also resolved. (not needet, cap has the needet capability by 
> its own)
>  
> *Reproduce:*
> h3. bndtools/eclipse
> push the resolve button at ds.resolve/resolveActive.bndrun
> h3. commands
>  
> {code:java}
> git clone https://github.com/stbischof/ds.resolve.git
> cd ds.resolve
> java -jar biz.aQute.bnd-4.1.0.jar clean
> java -jar biz.aQute.bnd-4.1.0.jar _par
> java -jar biz.aQute.bnd-4.1.0.jar resolve resolve --write 
> ds.resolve/resolveActive.bndrun
> git diff
> {code}
>  
>  
> results:
> {\{+-runbundles: \ + ds.resolve.b;version=snapshot,\ + 
> ds.resolve.cap;version=snapshot,\ + ds.resolve.capfora;version=snapshot,\ + 
> ds.resolve.req;version=snapshot,\ + 
> org.apache.felix.scr;version='[2.1.0,2.1.1)' }}
> h2.  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to