JSR 294 and Module Systems

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?".

Comments:

The PDF seems to use "bundle" in a different way to OSGi. Specifically, classes defined in one (osgi) bundle are a member of exactly one (osgi) bundle, or module in JSR 294 lingo. However, an (osgi) bundle may be defined across multiple JARs, which appears to be the term referred to as (jsr294) bundle in the PDF. However, I appreciate that a new delivery form (eg Jigsaw's module file format) might lead to a more abstract name than JAR for this unit of delivery.

Alex

Posted by Alex Blewitt on January 22, 2010 at 10:14 PM PST #

@Alex Blewitt: The PDF uses "bundle" in the OSGi sense. JAR files and file formats are orthogonal to accessibility.

Posted by Alexander Buckley on January 25, 2010 at 03:15 AM PST #

Post a Comment:
Comments are closed for this entry.
About

Alex Buckley is the Specification Lead for the Java language and JVM at Oracle.

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today
Feeds