You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Thomas Diesler (Created) (JIRA)" <ji...@apache.org> on 2012/03/12 13:58:57 UTC

[jira] [Created] (FELIX-3388) Complex uses resolver failure

Complex uses resolver failure
-----------------------------

                 Key: FELIX-3388
                 URL: https://issues.apache.org/jira/browse/FELIX-3388
             Project: Felix
          Issue Type: Bug
            Reporter: Thomas Diesler


Consider this

        // Bundle-SymbolicName: javax.servlet.api
        // ExportPackage: javax.servlet;version=2.5

        // Bundle-SymbolicName: enterprise.jar
        // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
        // ImportPackage: javax.servlet;resolution:=optional

        // Bundle-SymbolicName: http.service.provider
        // ExportPackage: javax.servlet;version=2.5
        // ExportPackage: org.ops4j.pax.web.service;resolution:=optional;uses:=javax.servlet
        // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
        // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional

Install, resolve and apply results for the above. 
Verify that package requirement javax.servlet wires to javax.servlet.api

        // Bundle-SymbolicName: war.extender.jar
        // ImportPackage: org.ops4j.pax.web.service
        // ImportPackage: javax.servlet;version="[2.3,3.0)"

Install, resolve and apply results for the above. 
Verify that package requirement javax.servlet wires to javax.servlet.api

The test is {here|https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java}


--
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

        

[jira] [Issue Comment Edited] (FELIX-3388) Complex uses resolver failure

Posted by "Thomas Diesler (Issue Comment Edited) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13227577#comment-13227577 ] 

Thomas Diesler edited comment on FELIX-3388 at 3/12/12 2:55 PM:
----------------------------------------------------------------

> Is this not correct? 

Yes, that would be correct. However, the standalone resolver code base, which I'm testing with (https://github.com/tdiesler/felix-resolver/tree/jboss) would return something like

DEBUG: WIRE: [8.0] osgi.wiring.package; (&(osgi.wiring.package=javax.servlet)(version>=2.3.0)(!(version>=3.0.0))) -> [7.0]

For details have look at the attached test.log

> no the environment should NOT return substituted capabilities

My question was about, whether the Environment should even offer the javax.servlet package capability from http.service.provider? 
It knows that http.service.provider imports that package from javax.servlet.api. i.e. should the Environment consider existing wirings when finding providers or should it return the providers based on matching only. In the latter case the Resolver would have to deal with the exiting wirings

What do you say to the potential fix that I provided above?
                
      was (Author: tdiesler):
    > Is this not correct? 

Yes, that would be correct. However, the standalone resolver code base, which I'm testing with (https://github.com/tdiesler/felix-resolver/tree/jboss) would return something like

DEBUG: WIRE: [8.0] osgi.wiring.package; (&(osgi.wiring.package=javax.servlet)(version>=2.3.0)(!(version>=3.0.0))) -> [7.0] 

> no the environment should NOT return substituted capabilities

My question was about, whether the Environment should even offer the javax.servlet package capability from http.service.provider? 
It knows that http.service.provider imports that package from javax.servlet.api. i.e. should the Environment consider existing wirings when finding providers or should it return the providers based on matching only. In the latter case the Resolver would have to deal with the exiting wirings

What do you say to the potential fix that I provided above?
                  
> Complex uses resolver failure
> -----------------------------
>
>                 Key: FELIX-3388
>                 URL: https://issues.apache.org/jira/browse/FELIX-3388
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Diesler
>         Attachments: test.log
>
>
> Consider this
>         // Bundle-SymbolicName: javax.servlet.api
>         // ExportPackage: javax.servlet;version=2.5
>         // Bundle-SymbolicName: enterprise.jar
>         // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
>         // ImportPackage: javax.servlet;resolution:=optional
>         // Bundle-SymbolicName: http.service.provider
>         // ExportPackage: javax.servlet;version=2.5
>         // ExportPackage: org.ops4j.pax.web.service;uses:=javax.servlet
>         // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
>         // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
>         // Bundle-SymbolicName: war.extender.jar
>         // ImportPackage: org.ops4j.pax.web.service
>         // ImportPackage: javax.servlet;version="[2.3,3.0)"
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
> The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java

--
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

        

[jira] [Commented] (FELIX-3388) Complex uses resolver failure

Posted by "Thomas Diesler (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13227913#comment-13227913 ] 

Thomas Diesler commented on FELIX-3388:
---------------------------------------

Ok, then I'll revisit this with the first resolver RI release candidate. 
                
> Complex uses resolver failure
> -----------------------------
>
>                 Key: FELIX-3388
>                 URL: https://issues.apache.org/jira/browse/FELIX-3388
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Diesler
>         Attachments: test.log, test_#2.log
>
>
> Consider this
>         // Bundle-SymbolicName: javax.servlet.api
>         // ExportPackage: javax.servlet;version=2.5
>         // Bundle-SymbolicName: enterprise.jar
>         // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
>         // ImportPackage: javax.servlet;resolution:=optional
>         // Bundle-SymbolicName: http.service.provider
>         // ExportPackage: javax.servlet;version=2.5
>         // ExportPackage: org.ops4j.pax.web.service;uses:=javax.servlet
>         // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
>         // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
>         // Bundle-SymbolicName: war.extender.jar
>         // ImportPackage: org.ops4j.pax.web.service
>         // ImportPackage: javax.servlet;version="[2.3,3.0)"
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
> The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java

--
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

        

[jira] [Updated] (FELIX-3388) Complex uses resolver failure

Posted by "Thomas Diesler (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-3388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Diesler updated FELIX-3388:
----------------------------------

    Description: 
Consider this

        // Bundle-SymbolicName: javax.servlet.api
        // ExportPackage: javax.servlet;version=2.5

        // Bundle-SymbolicName: enterprise.jar
        // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
        // ImportPackage: javax.servlet;resolution:=optional

        // Bundle-SymbolicName: http.service.provider
        // ExportPackage: javax.servlet;version=2.5
        // ExportPackage: org.ops4j.pax.web.service;resolution:=optional;uses:=javax.servlet
        // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
        // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional

Install, resolve and apply results for the above. 
Verify that package requirement javax.servlet wires to javax.servlet.api

        // Bundle-SymbolicName: war.extender.jar
        // ImportPackage: org.ops4j.pax.web.service
        // ImportPackage: javax.servlet;version="[2.3,3.0)"

Install, resolve and apply results for the above. 
Verify that package requirement javax.servlet wires to javax.servlet.api

The test is [here|https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java]


  was:
Consider this

        // Bundle-SymbolicName: javax.servlet.api
        // ExportPackage: javax.servlet;version=2.5

        // Bundle-SymbolicName: enterprise.jar
        // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
        // ImportPackage: javax.servlet;resolution:=optional

        // Bundle-SymbolicName: http.service.provider
        // ExportPackage: javax.servlet;version=2.5
        // ExportPackage: org.ops4j.pax.web.service;resolution:=optional;uses:=javax.servlet
        // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
        // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional

Install, resolve and apply results for the above. 
Verify that package requirement javax.servlet wires to javax.servlet.api

        // Bundle-SymbolicName: war.extender.jar
        // ImportPackage: org.ops4j.pax.web.service
        // ImportPackage: javax.servlet;version="[2.3,3.0)"

Install, resolve and apply results for the above. 
Verify that package requirement javax.servlet wires to javax.servlet.api

The test is {here|https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java}


    
> Complex uses resolver failure
> -----------------------------
>
>                 Key: FELIX-3388
>                 URL: https://issues.apache.org/jira/browse/FELIX-3388
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Diesler
>
> Consider this
>         // Bundle-SymbolicName: javax.servlet.api
>         // ExportPackage: javax.servlet;version=2.5
>         // Bundle-SymbolicName: enterprise.jar
>         // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
>         // ImportPackage: javax.servlet;resolution:=optional
>         // Bundle-SymbolicName: http.service.provider
>         // ExportPackage: javax.servlet;version=2.5
>         // ExportPackage: org.ops4j.pax.web.service;resolution:=optional;uses:=javax.servlet
>         // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
>         // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
>         // Bundle-SymbolicName: war.extender.jar
>         // ImportPackage: org.ops4j.pax.web.service
>         // ImportPackage: javax.servlet;version="[2.3,3.0)"
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
> The test is [here|https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java]

--
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

        

[jira] [Updated] (FELIX-3388) Complex uses resolver failure

Posted by "Thomas Diesler (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-3388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Diesler updated FELIX-3388:
----------------------------------

    Attachment: test_#2.log

Attached test_#2.log for better readability
                
> Complex uses resolver failure
> -----------------------------
>
>                 Key: FELIX-3388
>                 URL: https://issues.apache.org/jira/browse/FELIX-3388
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Diesler
>         Attachments: test.log, test_#2.log
>
>
> Consider this
>         // Bundle-SymbolicName: javax.servlet.api
>         // ExportPackage: javax.servlet;version=2.5
>         // Bundle-SymbolicName: enterprise.jar
>         // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
>         // ImportPackage: javax.servlet;resolution:=optional
>         // Bundle-SymbolicName: http.service.provider
>         // ExportPackage: javax.servlet;version=2.5
>         // ExportPackage: org.ops4j.pax.web.service;uses:=javax.servlet
>         // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
>         // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
>         // Bundle-SymbolicName: war.extender.jar
>         // ImportPackage: org.ops4j.pax.web.service
>         // ImportPackage: javax.servlet;version="[2.3,3.0)"
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
> The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java

--
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

        

[jira] [Updated] (FELIX-3388) Complex uses resolver failure

Posted by "Thomas Diesler (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-3388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Diesler updated FELIX-3388:
----------------------------------

    Description: 
Consider this

        // Bundle-SymbolicName: javax.servlet.api
        // ExportPackage: javax.servlet;version=2.5

        // Bundle-SymbolicName: enterprise.jar
        // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
        // ImportPackage: javax.servlet;resolution:=optional

        // Bundle-SymbolicName: http.service.provider
        // ExportPackage: javax.servlet;version=2.5
        // ExportPackage: org.ops4j.pax.web.service;resolution:=optional;uses:=javax.servlet
        // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
        // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional

Install, resolve and apply results for the above. 
Verify that package requirement javax.servlet wires to javax.servlet.api

        // Bundle-SymbolicName: war.extender.jar
        // ImportPackage: org.ops4j.pax.web.service
        // ImportPackage: javax.servlet;version="[2.3,3.0)"

Install, resolve and apply results for the above. 
Verify that package requirement javax.servlet wires to javax.servlet.api

The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java


  was:
Consider this

        // Bundle-SymbolicName: javax.servlet.api
        // ExportPackage: javax.servlet;version=2.5

        // Bundle-SymbolicName: enterprise.jar
        // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
        // ImportPackage: javax.servlet;resolution:=optional

        // Bundle-SymbolicName: http.service.provider
        // ExportPackage: javax.servlet;version=2.5
        // ExportPackage: org.ops4j.pax.web.service;resolution:=optional;uses:=javax.servlet
        // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
        // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional

Install, resolve and apply results for the above. 
Verify that package requirement javax.servlet wires to javax.servlet.api

        // Bundle-SymbolicName: war.extender.jar
        // ImportPackage: org.ops4j.pax.web.service
        // ImportPackage: javax.servlet;version="[2.3,3.0)"

Install, resolve and apply results for the above. 
Verify that package requirement javax.servlet wires to javax.servlet.api

The test is [here|https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java]


    
> Complex uses resolver failure
> -----------------------------
>
>                 Key: FELIX-3388
>                 URL: https://issues.apache.org/jira/browse/FELIX-3388
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Diesler
>
> Consider this
>         // Bundle-SymbolicName: javax.servlet.api
>         // ExportPackage: javax.servlet;version=2.5
>         // Bundle-SymbolicName: enterprise.jar
>         // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
>         // ImportPackage: javax.servlet;resolution:=optional
>         // Bundle-SymbolicName: http.service.provider
>         // ExportPackage: javax.servlet;version=2.5
>         // ExportPackage: org.ops4j.pax.web.service;resolution:=optional;uses:=javax.servlet
>         // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
>         // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
>         // Bundle-SymbolicName: war.extender.jar
>         // ImportPackage: org.ops4j.pax.web.service
>         // ImportPackage: javax.servlet;version="[2.3,3.0)"
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
> The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java

--
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

        

[jira] [Commented] (FELIX-3388) Complex uses resolver failure

Posted by "Richard S. Hall (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13227585#comment-13227585 ] 

Richard S. Hall commented on FELIX-3388:
----------------------------------------

For unresolved bundles, the environment may return any of the capabilities since they are all potential matches. However, for resolved bundles the environment will never return Export-Package capabilities that have been substituted, because they are no longer viable candidates.

Regarding your patch, I say it is not really necessary since it apparently is trying to cope with a faulty environment that is returning substituted capabilities (i.e., invalid candidates). Technically, though, it probably wouldn't do any harm, it is just unnecessary if they environment does its job.
                
> Complex uses resolver failure
> -----------------------------
>
>                 Key: FELIX-3388
>                 URL: https://issues.apache.org/jira/browse/FELIX-3388
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Diesler
>         Attachments: test.log
>
>
> Consider this
>         // Bundle-SymbolicName: javax.servlet.api
>         // ExportPackage: javax.servlet;version=2.5
>         // Bundle-SymbolicName: enterprise.jar
>         // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
>         // ImportPackage: javax.servlet;resolution:=optional
>         // Bundle-SymbolicName: http.service.provider
>         // ExportPackage: javax.servlet;version=2.5
>         // ExportPackage: org.ops4j.pax.web.service;uses:=javax.servlet
>         // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
>         // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
>         // Bundle-SymbolicName: war.extender.jar
>         // ImportPackage: org.ops4j.pax.web.service
>         // ImportPackage: javax.servlet;version="[2.3,3.0)"
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
> The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java

--
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

        

[jira] [Commented] (FELIX-3388) Complex uses resolver failure

Posted by "Thomas Diesler (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13227487#comment-13227487 ] 

Thomas Diesler commented on FELIX-3388:
---------------------------------------

When http.service.provider is resolved already and wires to javax.servlet.api  for package javax.servlet should the Environment on subsequent findProviders() calls even offer the javax.servlet package capability from the http.service.provider? 
                
> Complex uses resolver failure
> -----------------------------
>
>                 Key: FELIX-3388
>                 URL: https://issues.apache.org/jira/browse/FELIX-3388
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Diesler
>
> Consider this
>         // Bundle-SymbolicName: javax.servlet.api
>         // ExportPackage: javax.servlet;version=2.5
>         // Bundle-SymbolicName: enterprise.jar
>         // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
>         // ImportPackage: javax.servlet;resolution:=optional
>         // Bundle-SymbolicName: http.service.provider
>         // ExportPackage: javax.servlet;version=2.5
>         // ExportPackage: org.ops4j.pax.web.service;resolution:=optional;uses:=javax.servlet
>         // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
>         // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
>         // Bundle-SymbolicName: war.extender.jar
>         // ImportPackage: org.ops4j.pax.web.service
>         // ImportPackage: javax.servlet;version="[2.3,3.0)"
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
> The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java

--
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

        

[jira] [Issue Comment Edited] (FELIX-3388) Complex uses resolver failure

Posted by "Richard S. Hall (Issue Comment Edited) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13227761#comment-13227761 ] 

Richard S. Hall edited comment on FELIX-3388 at 3/12/12 6:44 PM:
-----------------------------------------------------------------

I'm not exactly sure what you are telling me, but if you are saying that it is failing on the separately packaged resolver in my sandbox, then that's possible. Not sure. You should test it on the real framework, since the separate resolver is just a throw away. When I create a new separate resolver, I'll do it from the framework code base, not from that existing one.
                
      was (Author: rickhall):
    I'm not exactly sure what you are telling me, but if you are saying that it is failing on the on the separately packaged resolver, then that's possible. Not sure. You should test it on the real framework, since the separate resolver is just a throw away. When I create a new separate resolver, I'll do it from the framework code base, not from that existing one.
                  
> Complex uses resolver failure
> -----------------------------
>
>                 Key: FELIX-3388
>                 URL: https://issues.apache.org/jira/browse/FELIX-3388
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Diesler
>         Attachments: test.log, test_#2.log
>
>
> Consider this
>         // Bundle-SymbolicName: javax.servlet.api
>         // ExportPackage: javax.servlet;version=2.5
>         // Bundle-SymbolicName: enterprise.jar
>         // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
>         // ImportPackage: javax.servlet;resolution:=optional
>         // Bundle-SymbolicName: http.service.provider
>         // ExportPackage: javax.servlet;version=2.5
>         // ExportPackage: org.ops4j.pax.web.service;uses:=javax.servlet
>         // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
>         // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
>         // Bundle-SymbolicName: war.extender.jar
>         // ImportPackage: org.ops4j.pax.web.service
>         // ImportPackage: javax.servlet;version="[2.3,3.0)"
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
> The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java

--
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

        

[jira] [Commented] (FELIX-3388) Complex uses resolver failure

Posted by "Thomas Diesler (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13227542#comment-13227542 ] 

Thomas Diesler commented on FELIX-3388:
---------------------------------------

Is this the right fix?

https://github.com/tdiesler/felix-resolver/commit/eecf49f57230c1bfeff9c9d8fb0624fb2305c1c1
                
> Complex uses resolver failure
> -----------------------------
>
>                 Key: FELIX-3388
>                 URL: https://issues.apache.org/jira/browse/FELIX-3388
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Diesler
>         Attachments: test.log
>
>
> Consider this
>         // Bundle-SymbolicName: javax.servlet.api
>         // ExportPackage: javax.servlet;version=2.5
>         // Bundle-SymbolicName: enterprise.jar
>         // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
>         // ImportPackage: javax.servlet;resolution:=optional
>         // Bundle-SymbolicName: http.service.provider
>         // ExportPackage: javax.servlet;version=2.5
>         // ExportPackage: org.ops4j.pax.web.service;uses:=javax.servlet
>         // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
>         // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
>         // Bundle-SymbolicName: war.extender.jar
>         // ImportPackage: org.ops4j.pax.web.service
>         // ImportPackage: javax.servlet;version="[2.3,3.0)"
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
> The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java

--
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

        

[jira] [Issue Comment Edited] (FELIX-3388) Complex uses resolver failure

Posted by "Richard S. Hall (Issue Comment Edited) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13227585#comment-13227585 ] 

Richard S. Hall edited comment on FELIX-3388 at 3/12/12 3:02 PM:
-----------------------------------------------------------------

For unresolved bundles, the environment may return any of the capabilities since they are all potential matches. However, for resolved bundles the environment will never return Export-Package capabilities that have been substituted, because they are no longer viable candidates.

Regarding your patch, I say it is not really necessary since it apparently is trying to cope with a faulty environment that is returning substituted capabilities (i.e., invalid candidates). Technically, though, it probably wouldn't do any harm, it is just unnecessary if the environment does its job.
                
      was (Author: rickhall):
    For unresolved bundles, the environment may return any of the capabilities since they are all potential matches. However, for resolved bundles the environment will never return Export-Package capabilities that have been substituted, because they are no longer viable candidates.

Regarding your patch, I say it is not really necessary since it apparently is trying to cope with a faulty environment that is returning substituted capabilities (i.e., invalid candidates). Technically, though, it probably wouldn't do any harm, it is just unnecessary if they environment does its job.
                  
> Complex uses resolver failure
> -----------------------------
>
>                 Key: FELIX-3388
>                 URL: https://issues.apache.org/jira/browse/FELIX-3388
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Diesler
>         Attachments: test.log
>
>
> Consider this
>         // Bundle-SymbolicName: javax.servlet.api
>         // ExportPackage: javax.servlet;version=2.5
>         // Bundle-SymbolicName: enterprise.jar
>         // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
>         // ImportPackage: javax.servlet;resolution:=optional
>         // Bundle-SymbolicName: http.service.provider
>         // ExportPackage: javax.servlet;version=2.5
>         // ExportPackage: org.ops4j.pax.web.service;uses:=javax.servlet
>         // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
>         // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
>         // Bundle-SymbolicName: war.extender.jar
>         // ImportPackage: org.ops4j.pax.web.service
>         // ImportPackage: javax.servlet;version="[2.3,3.0)"
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
> The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java

--
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

        

[jira] [Commented] (FELIX-3388) Complex uses resolver failure

Posted by "Richard S. Hall (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13227564#comment-13227564 ] 

Richard S. Hall commented on FELIX-3388:
----------------------------------------

I deleted the related link, since it isn't really related at all to packaging the resolver separately, other than they both are related to the resolver.

Perhaps I'm not following your steps correctly, but this is what I see:

g! lb
START LEVEL 1
   ID|State      |Level|Name
    0|Active     |    0|System Bundle (4.1.0.SNAPSHOT)
    1|Active     |    1|Apache Felix Bundle Repository (1.6.6)
    2|Active     |    1|Apache Felix Gogo Command (0.12.0)
    3|Active     |    1|Apache Felix Gogo Runtime (0.10.0)
    4|Active     |    1|Apache Felix Gogo Shell (0.10.0)
    5|Installed  |    1|javax.servlet.api (0.0.0)
    6|Installed  |    1|enterprise.jar (0.0.0)
    7|Installed  |    1|http.service.provider (0.0.0)
    8|Installed  |    1|war.extender.jar (0.0.0)
g! resolve 5 6 7
DEBUG: WIRE: [6.0] osgi.wiring.package; (osgi.wiring.package=javax.servlet) -> [5.0]
DEBUG: WIRE: [7.0] osgi.wiring.package; (&(osgi.wiring.package=javax.servlet)(version>=2.3.0)(!(version>=2.6.0))) -> [5.0]
g! resolve 8
DEBUG: WIRE: [8.0] osgi.wiring.package; (osgi.wiring.package=org.ops4j.pax.web.service) -> [7.0]
DEBUG: WIRE: [8.0] osgi.wiring.package; (&(osgi.wiring.package=javax.servlet)(version>=2.3.0)(!(version>=3.0.0))) -> [5.0]
g! 

Is this not correct?

And to answer your other question, no the environment should NOT return substituted capabilities since, by definition, they do not exist anymore.
                
> Complex uses resolver failure
> -----------------------------
>
>                 Key: FELIX-3388
>                 URL: https://issues.apache.org/jira/browse/FELIX-3388
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Diesler
>         Attachments: test.log
>
>
> Consider this
>         // Bundle-SymbolicName: javax.servlet.api
>         // ExportPackage: javax.servlet;version=2.5
>         // Bundle-SymbolicName: enterprise.jar
>         // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
>         // ImportPackage: javax.servlet;resolution:=optional
>         // Bundle-SymbolicName: http.service.provider
>         // ExportPackage: javax.servlet;version=2.5
>         // ExportPackage: org.ops4j.pax.web.service;uses:=javax.servlet
>         // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
>         // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
>         // Bundle-SymbolicName: war.extender.jar
>         // ImportPackage: org.ops4j.pax.web.service
>         // ImportPackage: javax.servlet;version="[2.3,3.0)"
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
> The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java

--
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

        

[jira] [Commented] (FELIX-3388) Complex uses resolver failure

Posted by "Richard S. Hall (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13227761#comment-13227761 ] 

Richard S. Hall commented on FELIX-3388:
----------------------------------------

I'm not exactly sure what you are telling me, but if you are saying that it is failing on the on the separately packaged resolver, then that's possible. Not sure. You should test it on the real framework, since the separate resolver is just a throw away. When I create a new separate resolver, I'll do it from the framework code base, not from that existing one.
                
> Complex uses resolver failure
> -----------------------------
>
>                 Key: FELIX-3388
>                 URL: https://issues.apache.org/jira/browse/FELIX-3388
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Diesler
>         Attachments: test.log, test_#2.log
>
>
> Consider this
>         // Bundle-SymbolicName: javax.servlet.api
>         // ExportPackage: javax.servlet;version=2.5
>         // Bundle-SymbolicName: enterprise.jar
>         // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
>         // ImportPackage: javax.servlet;resolution:=optional
>         // Bundle-SymbolicName: http.service.provider
>         // ExportPackage: javax.servlet;version=2.5
>         // ExportPackage: org.ops4j.pax.web.service;uses:=javax.servlet
>         // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
>         // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
>         // Bundle-SymbolicName: war.extender.jar
>         // ImportPackage: org.ops4j.pax.web.service
>         // ImportPackage: javax.servlet;version="[2.3,3.0)"
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
> The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java

--
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

        

[jira] [Updated] (FELIX-3388) Complex uses resolver failure

Posted by "Thomas Diesler (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-3388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Diesler updated FELIX-3388:
----------------------------------

    Attachment: test.log

trace log attached
                
> Complex uses resolver failure
> -----------------------------
>
>                 Key: FELIX-3388
>                 URL: https://issues.apache.org/jira/browse/FELIX-3388
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Diesler
>         Attachments: test.log
>
>
> Consider this
>         // Bundle-SymbolicName: javax.servlet.api
>         // ExportPackage: javax.servlet;version=2.5
>         // Bundle-SymbolicName: enterprise.jar
>         // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
>         // ImportPackage: javax.servlet;resolution:=optional
>         // Bundle-SymbolicName: http.service.provider
>         // ExportPackage: javax.servlet;version=2.5
>         // ExportPackage: org.ops4j.pax.web.service;uses:=javax.servlet
>         // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
>         // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
>         // Bundle-SymbolicName: war.extender.jar
>         // ImportPackage: org.ops4j.pax.web.service
>         // ImportPackage: javax.servlet;version="[2.3,3.0)"
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
> The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java

--
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

        

[jira] [Issue Comment Edited] (FELIX-3388) Complex uses resolver failure

Posted by "Thomas Diesler (Issue Comment Edited) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13227577#comment-13227577 ] 

Thomas Diesler edited comment on FELIX-3388 at 3/12/12 2:48 PM:
----------------------------------------------------------------

> Is this not correct? 

Yes, that would be correct. However, the standalone resolver code base, which I'm testing with (https://github.com/tdiesler/felix-resolver/tree/jboss) would return something like

DEBUG: WIRE: [8.0] osgi.wiring.package; (&(osgi.wiring.package=javax.servlet)(version>=2.3.0)(!(version>=3.0.0))) -> [7.0] 

> no the environment should NOT return substituted capabilities

My question was about, whether the Environment should even offer the javax.servlet package capability from http.service.provider? 
It knows that http.service.provider imports that package from javax.servlet.api. i.e. should the Environment consider existing wirings when finding providers or should it return the providers based on matching only. In the latter case the Resolver would have to deal with the exiting wirings

What do you say to the potential fix that I provided above?
                
      was (Author: tdiesler):
    > Is this not correct? 

Yes, that would be correct. However, the standalone resolver code base, which I'm testing with would return something like

DEBUG: WIRE: [8.0] osgi.wiring.package; (&(osgi.wiring.package=javax.servlet)(version>=2.3.0)(!(version>=3.0.0))) -> [7.0] 

> no the environment should NOT return substituted capabilities

My question was about, whether the Environment should even offer the javax.servlet package capability from http.service.provider? 
It knows that http.service.provider imports that package from javax.servlet.api. i.e. should the Environment consider existing wirings when finding providers or should it return the providers based on matching only. In the latter case the Resolver would have to deal with the exiting wirings

What do you say to the potential fix that I provided above?
                  
> Complex uses resolver failure
> -----------------------------
>
>                 Key: FELIX-3388
>                 URL: https://issues.apache.org/jira/browse/FELIX-3388
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Diesler
>         Attachments: test.log
>
>
> Consider this
>         // Bundle-SymbolicName: javax.servlet.api
>         // ExportPackage: javax.servlet;version=2.5
>         // Bundle-SymbolicName: enterprise.jar
>         // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
>         // ImportPackage: javax.servlet;resolution:=optional
>         // Bundle-SymbolicName: http.service.provider
>         // ExportPackage: javax.servlet;version=2.5
>         // ExportPackage: org.ops4j.pax.web.service;uses:=javax.servlet
>         // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
>         // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
>         // Bundle-SymbolicName: war.extender.jar
>         // ImportPackage: org.ops4j.pax.web.service
>         // ImportPackage: javax.servlet;version="[2.3,3.0)"
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
> The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java

--
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

        

[jira] [Updated] (FELIX-3388) Complex uses resolver failure

Posted by "Thomas Diesler (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-3388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Diesler updated FELIX-3388:
----------------------------------

    Description: 
Consider this

        // Bundle-SymbolicName: javax.servlet.api
        // ExportPackage: javax.servlet;version=2.5

        // Bundle-SymbolicName: enterprise.jar
        // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
        // ImportPackage: javax.servlet;resolution:=optional

        // Bundle-SymbolicName: http.service.provider
        // ExportPackage: javax.servlet;version=2.5
        // ExportPackage: org.ops4j.pax.web.service;uses:=javax.servlet
        // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
        // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional

Install, resolve and apply results for the above. 
Verify that package requirement javax.servlet wires to javax.servlet.api

        // Bundle-SymbolicName: war.extender.jar
        // ImportPackage: org.ops4j.pax.web.service
        // ImportPackage: javax.servlet;version="[2.3,3.0)"

Install, resolve and apply results for the above. 
Verify that package requirement javax.servlet wires to javax.servlet.api

The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java


  was:
Consider this

        // Bundle-SymbolicName: javax.servlet.api
        // ExportPackage: javax.servlet;version=2.5

        // Bundle-SymbolicName: enterprise.jar
        // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
        // ImportPackage: javax.servlet;resolution:=optional

        // Bundle-SymbolicName: http.service.provider
        // ExportPackage: javax.servlet;version=2.5
        // ExportPackage: org.ops4j.pax.web.service;resolution:=optional;uses:=javax.servlet
        // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
        // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional

Install, resolve and apply results for the above. 
Verify that package requirement javax.servlet wires to javax.servlet.api

        // Bundle-SymbolicName: war.extender.jar
        // ImportPackage: org.ops4j.pax.web.service
        // ImportPackage: javax.servlet;version="[2.3,3.0)"

Install, resolve and apply results for the above. 
Verify that package requirement javax.servlet wires to javax.servlet.api

The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java


    
> Complex uses resolver failure
> -----------------------------
>
>                 Key: FELIX-3388
>                 URL: https://issues.apache.org/jira/browse/FELIX-3388
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Diesler
>
> Consider this
>         // Bundle-SymbolicName: javax.servlet.api
>         // ExportPackage: javax.servlet;version=2.5
>         // Bundle-SymbolicName: enterprise.jar
>         // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
>         // ImportPackage: javax.servlet;resolution:=optional
>         // Bundle-SymbolicName: http.service.provider
>         // ExportPackage: javax.servlet;version=2.5
>         // ExportPackage: org.ops4j.pax.web.service;uses:=javax.servlet
>         // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
>         // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
>         // Bundle-SymbolicName: war.extender.jar
>         // ImportPackage: org.ops4j.pax.web.service
>         // ImportPackage: javax.servlet;version="[2.3,3.0)"
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
> The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java

--
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

        

[jira] [Commented] (FELIX-3388) Complex uses resolver failure

Posted by "Thomas Diesler (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13227577#comment-13227577 ] 

Thomas Diesler commented on FELIX-3388:
---------------------------------------

> Is this not correct? 

Yes, that would be correct. However, the standalone resolver code base, which I'm testing with would return something like

DEBUG: WIRE: [8.0] osgi.wiring.package; (&(osgi.wiring.package=javax.servlet)(version>=2.3.0)(!(version>=3.0.0))) -> [7.0] 

> no the environment should NOT return substituted capabilities

My question was about, whether the Environment should even offer the javax.servlet package capability from http.service.provider? 
It knows that http.service.provider imports that package from javax.servlet.api. i.e. should the Environment consider existing wirings when finding providers or should it return the providers based on matching only. In the latter case the Resolver would have to deal with the exiting wirings

What do you say to the potential fix that I provided above?
                
> Complex uses resolver failure
> -----------------------------
>
>                 Key: FELIX-3388
>                 URL: https://issues.apache.org/jira/browse/FELIX-3388
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Diesler
>         Attachments: test.log
>
>
> Consider this
>         // Bundle-SymbolicName: javax.servlet.api
>         // ExportPackage: javax.servlet;version=2.5
>         // Bundle-SymbolicName: enterprise.jar
>         // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
>         // ImportPackage: javax.servlet;resolution:=optional
>         // Bundle-SymbolicName: http.service.provider
>         // ExportPackage: javax.servlet;version=2.5
>         // ExportPackage: org.ops4j.pax.web.service;uses:=javax.servlet
>         // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
>         // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
>         // Bundle-SymbolicName: war.extender.jar
>         // ImportPackage: org.ops4j.pax.web.service
>         // ImportPackage: javax.servlet;version="[2.3,3.0)"
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
> The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java

--
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

        

[jira] [Commented] (FELIX-3388) Complex uses resolver failure

Posted by "Thomas Diesler (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13227497#comment-13227497 ] 

Thomas Diesler commented on FELIX-3388:
---------------------------------------

The problem is possibly in the USED clause of the war extender

{code}
TRACE [org.jboss.osgi.resolver] (main) AbstractResource[war.extender.jar:0.0.0] (UNRESOLVED)
TRACE [org.jboss.osgi.resolver] (main)   EXPORTED
TRACE [org.jboss.osgi.resolver] (main)   IMPORTED
TRACE [org.jboss.osgi.resolver] (main)     javax.servlet - [AbstractResource[javax.servlet.api:0.0.0].javax.servlet BLAMED ON [AbstractPackageRequirement[atts={osgi.wiring.package=javax.servlet, version=[2.3,3.0)},[war.extender.jar:0.0.0]]]]
TRACE [org.jboss.osgi.resolver] (main)     org.ops4j.pax.web.service - [AbstractResource[http.service.provider:0.0.0].org.ops4j.pax.web.service BLAMED ON [AbstractPackageRequirement[atts={osgi.wiring.package=org.ops4j.pax.web.service},[war.extender.jar:0.0.0]]]]
TRACE [org.jboss.osgi.resolver] (main)   REQUIRED
TRACE [org.jboss.osgi.resolver] (main)   USED
TRACE [org.jboss.osgi.resolver] (main)     javax.servlet - [AbstractResource[http.service.provider:0.0.0].javax.servlet BLAMED ON [AbstractPackageRequirement[atts={osgi.wiring.package=org.ops4j.pax.web.service},[war.extender.jar:0.0.0]]]]
{code}

it points to the http.service.provider although that is substituted with javax.servlet from javax.servlet.api bundle

                
> Complex uses resolver failure
> -----------------------------
>
>                 Key: FELIX-3388
>                 URL: https://issues.apache.org/jira/browse/FELIX-3388
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Diesler
>         Attachments: test.log
>
>
> Consider this
>         // Bundle-SymbolicName: javax.servlet.api
>         // ExportPackage: javax.servlet;version=2.5
>         // Bundle-SymbolicName: enterprise.jar
>         // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
>         // ImportPackage: javax.servlet;resolution:=optional
>         // Bundle-SymbolicName: http.service.provider
>         // ExportPackage: javax.servlet;version=2.5
>         // ExportPackage: org.ops4j.pax.web.service;uses:=javax.servlet
>         // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
>         // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
>         // Bundle-SymbolicName: war.extender.jar
>         // ImportPackage: org.ops4j.pax.web.service
>         // ImportPackage: javax.servlet;version="[2.3,3.0)"
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
> The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java

--
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

        

[jira] [Commented] (FELIX-3388) Complex uses resolver failure

Posted by "Thomas Diesler (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13227656#comment-13227656 ] 

Thomas Diesler commented on FELIX-3388:
---------------------------------------

With this alternative aproach, which I tested first, I get 

DEBUG [org.jboss.osgi.resolver.v2.FelixResolver] (main) Resolve: [AbstractResource[war.extender.jar:0.0.0]], null
DEBUG [org.jboss.osgi.resolver.v2.spi.AbstractEnvironment] (main) findProviders: AbstractPackageRequirement[atts={osgi.wiring.package=org.ops4j.pax.web.service},[war.extender.jar:0.0.0]] => [AbstractPackageCapability[atts={osgi.wiring.package=org.ops4j.pax.web.service},dirs={uses=javax.servlet},[http.service.provider:0.0.0]]]
DEBUG [org.jboss.osgi.resolver.v2.spi.AbstractEnvironment] (main) findProviders: AbstractPackageRequirement[atts={osgi.wiring.package=javax.servlet, version=[2.3,3.0)},[war.extender.jar:0.0.0]] => [AbstractPackageCapability[atts={osgi.wiring.package=javax.servlet, version=2.5},[javax.servlet.api:0.0.0]]]

Note, that the environment now finds only one provider for javax.servlet

This is followed by

TRACE [org.jboss.osgi.resolver] (main) +++ PACKAGE SPACES START +++
TRACE [org.jboss.osgi.resolver] (main) AbstractResource[javax.servlet.api:0.0.0] (RESOLVED)
TRACE [org.jboss.osgi.resolver] (main)   EXPORTED
TRACE [org.jboss.osgi.resolver] (main)     javax.servlet - AbstractResource[javax.servlet.api:0.0.0].javax.servlet NO BLAME
TRACE [org.jboss.osgi.resolver] (main)   IMPORTED
TRACE [org.jboss.osgi.resolver] (main)   REQUIRED
TRACE [org.jboss.osgi.resolver] (main)   USED
TRACE [org.jboss.osgi.resolver] (main) AbstractResource[http.service.provider:0.0.0] (RESOLVED)
TRACE [org.jboss.osgi.resolver] (main)   EXPORTED
TRACE [org.jboss.osgi.resolver] (main)     javax.servlet - AbstractResource[http.service.provider:0.0.0].javax.servlet NO BLAME
TRACE [org.jboss.osgi.resolver] (main)     org.ops4j.pax.web.service - AbstractResource[http.service.provider:0.0.0].org.ops4j.pax.web.service NO BLAME
TRACE [org.jboss.osgi.resolver] (main)     org.osgi.service.http - AbstractResource[http.service.provider:0.0.0].org.osgi.service.http NO BLAME
TRACE [org.jboss.osgi.resolver] (main)   IMPORTED
TRACE [org.jboss.osgi.resolver] (main)     javax.servlet - [AbstractResource[javax.servlet.api:0.0.0].javax.servlet BLAMED ON [AbstractPackageRequirement[atts={osgi.wiring.package=javax.servlet, version=[2.3.0,2.6.0)},dirs={resolution=optional},[http.service.provider:0.0.0]]]]
TRACE [org.jboss.osgi.resolver] (main)   REQUIRED
TRACE [org.jboss.osgi.resolver] (main)   USED
TRACE [org.jboss.osgi.resolver] (main) AbstractResource[war.extender.jar:0.0.0] (UNRESOLVED)
TRACE [org.jboss.osgi.resolver] (main)   EXPORTED
TRACE [org.jboss.osgi.resolver] (main)   IMPORTED
TRACE [org.jboss.osgi.resolver] (main)     javax.servlet - [AbstractResource[javax.servlet.api:0.0.0].javax.servlet BLAMED ON [AbstractPackageRequirement[atts={osgi.wiring.package=javax.servlet, version=[2.3,3.0)},[war.extender.jar:0.0.0]]]]
TRACE [org.jboss.osgi.resolver] (main)     org.ops4j.pax.web.service - [AbstractResource[http.service.provider:0.0.0].org.ops4j.pax.web.service BLAMED ON [AbstractPackageRequirement[atts={osgi.wiring.package=org.ops4j.pax.web.service},[war.extender.jar:0.0.0]]]]
TRACE [org.jboss.osgi.resolver] (main)   REQUIRED
TRACE [org.jboss.osgi.resolver] (main)   USED
TRACE [org.jboss.osgi.resolver] (main)     javax.servlet - [AbstractResource[http.service.provider:0.0.0].javax.servlet BLAMED ON [AbstractPackageRequirement[atts={osgi.wiring.package=org.ops4j.pax.web.service},[war.extender.jar:0.0.0]]]]
TRACE [org.jboss.osgi.resolver] (main) +++ PACKAGE SPACES END +++
DEBUG [org.jboss.osgi.resolver] (main) Candidate permutation failed due to a conflict between imports; will try another if possible.: org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve bundle revision war.extender.jar [AbstractResource[war.extender.jar:0.0.0]] because it is exposed to package 'javax.servlet' from bundle revisions javax.servlet.api [AbstractResource[javax.servlet.api:0.0.0]] and http.service.provider [AbstractResource[http.service.provider:0.0.0]] via two dependency chains.

Chain 1:
  war.extender.jar [AbstractResource[war.extender.jar:0.0.0]]
    import: null
     |
    export: osgi.wiring.package=javax.servlet
  javax.servlet.api [AbstractResource[javax.servlet.api:0.0.0]]

Chain 2:
  war.extender.jar [AbstractResource[war.extender.jar:0.0.0]]
    import: null
     |
    export: osgi.wiring.package=org.ops4j.pax.web.service; uses:=javax.servlet
    export: osgi.wiring.package=javax.servlet
  http.service.provider [AbstractResource[http.service.provider:0.0.0]]
	at org.apache.felix.resolver.impl.ResolverImpl.checkPackageSpaceConsistency(ResolverImpl.java:1047)
	at org.apache.felix.resolver.impl.ResolverImpl.resolve(ResolverImpl.java:226)
	at org.apache.felix.resolver.impl.ResolverImpl.resolve(ResolverImpl.java:83)
	at org.jboss.osgi.resolver.v2.FelixResolver.resolve(FelixResolver.java:60)
	at org.jboss.test.osgi.resolver.UsesDirectiveResolverTest.testMultipleProviders(UsesDirectiveResolverTest.java:160)

Note, that we have 

TRACE [org.jboss.osgi.resolver] (main)   USED
TRACE [org.jboss.osgi.resolver] (main)     javax.servlet - [AbstractResource[http.service.provider:0.0.0].javax.servlet BLAMED ON [AbstractPackageRequirement[atts={osgi.wiring.package=org.ops4j.pax.web.service},[war.extender.jar:0.0.0]]]]

which points to the http.service.provider. 

It seems that candSourcePkgs.m_exportedPkgs should not contain an entry for usedPkgName if candSourcePkgs.m_importedPkgs also does.
                
> Complex uses resolver failure
> -----------------------------
>
>                 Key: FELIX-3388
>                 URL: https://issues.apache.org/jira/browse/FELIX-3388
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Diesler
>         Attachments: test.log
>
>
> Consider this
>         // Bundle-SymbolicName: javax.servlet.api
>         // ExportPackage: javax.servlet;version=2.5
>         // Bundle-SymbolicName: enterprise.jar
>         // ExportPackage: org.osgi.service.http;version=1.2.1;uses:=javax.servlet
>         // ImportPackage: javax.servlet;resolution:=optional
>         // Bundle-SymbolicName: http.service.provider
>         // ExportPackage: javax.servlet;version=2.5
>         // ExportPackage: org.ops4j.pax.web.service;uses:=javax.servlet
>         // ExportPackage: org.osgi.service.http;version=1.2.0;uses:=javax.servlet
>         // ImportPackage: javax.servlet;version="[2.3.0,2.6.0)";resolution:=optional
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
>         // Bundle-SymbolicName: war.extender.jar
>         // ImportPackage: org.ops4j.pax.web.service
>         // ImportPackage: javax.servlet;version="[2.3,3.0)"
> Install, resolve and apply results for the above. 
> Verify that package requirement javax.servlet wires to javax.servlet.api
> The test is here: https://github.com/tdiesler/jbosgi-resolver/blob/master/felix/src/test/java/org/jboss/test/osgi/resolver/UsesDirectiveResolverTest.java

--
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