RFR: 8016780: (xs) README-builds.html misses crucial requirement on bootstrap JDK

Stuart Marks stuart.marks at oracle.com
Wed Jun 19 01:10:18 UTC 2013

On 6/18/13 2:25 AM, Alan Bateman wrote:
> On 18/06/2013 08:42, Stuart Marks wrote:
>> 4) Could jaxp, jaxws, and corba be built with the current JDK, not the boot
>> JDK? Sure, probably.[...]
> My understanding is that the new build is just following the old build[...]
> As least for the jaxws repository then I don't see any reason that it has to be
> built by the boot JDK. I actually don't see any reason why it needs to be
> rt.jar either, it could be built to jaxws.jar and dropped into the extensions
> directory (but that's another matter). That said, even if the jaxws repository
> was built later then it's unlikely that code there will start making use of new
> language features or APIs. That is because it's really an upstream project that
> still creates standalone releases to run on jdk7.
> The corba and jaxp are trickier because there are circular dependencies. These
> circular dependencies arises because we have a few places in the jdk repository
> that need to parse XML and there are few cases where CORBA APIs are used (the
> JMX remote API supports IIOP, and the JNDI CosNaming provider are two).
> [...]
> The jaxp repository is a clear case where we should be able to new new language
> features and APIs. Aside from the build then the only thing holding things back
> is periodically calls to keep the jdk7u and jdk8 code in sync. I don't know how
> long that can last and we will need to break from the past at some point.
> So I think this is a great topic to discuss. I think it has to be discussed in
> the context of where the repositories are going with modules. For the JDK
> modularization then we've long talked about restructuring the source code so
> that it's organized by modules, we didn't get to considering whether this would
> have an impact on the repositories. I think it's also worth discussing whether
> the "compilation unit" is the code in a single repository or whether the code
> in multiple repositories could be compiled together. The other extreme is where
> we get to the point where individual modules can be compiled on their own.

OK, I've pushed the change to README-builds.html.

I've filed an RFE that proposes changes to Configure to do version checking:


Brad W filed a bug to cover changes in the way jaxp, jaxws, and corba are built:


[links won't work until the externally-facing bug database is refreshed]


I have half a mind to look at the Configure changes myself in my spare time 
(ha!), but I have no spare time, and I don't have the expertise in this area 
anyway. So anyone is welcome to pick this up. In principle it should be fairly 
simple, and I think it's fairly important. This isn't the first time someone's 
been bitten by having the wrong boot JDK version, and it won't be the last.

Regarding the rearrangement of corba/jaxp/jaxws to use the fresh JDK instead of 
the boot JDK. At least we know they build, because the boot cycle build builds 
them successfully. (At least, I think it does.) Now, I don't think the 
artifacts produced from a boot cycle build are actually tested or are delivered 
anywhere in a bundle. So, while it seems quite unlikely, some bugs could have 
been introduced by building with a newer JDK version.

Now ... circular dependencies ... urk ... I *knew* there was something that 
would make this complicated. Well, maybe these will need to be refactored away 
somehow. Or maybe some kind of GenStubs technique can be used to deal with the 

You introduced yet another point as well, which is the relationship between the 
repository organization and the build structure. As I understand things, each 
repository has its own build support and builds in a separate step from the 
others. In principle I think that the repository structure ought to be 
orthogonal to the build structure. At least, if we move to a more modular build 
structure, that shouldn't imply that we need to have each module in its own 
repository. In fact I'd like to see fewer repositories. To me, the only 
compelling reason to have a separate repo is if the source code in it is a 
snapshot of an upstream source base -- as seems to be the case for jaxws. 
Having all the stuff in fewer repos makes it easier to bisect to find failures, 
and it reduces the need for careful management of coordinated, cross-repo changes.


More information about the build-dev mailing list