May 10, 2007

Java Language Modularity with Superpackages

Session ID: TS-2401
Session Title: Java Language Modularity with Superpackages
Session Abstract: JSR 294, Improved Modularity Support in the Java Programming Language, deals with information hiding for “programming in the large.” Structuring a large program with packages usually means exposing too many implementation details to the whole world. The “superpackage” construct defined in JSR 294 introduces a level of access control wider than a package but narrower than public, so that implementation details can be better encapsulated. This session discusses how superpackages affect access control at compile time and runtime, how they are represented, how they enable separate compilation, and how they interact with JSR 277 versioning and deployment.
Track: Java SE
Duration: 60
Speaker(s): Andreas Sterbenz, Sun Microsystems, Inc.; Alex Buckley, Sun Microsystems, Inc.

Opinion: interesting presentation of a new modularity entity discussed in JSR 294, which should be part of Java 7. Basically, a superpackage allows you to encapsulate one or more packages (or superpackages) and declare in a separate single file :
  • which public classes will really visible outside of the superpackage.
  • which public classes will be only visible to other classes inside the superpackage.
This feature is still being discussed, but once public, I think it should be useful in every large application. Keep an eye on it.

No comments:

Post a Comment