Hi Eric,
I added your email text to the bug and followed up with comments.
Shaun
Eric Gwin wrote:
Hi all,
With Galileo almost released, I'm once again looking at my 2.0 bugs. My
only critical bug is
https://bugs.eclipse.org/bugs/show_bug.cgi?id=265763, involving
switching to using bnd to generate all OSGi manifests automatically.
I checked in some proof-of-concept work in the JPA component yesterday.
Usually I'd wait, but I've been having some issues with hardware and
didn't want to lose it, also I wanted folks to be able to take a look
at it if they wanted to. To do so you'd need to download a bnd jar, put
it in your "buildsystem" dir, run an update, run a full build (run
"ant" from the root) followed by "ant bnd" from
org.eclipse.persistence.jpa.
I still need to fix-up the bundle bnd file to create a fully
comparable bundle, but the manifest generation is basically complete.
There are also several advantages to using the tool:
- In addition, to being usable by ant, bnd can be used as an eclipse
plugin, so we could move away from checking in any generated manifest.
- It looks fully capable of replacing the current jar and manifest
generation strategy, while generating very specific manifests.
- being automated, new dependencies are picked up without direct
developer intervention (except in the case of adding a new third-party
dependency)
However, to adopt this there are a few departures from our current
manifest "strategy":
- the manifests are less readable
- bnd generates full "uses" directive info. This makes the exports
very difficult to visually parse without formating the manifest.
- bnd reorders all the headers, in a non-intuitive order (at least
to me).
- Bnd reports a warning for any "Requires-bundles" header, saying it
may mask errors or generate false errors, it then also errors out with
unresolved dependencies unless allowed to resolve the imports from the
"required bundles".
- Basically, bnd would like us to remove all "Required Bundles" and
just generate a full "Import packages" directive instead.
I will attach reformatted manifests. One generated by bnd and the other
by the current ant scripts. Basically I think as a group committers
should weigh in on the issue of whether we want to move to this
methodology and how:
- readability may be something we really want to keep
- we may want to keep the "requires bundles" even if the imports are
fully qualified
- we may want to or need to continue "reexport"ing our bundles.
- we may want to go to "fully OSGi compliant" bundles, and if we do
there may be some development effort required
Let me know what you think.
-Eric
_______________________________________________
eclipselink-dev mailing list
eclipselink-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-dev
--
Shaun Smith | Principal Product Manager
Phone: +19055023094
Oracle Server Technologies, Oracle TopLink
ORACLE Canada | 110 Matheson Boulevard West, Suite 100, Mississauga,
Ontario | L5R 3P4
Oracle is committed to developing practices and products that
help protect the environment
|