Meaning of [dynamic] in modules.summary

Alan Bateman Alan.Bateman at Sun.COM
Tue Jan 12 12:33:55 PST 2010


Mark Reinhold wrote:
> In the modules.summary file generated during the build, are all
> dependences marked as "[dynamic]" effectively optional?  That is,
> if the target of the dependence is not there then will anything
> break?
>
> - Mark
>   
I didn't realize this was going through to the modules.summary as 
"dynamic" (Mandy, I think that has implications for CheckDeps as it 
understands "optional but not "dynamic").

The dependencies marked as "dynamic" are Class.forName usages and are 
optional. For example, the base module has the mandatory charsets; all 
others are (currently) in "charsets". Many of the others cases in 
modules.summary are also because of service provider interfaces - for 
example the base dependency on "net-compat" is because of legacy URL 
protocol handlers, the base dependency on the security-* modules is 
because the security API is mostly a framework with the implementations 
in various providers. A few of them are not SPI related. JSSE can 
optionally negotiate to use Kerberos ciphers if present, and there are a 
few more like this.  In all these cases, if the module is not present, 
then it is handled "gracefully". This could break something of course - 
for example, if an application requires a specific provider to be 
present then it would need to specify the dependency to ensure that the 
provider is installed.

-Alan.



More information about the jigsaw-dev mailing list