Re-export and isModulePresent

Alexey Fedorov alexey.x.fedorov at oracle.com
Fri Feb 17 12:27:43 PST 2012


Mandy,

thank you!

--
Have a good weekend,
Alexey

On 02/18/2012 12:06 AM, Mandy Chung wrote:
> On 2/17/2012 7:45 AM, Alexey Fedorov wrote:
>> Hello!
>>
>> Suppose we have the following module structure:
>>
>> module A @ 1.0 {
>>     ...
>> }
>>
>> module B @ 1.0 {
>>    ...
>>     requires public A;
>> }
>>
>> module C @ 1.0 {
>>    ...
>>     requires B;
>> }
>>
>> the following call in any class from module C returns *false*:
>>
>> getClass().getModule().isModulePresent("A")
>>
>> Is this behavior correct? In other words, "requires public A" 
>> directive re-exports *only A's types*, not *module *A?
>
> It's a bug.  One use case of the isModulePresent() method is for 
> testing if an optional module exists so that the a caller can 
> conditionally reference the exported types from that module.  In your 
> example, module C should be able to access types in A that are 
> re-exported from B if A is installed and linked with C.  So the 
> isModulePresent("A") method should return true in this case and we 
> will fix it.
>
> Mandy




More information about the jigsaw-dev mailing list