ClassLoader.getPackages()
    Jesse Glick 
    jesse.glick at oracle.com
       
    Mon May 21 11:20:20 PDT 2012
    
    
  
On 05/21/2012 01:11 PM, Alan Bateman wrote:
> it's not clear to me that getPackages make sense
It doubt it is used much, but it should be possible to return something sensible for getPackage(String) and getPackages() even in module mode. The packages of a module 
class loader would be those it defines (ClassLoader.packages) plus those accessible to it (i.e. exported) from any modules in its "requires" list, including java.base.
FWIW the NetBeans module system implements nearly this behavior [1]. It cannot perfectly implement it without some API changes: Package.getSystemPackages is not public, 
and ClassLoader.getPackage is protected, so it is not straightforward to collect packages defined in JRE-supplied parent ClassLoader's. Jigsaw would of course not be 
bound by this problem. Also NB does not currently restrict the result according to visibility (*), though it would probably be easy to do so.
(*) As with other nonnative module systems, NB uses visibility - which it can control - as a substitute for accessibility - which it cannot.
[1] http://hg.netbeans.org/main-silver/raw-file/default/o.n.bootstrap/src/org/netbeans/ProxyClassLoader.java
    
    
More information about the jigsaw-dev
mailing list