Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8066492

Enhance jrt file system to support /modules and /packages directories

    Details

      Description

      Paths in the "jrt:/" NIO filesystem are currently of this form:

        /$MODULE/$PATH

      where $MODULE is a module name (e.g., "java.base") and $PATH is the name
      of a resource, most often the binary name of a class.

      Let's add a directory level, and support two forms:

        /modules/$MODULE/$PATH
        /packages/$PACKAGE/$MODULE

      where $PACKAGE is a package name (e.g., "java.lang"). A path of the
      second form names a symbolic link which, in turn, points to the
      directory under /modules that contains a module that defines that
      package. Example:

        /packages/java.lang/java.base -> /modules/java.base

      To find java/sql/Array.class without knowing its module you look up
      /packages/java.sql, which is a directory, and enumerate its entries.
      In this case there will be just one entry, a symbolic link named
      "java.sql", which will point to /modules/java.sql, which will contain
      java/sql/Array.class.

      The reason for having /package/$PACKAGE be a directory of symbolic links
      to module directories rather than such a symbolic link itself is that in
      some scenarios multiple modules can contain packages of the same name.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                sundar Sundararajan Athijegannathan
                Reporter:
                mr Mark Reinhold
              • Votes:
                0 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                • Due:
                  Created:
                  Updated:
                  Resolved: