[
https://issues.apache.org/jira/browse/FELIX-6525?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Carsten Ziegeler closed FELIX-6525.
-----------------------------------
> org.apache.felix.http.servlet-api exports multiple versions with no uses
> ------------------------------------------------------------------------
>
> Key: FELIX-6525
> URL: https://issues.apache.org/jira/browse/FELIX-6525
> Project: Felix
> Issue Type: Improvement
> Components: HTTP Service
> Affects Versions: http.servlet-api-1.2.0
> Reporter: Tom Watson
> Assignee: Carsten Ziegeler
> Priority: Major
> Fix For: http.servlet-api-2.0.0
>
>
> Here is the Export-Package for the bundle
> {quote}
> Export-Package:
>
> javax.servlet;version="2.6";uses:="javax.servlet.annotation,javax.servlet.descriptor",
>
> javax.servlet.annotation;version="2.6";uses:="javax.servlet",javax.servlet.descriptor;version="2.6",
> javax.servlet.http;version="2.6";uses:="javax.servlet",
> javax.servlet;version="3.0",
> javax.servlet.annotation;version="3.0",
> javax.servlet.descriptor;version="3.0",
> javax.servlet.http;version="3.0",
> javax.servlet;version="3.1",
> javax.servlet.annotation;version="3.1",
> javax.servlet.descriptor;version="3.1",
> javax.servlet.http;version="3.1",
> javax.servlet;version="4.0",
> javax.servlet.annotation;version="4.0",
> javax.servlet.descriptor;version="4.0",
> javax.servlet.http;version="4.0"{quote}
> Only the lowest version of the packages is exported with the `uses`
> directive. I believe this will cause some very difficult to debug resolution
> issues. Each export becomes a distinct capability to the resolver. Bundles
> wiring to the 2.6 versions will be constrained by the used packages while
> bundles that can wiring to the higher versions will not be constrained.
> This becomes even more prevalent if a bundle uses the recommended way to
> consume these osgi.contract bundles. There they would import the packages
> without any specified version, but then also put a requirement on the
> osgi.contract for JavaServlet at a specific version. This contract is also
> provided by this servlet-api bundle with the proper uses constraints. But
> now that leaves the resolver with the option to choose any versions exported
> by this bundle. Most likely the framework ResolveContext is going to start
> with the highest version available. And that package will have no uses
> contraints.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)