JDK 7: New Component Delivery Model in the Works

The JDK includes many logically distinct sets of APIs. Some of the APIs naturally live in the JDK and evolve at the pace of the JDK; other APIs are effectively maintained externally, but are also shipped as part of the public API provided by the JDK. Two APIs in the latter camp are jaxp and jax-ws, both of which natively live in the GlassFish project.

Currently, those components are maintained under separate version control as part of OpenJDK in the jaxp and jax-ws repositories, respectively. Code in these components is periodically synced with changes from the upstream masters, with some nontrivial overhead.

To reduce the overhead of updating the components and thereby make it possible to update them more frequently, we're in the process of changing the delivery model of these externally maintained components into the JDK. First for JDK 7 and later for OpenJDK 6, instead of tracking these code bases under independent version control in the JDK, the JDK build will logically get the source for those components from a source bundle. The upstream teams will be responsible for providing source bundles and the JDK build will be configurable to use a particular source bundle.

Kelly has been working in implementing this new model for jaxp in the JDK 7 build, including working out the detailed logistics with the upstream teams. An initial version of the change is out for review.

This new approach is the same basic model the IcedTea project uses to provide changes and functionality on top of OpenJDK so there is lots of evidence large code bases can be handled using this model.

Comments:

Why does the JDJ 7 build process even compile these upstream libraries? I would have thought his "new component delivery model" would have been in line with the JSR 277 modularity work. And that jaxp/jax-ws (and more importantly xerces!) would be provided/delevered using modules.

Posted by Mark Derricutt on August 13, 2009 at 06:22 AM PDT #

@Mark,

Yes, in due time, the jaxp and jax-ws components will likely be bundled as modules.

These APIs are defined as part of the platform spec in addition to being standalone technologies. The way we've chosen to fulfil that inclusion do date has been by performing a build of the components from source as part of the JDK build; in principle it would be possible to rely on compiled jar files for this purpose instead. (As an open source project, being able to build from source is strongly preferred to requiring linking with binaries of possibly unknown provenance.)

There are analogous decisions to whether or not to rely on system libraries or a copy of library during the build:

"Build architectures and managing dependencies"
http://blogs.sun.com/darcy/entry/build_architectures_and_managing_dependencies

Posted by Joe Darcy on August 13, 2009 at 10:30 AM PDT #

Post a Comment:
Comments are closed for this entry.
About

darcy

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today
News

No bookmarks in folder

Blogroll