JSR 294 is often, and incorrectly, described as a module system. In fact, JSR 294 provides language and VM features for the benefit of module systems such as OSGi and Jigsaw, similar to how JSR 292 provides VM features for the benefit of dynamic language runtimes such as JRuby and Jython. Where JSR 292 standardizes linkage protocols, but not linkage behavior, JSR 294 standardizes module accessibility, but not module boundaries.

Please see this short PDF on JSR 294 and Module Systems to understand the relationship of JSR 294 to module systems such as OSGi and Jigsaw. BJ Hargrave (OSGi CTO) has also blogged on how a module system may use JSR 294 to enforce boundaries in "I am Visible but am I Accessible?".



More...