dev@glassfish.java.net

[GFv3] Important change related to use of OSGi in v3

From: Sahoo <Sahoo_at_Sun.COM>
Date: Mon, 07 Jul 2008 17:40:00 +0530

I have checked in [1] a lot of files a few hours back; they are mostly
to do with pom.xml.

The summary of the change is given below:
----------
1. Java EE APIs are now exporting packages with correct version. They are
still built as part of javaee-api module.

2. We are now using Import-Package header to specify dependency. To make
this
change, we have switched to using maven-bundle-plugin for OSGi headers. The
version constraints do not specify any upper bound, so this gives us
flexibility during development. Also changed modules to use javax APIs from
org.glassfish groupId, as they contain proper package version
information in
manifest file. Using them will ensure proper version constraint in
Import-Package.


3. Changed QL to stop running HK2 mode, as we do *not* want to support it
going forward. In fact, I have not even tested current set of changes on
HK2 mode.

4. Updated felix/conf/config.properties to export more packages by system
bundle. These are JDK internal classes used by our code.

5. Updated felix/conf/config.properties to start Felix shell by default.
This is very usefuk to debug OSGi issues.

6. Fixed a bug in ApplicationLifecycle.java which was (sometimes) causing
JPA lazy loading QL test case to fail. The reason was that the code was
using the same classloader used during deployment and loading, hence
classfiletransformers were not being picked up.

7. Changed code to use the newly introduced LogHelper class in HK2 as
opposed to Util class, as Util is supposed to be a private class.

8. We now support vanilla OSGi bundles in modules directory.

Note:
-----
Ran QL, some JDBC dev test and some JPA, JSP and JSF samples.
You need updated jsp-1.0.0-SNAPSHOT.jar file.

TODO:
-----
1. gf-web-connector still uses Require-Bundle, else some of the
ResourceBundles
are not loadable from implementation modules.

2. gf-jruby-connector is temporarily not being made part of any
distribution,
because I have no idea where its code lies. It needs to be rebuilt to use
newer hk2.

3. ClassLoader reorganisation.

4. Stop using bootstrap.delegation="*"

5. Try to separate bnd instructions to a separate file. Currently this
is not
possible because of Felix issue #620.

6. Each module owner to identify the right export list for their module.
Currently we export every package.

7. Stop repackaging grizzly, as newer versions of grizzly contains OSGi
metadata

8. admingui is not yet tested.

9. mvn gf:run is most likely broken. Will be fixed soon.

----------------
Thanks,
Sahoo
[1]
http://fisheye4.atlassian.com/changelog/~br=trunk/glassfish-svn/trunk/v3?cs=21172