Hi David
On 04/06/2014 11:48, David M Williams
wrote:
> I think that someone with the power to influence the
platform needs
to review how
> we support Guava and other shared
non-singletons
> so that we avoid repeating this mess in Mars.
Hmmm, I think, Ed, I finally
found one
thing to disagree with you about :)
Hopefully we're agreed about trying to avoid this mess in Mars. If
tooling rather than the platform is the solution, fine by me.
I think if you (or others)
carefully
read Bug 427862
you'd find this issue less about "using one version" and more
about using correct versions, in correct ways: a) projects
should
follow "best practices" for componentization (such as, 1) do
not "re-export" bundles simply for a convenience, 2) don't make
"third party" code part of your own API (unless it's one that's
mature, and one that can be well trusted to follow OSGi
principles), 3)
use proper version ranges when exporting or importing packages,
4) take
advantage of "uses clauses", etc.) and b) we need to influence
those third parties who are not using OSGi quite right, and
encourage them
to do so (which has happened, in this case!)
Thanks for pointing back at this. I didn't understand "uses" and got
Marcel to give a better example.
I see that the Manifest editor has a "Calculate Uses" button that
makes my Manifests huge. I don't particularly want to maintain this
manually.
I noticed long ago that MANIFEST.MF as shipped by SimRel bears
little resemblance to my source text. There is a nasty line-wrapping
and every class has an SHA1-Digest added.
If something is rewriting all the Import-Package directives, then
surely it could/should rewrite all the Export-Package directives to
use "uses" too?
Regards
Ed Willink
|