--- old/src/java.base/share/classes/jdk/internal/module/SystemModules.java 2016-12-15 09:19:15.028271991 +0000 +++ new/src/java.base/share/classes/jdk/internal/module/SystemModules.java 2016-12-15 09:19:14.900263234 +0000 @@ -29,14 +29,14 @@ /* * SystemModules class will be generated at link time to create - * ModuleDescriptor for the installed modules directly to improve + * ModuleDescriptor for the system modules directly to improve * the module descriptor reconstitution time. * * This will skip parsing of module-info.class file and validating * names such as module name, package name, service and provider type names. * It also avoids taking a defensive copy of any collection. * - * @see jdk.tools.jlink.internal.plugins.SystemModuleDescriptorPlugin + * @see jdk.tools.jlink.internal.plugins.SystemModulesPlugin */ public final class SystemModules { /** @@ -49,11 +49,6 @@ public static final String[] MODULE_NAMES = new String[0]; /** - * Hash of system modules. - */ - public static byte[][] MODULES_TO_HASH = new byte[0][]; - - /** * Number of packages in the boot layer from the installed modules. * * Don't make it final to avoid inlining during compile time as @@ -66,8 +61,24 @@ * * When running an exploded image it returns an empty array. */ - public static ModuleDescriptor[] modules() { - throw new InternalError("should not reach here"); + public static ModuleDescriptor[] descriptors() { + throw new InternalError("expected to be overridden at link time"); + } + + /** + * Returns a non-empty array of ModuleHashes recorded in each module + * in the run-time image. + * + * When running an exploded image it returns an empty array. + */ + public static ModuleHashes[] hashes() { + throw new InternalError("expected to be overridden at link time"); } + /** + * Returns a non-empty array of ModuleResolutions in the run-time image. + */ + public static ModuleResolution[] moduleResolutions() { + throw new InternalError("expected to be overridden at link time"); + } }