8154956: Module system implementation refresh (4/2016)
Reviewed-by: alanb, mchung, chegar, redestad
Contributed-by: alan.bateman@oracle.com, mandy.chung@oracle.com, erik.joelsson@oracle.com
--- a/common/autoconf/generated-configure.sh Thu Apr 28 08:26:30 2016 -0700
+++ b/common/autoconf/generated-configure.sh Tue May 03 09:09:07 2016 +0100
@@ -5070,7 +5070,7 @@
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1460963400
+DATE_WHEN_GENERATED=1461307675
###############################################################################
#
--- a/common/autoconf/spec.gmk.in Thu Apr 28 08:26:30 2016 -0700
+++ b/common/autoconf/spec.gmk.in Tue May 03 09:09:07 2016 +0100
@@ -569,14 +569,15 @@
# Use ?= as this can be overridden from bootcycle-spec.gmk
BOOT_JDK_MODULAR ?= @BOOT_JDK_MODULAR@
+INTERIM_OVERRIDE_MODULES := java.compiler jdk.compiler \
+ jdk.jdeps jdk.javadoc jdk.rmic
ifeq ($(BOOT_JDK_MODULAR), true)
- INTERIM_OVERRIDE_MODULES_ARGS = -Xpatch:$(BUILDTOOLS_OUTPUTDIR)/override_modules
+ INTERIM_OVERRIDE_MODULES_ARGS = $(foreach m, $(INTERIM_OVERRIDE_MODULES), \
+ -Xpatch:$m=$(BUILDTOOLS_OUTPUTDIR)/override_modules/$m)
INTERIM_LANGTOOLS_ARGS = $(INTERIM_OVERRIDE_MODULES_ARGS)
JAVAC_MAIN_CLASS = -m jdk.compiler/com.sun.tools.javac.Main
JAVADOC_MAIN_CLASS = -m jdk.javadoc/jdk.javadoc.internal.tool.Main
else
- INTERIM_OVERRIDE_MODULES := java.compiler jdk.compiler \
- jdk.jdeps jdk.javadoc jdk.rmic
INTERIM_OVERRIDE_MODULES_ARGS = \
-Xbootclasspath/p:$(call PathList, \
$(addprefix $(BUILDTOOLS_OUTPUTDIR)/override_modules/, \
--- a/common/conf/jib-profiles.js Thu Apr 28 08:26:30 2016 -0700
+++ b/common/conf/jib-profiles.js Tue May 03 09:09:07 2016 +0100
@@ -399,7 +399,7 @@
jtreg: {
server: "javare",
revision: "4.2",
- build_number: "b01",
+ build_number: "b02",
checksum_file: "MD5_VALUES",
file: "jtreg_bin-4.2.zip",
environment_name: "JT_HOME"
--- a/make/CreateBuildJdkCopy.gmk Thu Apr 28 08:26:30 2016 -0700
+++ b/make/CreateBuildJdkCopy.gmk Tue May 03 09:09:07 2016 +0100
@@ -35,7 +35,7 @@
# Copy the modules needed to run jlink and jmod. Use bulk copy instead of
# SetupCopyFiles since there are so many files.
-COPY_CLASSES_TARGET := $(BUILDJDK_OUTPUTDIR)/jdk/modules/_buildjdk-copy-maker
+COPY_CLASSES_TARGET := $(BUILDJDK_OUTPUTDIR)/jdk/modules/java.base/_the.buildjdk-copy-marker
$(COPY_CLASSES_TARGET): $(call CacheFind, $(wildcard \
$(addprefix $(JDK_OUTPUTDIR)/modules/, $(MODULES_TO_COPY))))
--- a/make/CreateJmods.gmk Thu Apr 28 08:26:30 2016 -0700
+++ b/make/CreateJmods.gmk Tue May 03 09:09:07 2016 +0100
@@ -64,9 +64,25 @@
DEPS += $(call CacheFind, $(CLASSES_DIR))
endif
-# Add dependencies on other jmod files
-DEPS += $(patsubst %, $(IMAGES_OUTPUTDIR)/jmods/%.jmod, \
- $(call FindDepsForModule, $(MODULE)))
+# Add dependencies on other jmod files. Only java.base needs access to other
+# jmods.
+ifeq ($(MODULE), java.base)
+ DEPS += $(patsubst %, $(IMAGES_OUTPUTDIR)/jmods/%.jmod, \
+ $(filter-out java.base, $(call FindAllModules)))
+
+ # TODO: find modules that directly and indrectly on upgradeable modules
+ EXCLUDE_HASH_MODULES := $(UPGRADEABLE_MODULES) \
+ java.se.ee \
+ jdk.rmic \
+ jdk.xml.bind \
+ jdk.xml.ws \
+ #
+
+ EXCLUDE_PATTERN := $(strip $(subst $(SPACE),|,$(strip $(EXCLUDE_HASH_MODULES))))
+
+ JMOD_FLAGS += --modulepath $(IMAGES_OUTPUTDIR)/jmods \
+ --hash-modules '^(?!$(EXCLUDE_PATTERN))'
+endif
# TODO: What about headers?
# Create jmods in a temp dir and then move them into place to keep the
@@ -81,7 +97,6 @@
--os-arch $(OPENJDK_TARGET_CPU_LEGACY) \
--os-version $(REQUIRED_OS_VERSION) \
--modulepath $(IMAGES_OUTPUTDIR)/jmods\
- --hash-dependencies '.*' \
--exclude '**_the.*' \
$(JMOD_FLAGS) $(SUPPORT_OUTPUTDIR)/jmods/$(notdir $@)
$(MV) $(SUPPORT_OUTPUTDIR)/jmods/$(notdir $@) $@
--- a/make/Main.gmk Thu Apr 28 08:26:30 2016 -0700
+++ b/make/Main.gmk Tue May 03 09:09:07 2016 +0100
@@ -562,9 +562,9 @@
$(foreach m, $(GENDATA_MODULES), $(eval $m-strip: $m-gendata))
$(foreach m, $(COPY_MODULES), $(eval $m-strip: $m-copy))
- # Declare dependencies between jmod targets
- $(foreach m, $(JMOD_MODULES), \
- $(eval $m-jmod: $(addsuffix -jmod, $(call FindDepsForModule,$m))))
+ # Declare dependencies between jmod targets. Only java.base jmod needs access
+ # to the other jmods to be built.
+ java.base-jmod: $(filter-out java.base-jmod, $(JMOD_TARGETS))
# Declare dependencies from <module>-jmod to all other module targets
$(foreach m, $(STRIP_MODULES), $(eval $m-jmod: $m-strip))
--- a/make/common/Modules.gmk Thu Apr 28 08:26:30 2016 -0700
+++ b/make/common/Modules.gmk Tue May 03 09:09:07 2016 +0100
@@ -38,13 +38,12 @@
BOOT_MODULES :=
PLATFORM_MODULES :=
JRE_TOOL_MODULES :=
+UPGRADEABLE_MODULES :=
+AGGREGATOR_MODULES :=
# Hook to include the corresponding custom file, if present.
$(eval $(call IncludeCustomExtension, , common/Modules.gmk))
-UPGRADEABLE_MDOULES :=
-AGGREGATOR_MDOULES :=
-
BOOT_MODULES += \
java.base \
java.datatransfer \