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