I think you should only ever specify
the execution environment requirements for your own bundle. Otherwise,
you are unnecessarily exposing yourself to details of the prerequisite
bundle that could change. For a similar reason, you don't list the
transitive prerequisites in the require-bundle header; it's just redundant
information that can easily become stale and incorrect over time. Let
the OSGi resolver do its job - if your bundle relies on another bundle
whose constraints aren't satisfied, then it will already mark your bundle
as unresolved. Perhaps I'm missing something, but I don't see any
advantage to propagating the required execution environment to downstream
David M Williams <david_williams@xxxxxxxxxx> Sent by: cross-project-issues-dev-bounces@xxxxxxxxxxx
16/01/2007 07:39 PM
Please respond to
Cross project issues <cross-project-issues-dev@xxxxxxxxxxx>
on EE specification in practice
I just wanted a sanity check with other Europa projects. I first thought
the answer to this was obvious.
Now I'm wondering if I could have been mistaken (as often is the case :)
or if it's ambiguous for others.
I've been assuming that if one of our bundles requires a bundle that requires
J2SE 1.5 EE, then
we should also mark our bundle as requiring J2SE 1.5. (Even though, all
by itelf, it doesn't).
That is, spec'ing what we really need to run correctly, taking pre-reqs
Then, today, someone asked "why" ... if the required bundle
was 'optional', it wouldn't. But even if not optional,
at runtiime, things still won't run (for our bundle), and will simply be
a longer chain of log messages (that one of it's
required bundles wasn't available ... and it woudl be logged as not available
since a sufficient EE wasn't being used).
So in this case, we'd be spec'ing what our own specific code needed, not
So ... just thought I'd ask ... anyone have a clear answer to this ...
am I correct and "its obvious" or have I oversimplified.
I especially want to be sure we are consistent in Europa.
cross-project-issues-dev mailing list