8000839: Integrate the Java Access Bridge with Java Runtime
Reviewed-by: ptbrunet, erikj
diff --git a/makefiles/CompileJavaClasses.gmk b/makefiles/CompileJavaClasses.gmk
index 2a7f4de..5557c02 100644
--- a/makefiles/CompileJavaClasses.gmk
+++ b/makefiles/CompileJavaClasses.gmk
@@ -60,6 +60,12 @@
# This gets built on unix platforms implicitly in the old build even though
# it's excluded in the closed build.
EXCLUDES+=sun/java2d/pisces
+
+ # AccessBridge is compiled separately below.
+ EXFILES += AccessBridge.java \
+ com/sun/java/accessibility/util/java/awt/ChoiceTranslator.java
+ # This seems to never be built
+ EXCLUDES += com/sun/java/accessibility/extensions
endif
endif
@@ -121,7 +127,6 @@
sun/nio/fs/LinuxFileStore.java \
sun/nio/fs/LinuxFileSystem.java \
sun/nio/fs/LinuxFileSystemProvider.java \
- sun/nio/fs/MagicFileTypeDetector.java \
sun/nio/fs/LinuxNativeDispatcher.java \
sun/nio/fs/LinuxUserDefinedFileAttributeView.java \
sun/nio/fs/LinuxWatchService.java
@@ -221,10 +226,24 @@
EXFILES+=-linux-arm.java \
-linux-ppc.java
+# TODO: Is this necessary?
ifeq ($(OPENJDK_TARGET_OS), windows)
EXFILES+=sun/nio/ch/AbstractPollSelectorImpl.java \
+ sun/nio/ch/DevPollArrayWrapper.java \
+ sun/nio/ch/DevPollSelectorImpl.java \
+ sun/nio/ch/DevPollSelectorProvider.java \
+ sun/nio/ch/InheritedChannel.java \
sun/nio/ch/PollSelectorProvider.java \
- sun/nio/ch/SimpleAsynchronousFileChannelImpl.java
+ sun/nio/ch/PollSelectorImpl.java \
+ sun/nio/ch/Port.java \
+ sun/nio/ch/SimpleAsynchronousFileChannelImpl.java \
+ sun/nio/ch/SolarisAsynchronousChannelProvider.java \
+ sun/nio/ch/SolarisEventPort.java \
+ sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java \
+ sun/nio/ch/UnixAsynchronousSocketChannelImpl.java
+ EXFILES+=sun/net/sdp/SdpProvider.java
+else
+ EXFILES+=sun/net/www/protocol/http/ntlm/NTLMAuthSequence.java
endif
# Exclude nimbus files from rt.jar
@@ -241,10 +260,8 @@
# Now we have COPY_PATTERNS, COPY_FILES and COPY_EXTRA
ifndef OPENJDK
- CLOSED_SRC_DIRS:=$(JDK_TOPDIR)/src/closed/share/classes
- ifneq ($(OPENJDK_TARGET_OS_API_DIR),windows)
- CLOSED_SRC_DIRS += $(JDK_TOPDIR)/src/closed/$(OPENJDK_TARGET_OS_API_DIR)/classes
- endif
+ CLOSED_SRC_DIRS:=$(JDK_TOPDIR)/src/closed/share/classes \
+ $(JDK_TOPDIR)/src/closed/$(OPENJDK_TARGET_OS_API_DIR)/classes
endif
MACOSX_SRC_DIRS :=
@@ -325,14 +342,29 @@
##########################################################################################
+#
+# This is an empty jar (only contains manifest) and fits poorly into framework...
+# create simple rule instead
+#
+MANAGEMENT_AGENT_JAR_DEPS := $(JDK_TOPDIR)/src/share/classes/sun/management/manifest
+
+$(JDK_OUTPUTDIR)/lib/management-agent.jar : $(JDK_TOPDIR)/src/share/classes/sun/management/manifest
+ $(JAR) cfm $@ $(JDK_TOPDIR)/src/share/classes/sun/management/manifest
+
+JARS += $(JDK_OUTPUTDIR)/lib/management-agent.jar
+
+##########################################################################################
+
ifndef OPENJDK
- $(eval $(call SetupJavaCompilation,BUILD_ALTCLASSES,\
+$(eval $(call SetupJavaCompilation,BUILD_ALTCLASSES_JAR,\
SETUP:=GENERATE_JDKBYTECODE,\
SRC:=$(JDK_TOPDIR)/src/closed/share/altclasses, \
- BIN:=$(JDK_OUTPUTDIR)/altclasses_classes))
+ BIN:=$(JDK_OUTPUTDIR)/altclasses_classes,\
+ JAR:=$(JDK_OUTPUTDIR)/lib/alt-rt.jar))
- $(BUILD_ALTCLASSES): $(BUILD_JDK)
+$(BUILD_ALTCLASSES_JAR): $(BUILD_JDK)
+JARS += $(JDK_OUTPUTDIR)/lib/alt-rt.jar
endif
@@ -355,7 +387,7 @@
SERVER_DIR:=$(SJAVAC_SERVER_DIR),\
SERVER_JVM:=$(SJAVAC_SERVER_JAVA)))
-$(eval $(call SetupJavaCompilation,BUILD_JOBJC,\
+$(eval $(call SetupJavaCompilation,BUILD_JOBJC_JAR,\
SETUP:=GENERATE_15BYTECODE,\
DISABLE_SJAVAC:=true,\
SRC:=$(JDK_TOPDIR)/src/macosx/native/jobjc/src/core/java \
@@ -367,9 +399,11 @@
JAR:=$(JDK_OUTPUTDIR)/lib/JObjC.jar, \
JARINDEX := true))
-$(BUILD_JOBJC) : $(BUILD_JDK)
+$(BUILD_JOBJC_JAR) : $(BUILD_JDK)
-$(eval $(call SetupJavaCompilation,BUILD_JOBJC_HEADERS,\
+JARS += $(JDK_OUTPUTDIR)/lib/JObjC.jar
+
+$(eval $(call SetupJavaCompilation,BUILD_JOBJC_HEADERS_JAR,\
SETUP:=GENERATE_JDKBYTECODE,\
SRC:=$(JDK_TOPDIR)/src/macosx/native/jobjc/src/core/java \
$(JDK_TOPDIR)/src/macosx/native/jobjc/src/runtime-additions/java \
@@ -379,15 +413,53 @@
BIN:=$(JDK_OUTPUTDIR)/jobjc_classes_headers,\
HEADERS:=$(JDK_OUTPUTDIR)/gensrc_headers_jobjc))
-$(BUILD_JOBJC_HEADERS) : $(BUILD_JDK)
+$(BUILD_JOBJC_HEADERS_JAR) : $(BUILD_JDK)
+
+JARS += $(BUILD_JOBJC_HEADERS_JAR)
endif
##########################################################################################
+ifndef OPENJDK
+ifeq ($(OPENJDK_TARGET_OS), windows)
+ifeq ($(OPENJDK_TARGET_CPU_BITS), 32)
+ $(eval $(call SetupJavaCompilation,BUILD_ACCESSBRIDGE_32,\
+ SETUP:=GENERATE_JDKBYTECODE,\
+ JAVAC_FLAGS:=-cp $(JDK_OUTPUTDIR)/classes,\
+ SRC:=$(JDK_OUTPUTDIR)/gensrc_ab/32bit,\
+ BIN:=$(JDK_OUTPUTDIR)/classes_ab/32bit))
+
+ $(BUILD_ACCESSBRIDGE_32): $(BUILD_JDK)
+
+ $(eval $(call SetupJavaCompilation,BUILD_ACCESSBRIDGE_LEGACY,\
+ SETUP:=GENERATE_JDKBYTECODE,\
+ JAVAC_FLAGS:=-cp $(JDK_OUTPUTDIR)/classes,\
+ SRC:=$(JDK_OUTPUTDIR)/gensrc_ab/legacy,\
+ BIN:=$(JDK_OUTPUTDIR)/classes_ab/legacy))
+
+ $(BUILD_ACCESSBRIDGE_LEGACY): $(BUILD_JDK)
+
+else
+
+ $(eval $(call SetupJavaCompilation,BUILD_ACCESSBRIDGE_64,\
+ SETUP:=GENERATE_JDKBYTECODE,\
+ JAVAC_FLAGS:=-cp $(JDK_OUTPUTDIR)/classes,\
+ SRC:=$(JDK_OUTPUTDIR)/gensrc_ab/64bit,\
+ BIN:=$(JDK_OUTPUTDIR)/classes_ab/64bit))
+
+ $(BUILD_ACCESSBRIDGE_64): $(BUILD_JDK)
+
+endif
+endif
+endif
+
+##########################################################################################
+
# copy with -a to preserve timestamps so dependencies down the line aren't messed up
-all: $(BUILD_JDK) $(BUILD_ALTCLASSES) $(BUILD_JOBJC) $(BUILD_JOBJC_HEADERS) $(COPY_EXTRA) \
- $(JDK_OUTPUTDIR)/classes/META-INF/services/com.sun.tools.xjc.Plugin \
- $(JDK_OUTPUTDIR)/gensrc_headers/_the.jdk.base.headers
+all: $(BUILD_JDK) $(JARS) $(COPY_EXTRA) $(JDK_OUTPUTDIR)/classes/META-INF/services/com.sun.tools.xjc.Plugin \
+ $(JDK_OUTPUTDIR)/gensrc_headers/_the.jdk.base.headers \
+ $(BUILD_ACCESSBRIDGE_32) $(BUILD_ACCESSBRIDGE_64) \
+ $(BUILD_ACCESSBRIDGE_LEGACY)
.PHONY: all