提交 409a237b 编写于 作者: A asaha

Merge

...@@ -420,4 +420,27 @@ f7da0b943b9381aaf378d0c7b337dd7654335293 jdk8u51-b08 ...@@ -420,4 +420,27 @@ f7da0b943b9381aaf378d0c7b337dd7654335293 jdk8u51-b08
7e8459e7a45cb5b49de376893e3a95bfa92d0325 jdk8u51-b09 7e8459e7a45cb5b49de376893e3a95bfa92d0325 jdk8u51-b09
dcc75a75d3a30270fbf52d0d0b0504319882e419 jdk8u51-b10 dcc75a75d3a30270fbf52d0d0b0504319882e419 jdk8u51-b10
3ed614d4eee7c3225d48ed7c90622dd888cd143e jdk8u51-b11 3ed614d4eee7c3225d48ed7c90622dd888cd143e jdk8u51-b11
0010682d9a2b81daf7c08239161f7c2a91977299 jdk8u51-b12
217fa7205549d196c60f814bf3fc9795d756f493 jdk8u51-b13
b7403e15864dc0c1f9740d66af91bddb3e2215e8 jdk8u51-b14
192bda44c0c463104c96058bb815a546b282ca43 jdk8u51-b15
5c31204d19e5976f025026db3d5c17331e8c44db jdk8u60-b00
c46daef6edb5385d11876ed40f292a4b62e96867 jdk8u60-b01
c10fd784956cc7099657181029ac3e790267b678 jdk8u60-b02
87c95759b92b9c2933e439f0f7e4897635af16e0 jdk8u60-b03
81e87652146b74c4ffeb1862e3e0eb3ace2374e4 jdk8u60-b04
433942aab113e7eeecbe086b346219536738b0b6 jdk8u60-b05
3a8ecea921f65bc1aef108b657c718348e152b9a jdk8u60-b06
e48ca20d8943854c878e3b8d86d6d5387b047996 jdk8u60-b07
478602cc17e212571cd0bec8979d5adc6d5c456e jdk8u60-b08
fc3f69854e7d28416168eee07859c06fe90fa6f5 jdk8u60-b09
ae448eca6b545670656c505bdc830b6dabaf1be3 jdk8u60-b10
bdcb84f205482c7aea48a1403e843f5fd689d849 jdk8u60-b11
87d4b7551d321c473d97afd75c1b71f6cedda4e2 jdk8u60-b12
4e2206aa336c312ee180421387b7a6e7cdd0a3ca jdk8u60-b13
3ad03712ea43feb5d4cd8cb216e6d295d09b8457 jdk8u60-b14
a006fa0a9e8f18dee6daf8984bd11625c4c4860c jdk8u60-b15
6ed3821c212a93ffc6bfcc292ef7aca3b7165139 jdk8u60-b16
c30db4c968f63dce1bf2f9df240fb75a8f27f922 jdk8u60-b17
57336c319de8a141d0bcd04265ce36734fb51380 jdk8u60-b18
286b9a885fcc6245fdf2b20697473ec3b35f2538 jdk8u65-b00 286b9a885fcc6245fdf2b20697473ec3b35f2538 jdk8u65-b00
# #
# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -64,17 +64,15 @@ ifndef OPENJDK ...@@ -64,17 +64,15 @@ ifndef OPENJDK
# This gets built on unix platforms implicitly in the old build even though # This gets built on unix platforms implicitly in the old build even though
# it's excluded in the closed build. # it's excluded in the closed build.
EXCLUDES += sun/java2d/pisces EXCLUDES += sun/java2d/pisces
endif
endif
ifeq ($(OPENJDK_TARGET_OS), windows)
# AccessBridge is compiled separately below. # AccessBridge is compiled separately below.
EXFILES += AccessBridge.java \ EXFILES += AccessBridge.java \
AccessBridgeLoader.java \ AccessBridgeLoader.java
com/sun/java/accessibility/util/java/awt/ChoiceTranslator.java
# This seems to never be built
EXCLUDES += com/sun/java/accessibility/extensions
endif endif
endif
ifneq ($(OPENJDK_TARGET_OS), solaris) ifneq ($(OPENJDK_TARGET_OS), solaris)
# Exclude Solaris nio and two security related files in src/share/classes # Exclude Solaris nio and two security related files in src/share/classes
EXFILES += SolarisAclFileAttributeView.java \ EXFILES += SolarisAclFileAttributeView.java \
...@@ -272,7 +270,7 @@ include CopyIntoClasses.gmk ...@@ -272,7 +270,7 @@ include CopyIntoClasses.gmk
ifndef OPENJDK ifndef OPENJDK
CLOSED_SRC_DIRS := $(JDK_TOPDIR)/src/closed/share/classes \ CLOSED_SRC_DIRS := $(JDK_TOPDIR)/src/closed/share/classes \
$(JDK_TOPDIR)/src/closed/$(OPENJDK_TARGET_OS_API_DIR)/classes $(wildcard $(JDK_TOPDIR)/src/closed/$(OPENJDK_TARGET_OS_API_DIR)/classes)
endif endif
MACOSX_SRC_DIRS := MACOSX_SRC_DIRS :=
...@@ -379,7 +377,6 @@ $(JDK_OUTPUTDIR)/classes/META-INF/services/com.sun.tools.xjc.Plugin: ...@@ -379,7 +377,6 @@ $(JDK_OUTPUTDIR)/classes/META-INF/services/com.sun.tools.xjc.Plugin:
########################################################################################## ##########################################################################################
ifndef OPENJDK
ifeq ($(OPENJDK_TARGET_OS), windows) ifeq ($(OPENJDK_TARGET_OS), windows)
ifeq ($(OPENJDK_TARGET_CPU_BITS), 32) ifeq ($(OPENJDK_TARGET_CPU_BITS), 32)
$(eval $(call SetupJavaCompilation,BUILD_ACCESSBRIDGE_32, \ $(eval $(call SetupJavaCompilation,BUILD_ACCESSBRIDGE_32, \
...@@ -413,7 +410,6 @@ ifndef OPENJDK ...@@ -413,7 +410,6 @@ ifndef OPENJDK
endif endif
endif endif
endif
########################################################################################## ##########################################################################################
......
# #
# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -659,11 +659,10 @@ endif ...@@ -659,11 +659,10 @@ endif
########################################################################################## ##########################################################################################
# jabswitch # jabswitch
ifndef OPENJDK
ifeq ($(OPENJDK_TARGET_OS), windows) ifeq ($(OPENJDK_TARGET_OS), windows)
$(eval $(call SetupNativeCompilation,BUILD_JABSWITCH, \ $(eval $(call SetupNativeCompilation,BUILD_JABSWITCH, \
SRC := $(JDK_TOPDIR)/src/closed/windows/native/sun/bridge, \ SRC := $(JDK_TOPDIR)/src/windows/native/sun/bridge, \
INCLUDE_FILES := jabswitch.cpp, \ INCLUDE_FILES := jabswitch.cpp, \
LANG := C++, \ LANG := C++, \
CFLAGS := $(filter-out -Zc:wchar_t-, $(CFLAGS_JDKEXE)) -Zc:wchar_t \ CFLAGS := $(filter-out -Zc:wchar_t-, $(CFLAGS_JDKEXE)) -Zc:wchar_t \
...@@ -675,17 +674,16 @@ ifndef OPENJDK ...@@ -675,17 +674,16 @@ ifndef OPENJDK
OUTPUT_DIR := $(JDK_OUTPUTDIR)/bin, \ OUTPUT_DIR := $(JDK_OUTPUTDIR)/bin, \
PROGRAM := jabswitch, \ PROGRAM := jabswitch, \
DEBUG_SYMBOLS := true, \ DEBUG_SYMBOLS := true, \
VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/closed/windows/native/sun/bridge/AccessBridgeStatusWindow.rc, \ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/native/sun/bridge/AccessBridgeStatusWindow.rc, \
RC_FLAGS := $(RC_FLAGS) \ RC_FLAGS := $(RC_FLAGS) \
-D "JDK_FNAME=jabswitch.exe" \ -D "JDK_FNAME=jabswitch.exe" \
-D "JDK_INTERNAL_NAME=jabswitch" \ -D "JDK_INTERNAL_NAME=jabswitch" \
-D "JDK_FTYPE=0x01L", \ -D "JDK_FTYPE=0x01L", \
MANIFEST := $(JDK_TOPDIR)/src/closed/windows/native/sun/bridge/jabswitch.manifest)) MANIFEST := $(JDK_TOPDIR)/src/windows/native/sun/bridge/jabswitch.manifest))
BUILD_LAUNCHERS += $(BUILD_JABSWITCH) BUILD_LAUNCHERS += $(BUILD_JABSWITCH)
endif endif
endif
########################################################################################## ##########################################################################################
......
# #
# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -55,7 +55,6 @@ COPY_FILES = $(H_TARGET_FILES) ...@@ -55,7 +55,6 @@ COPY_FILES = $(H_TARGET_FILES)
########################################################################################## ##########################################################################################
ifndef OPENJDK
ifeq ($(OPENJDK_TARGET_OS), windows) ifeq ($(OPENJDK_TARGET_OS), windows)
COPY_FILES += $(OPENJDK_TARGET_OS_INCLUDE)/bridge/AccessBridgeCallbacks.h \ COPY_FILES += $(OPENJDK_TARGET_OS_INCLUDE)/bridge/AccessBridgeCallbacks.h \
$(OPENJDK_TARGET_OS_INCLUDE)/bridge/AccessBridgeCalls.h \ $(OPENJDK_TARGET_OS_INCLUDE)/bridge/AccessBridgeCalls.h \
...@@ -64,14 +63,12 @@ ifndef OPENJDK ...@@ -64,14 +63,12 @@ ifndef OPENJDK
$(JDK_OUTPUTDIR)/lib/accessibility.properties $(JDK_OUTPUTDIR)/lib/accessibility.properties
$(OPENJDK_TARGET_OS_INCLUDE)/bridge/%: \ $(OPENJDK_TARGET_OS_INCLUDE)/bridge/%: \
$(JDK_TOPDIR)/src/closed/windows/native/sun/bridge/% $(JDK_TOPDIR)/src/windows/native/sun/bridge/%
$(install-file) $(install-file)
$(JDK_OUTPUTDIR)/lib/accessibility.properties: \ $(JDK_OUTPUTDIR)/lib/accessibility.properties: \
$(JDK_TOPDIR)/src/closed/windows/native/sun/bridge/accessibility.properties $(JDK_TOPDIR)/src/windows/native/sun/bridge/accessibility.properties
$(install-file) $(install-file)
endif
endif endif
########################################################################################## ##########################################################################################
...@@ -285,7 +282,10 @@ endif ...@@ -285,7 +282,10 @@ endif
ifeq ($(OPENJDK_TARGET_OS), macosx) ifeq ($(OPENJDK_TARGET_OS), macosx)
JVMCFG_SRC := $(JDK_TOPDIR)/src/macosx/bin/$(JVMCFG_ARCH)/jvm.cfg JVMCFG_SRC := $(JDK_TOPDIR)/src/macosx/bin/$(JVMCFG_ARCH)/jvm.cfg
else else
JVMCFG_SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/$(JVMCFG_ARCH)/jvm.cfg JVMCFG_BASE := $(OPENJDK_TARGET_OS_API_DIR)/bin/$(JVMCFG_ARCH)/jvm.cfg
ALT_JVMCFG_SRC := $(JDK_TOPDIR)/src/closed/$(JVMCFG_BASE)
# Use the ALT file if it exists
JVMCFG_SRC := $(if $(wildcard $(ALT_JVMCFG_SRC)),$(ALT_JVMCFG_SRC),$(JDK_TOPDIR)/src/$(JVMCFG_BASE))
endif endif
JVMCFG_DIR := $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR) JVMCFG_DIR := $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)
JVMCFG := $(JVMCFG_DIR)/jvm.cfg JVMCFG := $(JVMCFG_DIR)/jvm.cfg
......
# #
# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -267,10 +267,12 @@ $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents: $(IMAGES_OUTPUTDIR)/lib$ ...@@ -267,10 +267,12 @@ $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents: $(IMAGES_OUTPUTDIR)/lib$
$(RM) $@ $@.tmp $(RM) $@ $@.tmp
$(GREP) -e '\.class$$' $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents > $@.tmp $(GREP) -e '\.class$$' $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents > $@.tmp
ifneq ($(PROFILE), ) ifneq ($(PROFILE), )
# # Add back classes from excluded packages (fixing the $ substitution in the process) ifneq ($(strip $(RT_JAR_INCLUDE_TYPES)), )
for type in $(subst \$$,\, $(RT_JAR_INCLUDE_TYPES)) ; do \ # Add back classes from excluded packages (fixing the $ substitution in the process)
$(ECHO) $$type >> $@.tmp ; \ for type in $(subst \$$,\, $(RT_JAR_INCLUDE_TYPES)) ; do \
done $(ECHO) $$type >> $@.tmp ; \
done
endif
endif endif
$(MV) $@.tmp $@ $(MV) $@.tmp $@
...@@ -281,15 +283,15 @@ $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents: $(IMAGES_OUTPUTDI ...@@ -281,15 +283,15 @@ $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents: $(IMAGES_OUTPUTDI
-e '/_the\.*' -e '^_the\.*' -e '\\_the\.*' -e 'javac_state' \ -e '/_the\.*' -e '^_the\.*' -e '\\_the\.*' -e 'javac_state' \
$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents > $@.tmp $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents > $@.tmp
ifneq ($(PROFILE), ) ifneq ($(PROFILE), )
# # Strip out all META-INF/services/ entries ifneq ($(strip $(PROFILE_INCLUDE_METAINF_SERVICES)), )
$(GREP) -v -e 'META-INF/services/' $@.tmp > $@.tmp2 # Strip out all META-INF/services/ entries
# # Add back the required services $(GREP) -v -e 'META-INF/services/' $@.tmp > $@.tmp2
# # FIXME: On Solaris if PROFILE_INCLUDE_METAINF_SERVICES is not defined # Add back the required services
# # we get a syntax error from sh. That doesn't happen on linux for service in $(PROFILE_INCLUDE_METAINF_SERVICES) ; do \
for service in $(PROFILE_INCLUDE_METAINF_SERVICES) ; do \ $(ECHO) $$service >> $@.tmp2; \
$(ECHO) $$service >> $@.tmp2; \ done
done $(MV) $@.tmp2 $@.tmp
$(MV) $@.tmp2 $@.tmp endif
endif endif
$(MV) $@.tmp $@ $(MV) $@.tmp $@
...@@ -309,6 +311,15 @@ $(BEANLESS_CLASSES)/%: $(JDK_OUTPUTDIR)/classes/% ...@@ -309,6 +311,15 @@ $(BEANLESS_CLASSES)/%: $(JDK_OUTPUTDIR)/classes/%
$(MKDIR) -p $(@D) $(MKDIR) -p $(@D)
$(TOOL_REMOVEMETHODS) '$<' $@ addPropertyChangeListener removePropertyChangeListener $(TOOL_REMOVEMETHODS) '$<' $@ addPropertyChangeListener removePropertyChangeListener
# Code these targets explicitly because the target "%" expansion does
# not work with the inline "$" in the file name.
$(BEANLESS_CLASSES)/java/util/jar/Pack200\$$Packer.class: $(JDK_OUTPUTDIR)/classes/java/util/jar/Pack200$$Packer.class
$(MKDIR) -p $(@D)
$(TOOL_REMOVEMETHODS) '$<' $@ addPropertyChangeListener removePropertyChangeListener
$(BEANLESS_CLASSES)/java/util/jar/Pack200\$$Unpacker.class: $(JDK_OUTPUTDIR)/classes/java/util/jar/Pack200$$Unpacker.class
$(MKDIR) -p $(@D)
$(TOOL_REMOVEMETHODS) '$<' $@ addPropertyChangeListener removePropertyChangeListener
CLASSES_TO_DEBEAN = \ CLASSES_TO_DEBEAN = \
java/util/logging/LogManager.class \ java/util/logging/LogManager.class \
java/util/jar/Pack200\$$Packer.class \ java/util/jar/Pack200\$$Packer.class \
...@@ -639,18 +650,8 @@ $(eval $(call SetupZipArchive,BUILD_SRC_ZIP, \ ...@@ -639,18 +650,8 @@ $(eval $(call SetupZipArchive,BUILD_SRC_ZIP, \
########################################################################################## ##########################################################################################
ifndef OPENJDK ifeq ($(OPENJDK_TARGET_OS), windows)
ifeq ($(OPENJDK_TARGET_OS), windows) ifeq ($(OPENJDK_TARGET_CPU_BITS), 32)
$(eval $(call SetupArchive,BUILD_JACCESS_JAR, , \
SRCS := $(JDK_OUTPUTDIR)/classes, \
INCLUDES := com/sun/java/accessibility/util, \
JAR := $(IMAGES_OUTPUTDIR)/lib/ext/jaccess.jar, \
SKIP_METAINF := true))
JARS += $(IMAGES_OUTPUTDIR)/lib/ext/jaccess.jar
ifeq ($(OPENJDK_TARGET_CPU_BITS), 32)
$(eval $(call SetupArchive,BUILD_ACCESSBRIDGE_32_JAR, , \ $(eval $(call SetupArchive,BUILD_ACCESSBRIDGE_32_JAR, , \
SRCS := $(JDK_OUTPUTDIR)/classes_ab/32bit, \ SRCS := $(JDK_OUTPUTDIR)/classes_ab/32bit, \
INCLUDES := com/sun/java/accessibility, \ INCLUDES := com/sun/java/accessibility, \
...@@ -665,7 +666,7 @@ ifndef OPENJDK ...@@ -665,7 +666,7 @@ ifndef OPENJDK
JARS += $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-32.jar \ JARS += $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-32.jar \
$(IMAGES_OUTPUTDIR)/lib/ext/access-bridge.jar $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge.jar
else else
$(eval $(call SetupArchive,BUILD_ACCESSBRIDGE_64_JAR, , \ $(eval $(call SetupArchive,BUILD_ACCESSBRIDGE_64_JAR, , \
SRCS := $(JDK_OUTPUTDIR)/classes_ab/64bit, \ SRCS := $(JDK_OUTPUTDIR)/classes_ab/64bit, \
INCLUDES := com/sun/java/accessibility, \ INCLUDES := com/sun/java/accessibility, \
...@@ -673,10 +674,17 @@ ifndef OPENJDK ...@@ -673,10 +674,17 @@ ifndef OPENJDK
SKIP_METAINF := true)) SKIP_METAINF := true))
JARS += $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-64.jar JARS += $(IMAGES_OUTPUTDIR)/lib/ext/access-bridge-64.jar
endif
endif endif
endif endif
$(eval $(call SetupArchive,BUILD_JACCESS_JAR, , \
SRCS := $(JDK_OUTPUTDIR)/classes, \
INCLUDES := com/sun/java/accessibility/util, \
JAR := $(IMAGES_OUTPUTDIR)/lib/ext/jaccess.jar, \
SKIP_METAINF := true))
JARS += $(IMAGES_OUTPUTDIR)/lib/ext/jaccess.jar
########################################################################################## ##########################################################################################
# #
......
# #
# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -161,11 +161,13 @@ JRE_BIN_LIST := $(filter-out $(addprefix %, $(WINDOWS_JDKJRE_BIN_FILES)), $(JDKJ ...@@ -161,11 +161,13 @@ JRE_BIN_LIST := $(filter-out $(addprefix %, $(WINDOWS_JDKJRE_BIN_FILES)), $(JDKJ
ifeq ($(OPENJDK_TARGET_OS), windows) ifeq ($(OPENJDK_TARGET_OS), windows)
JDK_BIN_LIST := $(filter $(addprefix %, $(WINDOWS_JDK_BIN_FILES)), $(ALL_BIN_LIST)) JDK_BIN_LIST := $(filter $(addprefix %, $(WINDOWS_JDK_BIN_FILES)), $(ALL_BIN_LIST))
# On windows x86, the server jvm is filtered out from the j2re image. This could possibly # On windows x86, the server jvm is filtered out from the j2re image. This is historical
# be handled by profiles in the future. If no client jvm is built, leave server in. # and is not applied to compact profiles. If no client jvm is built, leave server in.
ifeq ($(OPENJDK_TARGET_CPU), x86) ifeq ($(OPENJDK_TARGET_CPU), x86)
ifeq ($(JVM_VARIANT_CLIENT), true) ifeq ($(JVM_VARIANT_CLIENT), true)
JRE_BIN_LIST := $(filter-out $(JDK_OUTPUTDIR)/bin/server/%, $(JRE_BIN_LIST)) ifeq ($(PROFILE), )
JRE_BIN_LIST := $(filter-out $(JDK_OUTPUTDIR)/bin/server/%, $(JRE_BIN_LIST))
endif
endif endif
endif endif
else else
......
# #
# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -116,6 +116,12 @@ endef ...@@ -116,6 +116,12 @@ endef
# #
HOTSPOT_IMPORT_FILES := $(addprefix $(LIBRARY_PREFIX), jvm.* saproc.* jsig.* sawindbg.* jvm_db.* jvm_dtrace.*) \ HOTSPOT_IMPORT_FILES := $(addprefix $(LIBRARY_PREFIX), jvm.* saproc.* jsig.* sawindbg.* jvm_db.* jvm_dtrace.*) \
Xusage.txt sa-jdi.jar Xusage.txt sa-jdi.jar
ifeq ($(OPENJDK_TARGET_OS), macosx)
# additional debug file
HOTSPOT_IMPORT_FILES += Info.plist
endif
$(eval $(call CopyDir,HOTSPOT0, $(HOTSPOT_LIB_DIR), $(INSTALL_LIBRARIES_HERE), $(HOTSPOT_IMPORT_FILES))) $(eval $(call CopyDir,HOTSPOT0, $(HOTSPOT_LIB_DIR), $(INSTALL_LIBRARIES_HERE), $(HOTSPOT_IMPORT_FILES)))
$(eval $(call CopyDir,HOTSPOT1, $(HOTSPOT_DIST)/lib, $(JDK_OUTPUTDIR)/lib, $(HOTSPOT_IMPORT_FILES))) $(eval $(call CopyDir,HOTSPOT1, $(HOTSPOT_DIST)/lib, $(JDK_OUTPUTDIR)/lib, $(HOTSPOT_IMPORT_FILES)))
......
...@@ -47,7 +47,6 @@ include profile-includes.txt ...@@ -47,7 +47,6 @@ include profile-includes.txt
# Note that some jars may be optional depending on the type of build (jdk vs. # Note that some jars may be optional depending on the type of build (jdk vs.
# openjdk) and the platform. # openjdk) and the platform.
# #
# WARNING: incoming lists are currently validated for linux only!
############################################################################### ###############################################################################
# These are jar files for which the contents vary depending on the profile # These are jar files for which the contents vary depending on the profile
......
...@@ -124,11 +124,11 @@ TOOL_CLDRCONVERTER = $(JAVA_SMALL) -cp $(JDK_OUTPUTDIR)/btclasses \ ...@@ -124,11 +124,11 @@ TOOL_CLDRCONVERTER = $(JAVA_SMALL) -cp $(JDK_OUTPUTDIR)/btclasses \
build.tools.cldrconverter.CLDRConverter build.tools.cldrconverter.CLDRConverter
TOOL_REMOVEMETHODS = $(JAVA_SMALL) -Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar \ TOOL_REMOVEMETHODS = $(JAVA_SMALL) -Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar \
-cp $(JDK_OUTPUTDIR)/btclasses:$(JDK_OUTPUTDIR) \ -cp '$(JDK_OUTPUTDIR)/btclasses$(PATH_SEP)$(JDK_OUTPUTDIR)' \
build.tools.classfile.RemoveMethods build.tools.classfile.RemoveMethods
TOOL_CHECKDEPS = $(JAVA_SMALL) -Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar \ TOOL_CHECKDEPS = $(JAVA_SMALL) -Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar \
-cp $(JDK_OUTPUTDIR)/btclasses:$(JDK_OUTPUTDIR) \ -cp '$(JDK_OUTPUTDIR)/btclasses$(PATH_SEP)$(JDK_OUTPUTDIR)' \
build.tools.deps.CheckDeps build.tools.deps.CheckDeps
TOOL_ADDTORESTRICTEDPKGS=$(JAVA_SMALL) -cp $(JDK_OUTPUTDIR)/btclasses \ TOOL_ADDTORESTRICTEDPKGS=$(JAVA_SMALL) -cp $(JDK_OUTPUTDIR)/btclasses \
......
0x00 U+0000
0x01 U+0001
0x02 U+0002
0x03 U+0003
0x04 U+009c
0x05 U+0009
0x06 U+0086
0x07 U+007f
0x08 U+0097
0x09 U+008d
0x0a U+008e
0x0b U+000b
0x0c U+000c
0x0d U+000d
0x0e U+000e
0x0f U+000f
0x10 U+0010
0x11 U+0011
0x12 U+0012
0x13 U+0013
0x14 U+009d
0x15 U+000a
0x16 U+0008
0x17 U+0087
0x18 U+0018
0x19 U+0019
0x1a U+0092
0x1b U+008f
0x1c U+001c
0x1d U+001d
0x1e U+001e
0x1f U+001f
0x20 U+0080
0x21 U+0081
0x22 U+0082
0x23 U+0083
0x24 U+0084
0x25 U+000a
0x26 U+0017
0x27 U+001b
0x28 U+0088
0x29 U+0089
0x2a U+008a
0x2b U+008b
0x2c U+008c
0x2d U+0005
0x2e U+0006
0x2f U+0007
0x30 U+0090
0x31 U+0091
0x32 U+0016
0x33 U+0093
0x34 U+0094
0x35 U+0095
0x36 U+0096
0x37 U+0004
0x38 U+0098
0x39 U+0099
0x3a U+009a
0x3b U+009b
0x3c U+0014
0x3d U+0015
0x3e U+009e
0x3f U+001a
0x40 U+0020
0x41 U+00a0
0x42 U+04d9
0x43 U+0493
0x44 U+0451
0x45 U+0454
0x46 U+0455
0x47 U+0456
0x48 U+049b
0x49 U+0458
0x4a U+005b
0x4b U+002e
0x4c U+003c
0x4d U+0028
0x4e U+002b
0x4f U+0021
0x50 U+0026
0x51 U+04a3
0x52 U+04e9
0x53 U+04b1
0x54 U+04af
0x55 U+045e
0x56 U+04bb
0x57 U+042a
0x58 U+2116
0x59 U+04d8
0x5a U+005d
0x5b U+0024
0x5c U+002a
0x5d U+0029
0x5e U+003b
0x5f U+005e
0x60 U+002d
0x61 U+002f
0x62 U+0492
0x63 U+0401
0x64 U+0404
0x65 U+0405
0x66 U+0406
0x67 U+049a
0x68 U+0408
0x69 U+04a2
0x6a U+007c
0x6b U+002c
0x6c U+0025
0x6d U+005f
0x6e U+003e
0x6f U+003f
0x70 U+04e8
0x71 U+04b0
0x72 U+04ae
0x73 U+00ad
0x74 U+040e
0x75 U+04ba
0x76 U+044e
0x77 U+0430
0x78 U+0431
0x79 U+0060
0x7a U+003a
0x7b U+0023
0x7c U+0040
0x7d U+0027
0x7e U+003d
0x7f U+0022
0x80 U+0446
0x81 U+0061
0x82 U+0062
0x83 U+0063
0x84 U+0064
0x85 U+0065
0x86 U+0066
0x87 U+0067
0x88 U+0068
0x89 U+0069
0x8a U+0434
0x8b U+0435
0x8c U+0444
0x8d U+0433
0x8e U+0445
0x8f U+0438
0x90 U+0439
0x91 U+006a
0x92 U+006b
0x93 U+006c
0x94 U+006d
0x95 U+006e
0x96 U+006f
0x97 U+0070
0x98 U+0071
0x99 U+0072
0x9a U+043a
0x9b U+043b
0x9c U+043c
0x9d U+043d
0x9e U+043e
0x9f U+043f
0xa0 U+044f
0xa1 U+007e
0xa2 U+0073
0xa3 U+0074
0xa4 U+0075
0xa5 U+0076
0xa6 U+0077
0xa7 U+0078
0xa8 U+0079
0xa9 U+007a
0xaa U+0440
0xab U+0441
0xac U+0442
0xad U+0443
0xae U+0436
0xaf U+0432
0xb0 U+044c
0xb1 U+044b
0xb2 U+0437
0xb3 U+0448
0xb4 U+044d
0xb5 U+0449
0xb6 U+0447
0xb7 U+044a
0xb8 U+042e
0xb9 U+0410
0xba U+0411
0xbb U+0426
0xbc U+0414
0xbd U+0415
0xbe U+0424
0xbf U+0413
0xc0 U+007b
0xc1 U+0041
0xc2 U+0042
0xc3 U+0043
0xc4 U+0044
0xc5 U+0045
0xc6 U+0046
0xc7 U+0047
0xc8 U+0048
0xc9 U+0049
0xca U+0425
0xcb U+0418
0xcc U+0419
0xcd U+041a
0xce U+041b
0xcf U+041c
0xd0 U+007d
0xd1 U+004a
0xd2 U+004b
0xd3 U+004c
0xd4 U+004d
0xd5 U+004e
0xd6 U+004f
0xd7 U+0050
0xd8 U+0051
0xd9 U+0052
0xda U+041d
0xdb U+041e
0xdc U+041f
0xdd U+042f
0xde U+0420
0xdf U+0421
0xe0 U+005c
0xe1 U+20ac
0xe2 U+0053
0xe3 U+0054
0xe4 U+0055
0xe5 U+0056
0xe6 U+0057
0xe7 U+0058
0xe8 U+0059
0xe9 U+005a
0xea U+0422
0xeb U+0423
0xec U+0416
0xed U+0412
0xee U+042c
0xef U+042b
0xf0 U+0030
0xf1 U+0031
0xf2 U+0032
0xf3 U+0033
0xf4 U+0034
0xf5 U+0035
0xf6 U+0036
0xf7 U+0037
0xf8 U+0038
0xf9 U+0039
0xfa U+0417
0xfb U+0428
0xfc U+042d
0xfd U+0429
0xfe U+0427
0xff U+009f
...@@ -22,6 +22,7 @@ IBM1146 IBM01146 Cp1146 false sun.nio.cs.ext ...@@ -22,6 +22,7 @@ IBM1146 IBM01146 Cp1146 false sun.nio.cs.ext
IBM1147 IBM01147 Cp1147 false sun.nio.cs.ext IBM1147 IBM01147 Cp1147 false sun.nio.cs.ext
IBM1148 IBM01148 Cp1148 false sun.nio.cs.ext IBM1148 IBM01148 Cp1148 false sun.nio.cs.ext
IBM1149 IBM01149 Cp1149 false sun.nio.cs.ext IBM1149 IBM01149 Cp1149 false sun.nio.cs.ext
IBM1166 x-IBM1166 Cp1166 false sun.nio.cs.ext
IBM273 IBM273 Cp273 false sun.nio.cs.ext IBM273 IBM273 Cp273 false sun.nio.cs.ext
IBM277 IBM277 Cp277 false sun.nio.cs.ext IBM277 IBM277 Cp277 false sun.nio.cs.ext
IBM278 IBM278 Cp278 false sun.nio.cs.ext IBM278 IBM278 Cp278 false sun.nio.cs.ext
......
...@@ -21,4 +21,4 @@ ...@@ -21,4 +21,4 @@
# or visit www.oracle.com if you need additional information or have any # or visit www.oracle.com if you need additional information or have any
# questions. # questions.
# #
tzdata2015b tzdata2015d
...@@ -342,35 +342,29 @@ Rule Egypt 2007 only - Sep Thu>=1 24:00 0 - ...@@ -342,35 +342,29 @@ Rule Egypt 2007 only - Sep Thu>=1 24:00 0 -
# above) says DST had no affect on electricity consumption. There is # above) says DST had no affect on electricity consumption. There is
# no information about when DST will end this fall. See: # no information about when DST will end this fall. See:
# http://abcnews.go.com/International/wireStory/el-sissi-pushes-egyptians-line-23614833 # http://abcnews.go.com/International/wireStory/el-sissi-pushes-egyptians-line-23614833
# From Steffen Thorsen (2015-04-08):
# Egypt will start DST on midnight after Thursday, April 30, 2015.
# This is based on a law (no 35) from May 15, 2014 saying it starts the last
# Thursday of April.... Clocks will still be turned back for Ramadan, but
# dates not yet announced....
# http://almogaz.com/news/weird-news/2015/04/05/1947105 ...
# http://www.timeanddate.com/news/time/egypt-starts-dst-2015.html
# From Ahmed Nazmy (2015-04-20):
# Egypt's ministers cabinet just announced ... that it will cancel DST at
# least for 2015.
# #
# For now, guess that later spring and fall transitions will use # From Tim Parenti (2015-04-20):
# 2010's rules, and guess that Egypt will switch to standard time at # http://english.ahram.org.eg/WriterArticles/NewsContentP/1/128195/Egypt/No-daylight-saving-this-summer-Egypts-prime-minist.aspx
# 24:00 the last Thursday before Ramadan, and back to DST at 00:00 the # "Egypt's cabinet agreed on Monday not to switch clocks for daylight saving
# first Friday after Ramadan. To implement this, # time this summer, and carry out studies on the possibility of canceling the
# transition dates for 2015 through 2037 were determined by running # practice altogether in future years."
# the following program under GNU Emacs 24.3, with the results integrated #
# by hand into the table below. Ramadan again intrudes on the guessed # From Paul Eggert (2015-04-20):
# DST starting in 2038, but that's beyond our somewhat-arbitrary cutoff. # For now, assume DST will be canceled. Any resumption would likely
# (let ((islamic-year 1436)) # use different rules anyway.
# (while (< islamic-year 1460)
# (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year)))
# (b (calendar-islamic-to-absolute (list 10 1 islamic-year)))
# (friday 5))
# (while (/= friday (mod a 7))
# (setq a (1- a)))
# (while (/= friday (mod b 7))
# (setq b (1+ b)))
# (setq a (1- a))
# (setq b (1- b))
# (setq a (calendar-gregorian-from-absolute a))
# (setq b (calendar-gregorian-from-absolute b))
# (insert
# (format
# (concat "Rule\tEgypt\t%d\tonly\t-\t%s\t%2d\t24:00\t0\t-\n"
# "Rule\tEgypt\t%d\tonly\t-\t%s\t%2d\t24:00\t1:00\tS\n")
# (car (cdr (cdr a))) (calendar-month-name (car a) t) (car (cdr a))
# (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b)))))
# (setq islamic-year (+ 1 islamic-year))))
Rule Egypt 2008 only - Aug lastThu 24:00 0 - Rule Egypt 2008 only - Aug lastThu 24:00 0 -
Rule Egypt 2009 only - Aug 20 24:00 0 - Rule Egypt 2009 only - Aug 20 24:00 0 -
Rule Egypt 2010 only - Aug 10 24:00 0 - Rule Egypt 2010 only - Aug 10 24:00 0 -
...@@ -379,22 +373,7 @@ Rule Egypt 2010 only - Sep lastThu 24:00 0 - ...@@ -379,22 +373,7 @@ Rule Egypt 2010 only - Sep lastThu 24:00 0 -
Rule Egypt 2014 only - May 15 24:00 1:00 S Rule Egypt 2014 only - May 15 24:00 1:00 S
Rule Egypt 2014 only - Jun 26 24:00 0 - Rule Egypt 2014 only - Jun 26 24:00 0 -
Rule Egypt 2014 only - Jul 31 24:00 1:00 S Rule Egypt 2014 only - Jul 31 24:00 1:00 S
Rule Egypt 2014 max - Sep lastThu 24:00 0 - Rule Egypt 2014 only - Sep lastThu 24:00 0 -
Rule Egypt 2015 2019 - Apr lastFri 0:00s 1:00 S
Rule Egypt 2015 only - Jun 11 24:00 0 -
Rule Egypt 2015 only - Jul 23 24:00 1:00 S
Rule Egypt 2016 only - Jun 2 24:00 0 -
Rule Egypt 2016 only - Jul 7 24:00 1:00 S
Rule Egypt 2017 only - May 25 24:00 0 -
Rule Egypt 2017 only - Jun 29 24:00 1:00 S
Rule Egypt 2018 only - May 10 24:00 0 -
Rule Egypt 2018 only - Jun 14 24:00 1:00 S
Rule Egypt 2019 only - May 2 24:00 0 -
Rule Egypt 2019 only - Jun 6 24:00 1:00 S
Rule Egypt 2020 only - May 28 24:00 1:00 S
Rule Egypt 2021 only - May 13 24:00 1:00 S
Rule Egypt 2022 only - May 5 24:00 1:00 S
Rule Egypt 2023 max - Apr lastFri 0:00s 1:00 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Africa/Cairo 2:05:09 - LMT 1900 Oct Zone Africa/Cairo 2:05:09 - LMT 1900 Oct
......
...@@ -38,41 +38,6 @@ ...@@ -38,41 +38,6 @@
# I made up all time zone abbreviations mentioned here; corrections welcome! # I made up all time zone abbreviations mentioned here; corrections welcome!
# FORMAT is 'zzz' and GMTOFF is 0 for locations while uninhabited. # FORMAT is 'zzz' and GMTOFF is 0 for locations while uninhabited.
# These rules are stolen from the 'southamerica' file.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule ArgAQ 1964 1966 - Mar 1 0:00 0 -
Rule ArgAQ 1964 1966 - Oct 15 0:00 1:00 S
Rule ArgAQ 1967 only - Apr 2 0:00 0 -
Rule ArgAQ 1967 1968 - Oct Sun>=1 0:00 1:00 S
Rule ArgAQ 1968 1969 - Apr Sun>=1 0:00 0 -
Rule ArgAQ 1974 only - Jan 23 0:00 1:00 S
Rule ArgAQ 1974 only - May 1 0:00 0 -
Rule ChileAQ 1972 1986 - Mar Sun>=9 3:00u 0 -
Rule ChileAQ 1974 1987 - Oct Sun>=9 4:00u 1:00 S
Rule ChileAQ 1987 only - Apr 12 3:00u 0 -
Rule ChileAQ 1988 1989 - Mar Sun>=9 3:00u 0 -
Rule ChileAQ 1988 only - Oct Sun>=1 4:00u 1:00 S
Rule ChileAQ 1989 only - Oct Sun>=9 4:00u 1:00 S
Rule ChileAQ 1990 only - Mar 18 3:00u 0 -
Rule ChileAQ 1990 only - Sep 16 4:00u 1:00 S
Rule ChileAQ 1991 1996 - Mar Sun>=9 3:00u 0 -
Rule ChileAQ 1991 1997 - Oct Sun>=9 4:00u 1:00 S
Rule ChileAQ 1997 only - Mar 30 3:00u 0 -
Rule ChileAQ 1998 only - Mar Sun>=9 3:00u 0 -
Rule ChileAQ 1998 only - Sep 27 4:00u 1:00 S
Rule ChileAQ 1999 only - Apr 4 3:00u 0 -
Rule ChileAQ 1999 2010 - Oct Sun>=9 4:00u 1:00 S
Rule ChileAQ 2000 2007 - Mar Sun>=9 3:00u 0 -
# N.B.: the end of March 29 in Chile is March 30 in Universal time,
# which is used below in specifying the transition.
Rule ChileAQ 2008 only - Mar 30 3:00u 0 -
Rule ChileAQ 2009 only - Mar Sun>=9 3:00u 0 -
Rule ChileAQ 2010 only - Apr Sun>=1 3:00u 0 -
Rule ChileAQ 2011 only - May Sun>=2 3:00u 0 -
Rule ChileAQ 2011 only - Aug Sun>=16 4:00u 1:00 S
Rule ChileAQ 2012 2015 - Apr Sun>=23 3:00u 0 -
Rule ChileAQ 2012 2014 - Sep Sun>=2 4:00u 1:00 S
# Argentina - year-round bases # Argentina - year-round bases
# Belgrano II, Confin Coast, -770227-0343737, since 1972-02-05 # Belgrano II, Confin Coast, -770227-0343737, since 1972-02-05
# Carlini, Potter Cove, King George Island, -6414-0602320, since 1982-01 # Carlini, Potter Cove, King George Island, -6414-0602320, since 1982-01
...@@ -367,21 +332,7 @@ Zone Antarctica/Rothera 0 - zzz 1976 Dec 1 ...@@ -367,21 +332,7 @@ Zone Antarctica/Rothera 0 - zzz 1976 Dec 1
# USA - year-round bases # USA - year-round bases
# #
# Palmer, Anvers Island, since 1965 (moved 2 miles in 1968) # Palmer, Anvers Island, since 1965 (moved 2 miles in 1968)
# # See 'southamerica' for Antarctica/Palmer, since it uses South American DST.
# From Ethan Dicks (1996-10-06):
# It keeps the same time as Punta Arenas, Chile, because, just like us
# and the South Pole, that's the other end of their supply line....
# I verified with someone who was there that since 1980,
# Palmer has followed Chile. Prior to that, before the Falklands War,
# Palmer used to be supplied from Argentina.
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Antarctica/Palmer 0 - zzz 1965
-4:00 ArgAQ AR%sT 1969 Oct 5
-3:00 ArgAQ AR%sT 1982 May
-4:00 ChileAQ CL%sT 2015 Apr 26 3:00u
-3:00 - CLT
#
# #
# McMurdo Station, Ross Island, since 1955-12 # McMurdo Station, Ross Island, since 1955-12
# Amundsen-Scott South Pole Station, continuously occupied since 1956-11-20 # Amundsen-Scott South Pole Station, continuously occupied since 1956-11-20
......
...@@ -43,6 +43,7 @@ Link America/Argentina/Jujuy America/Jujuy ...@@ -43,6 +43,7 @@ Link America/Argentina/Jujuy America/Jujuy
Link America/Indiana/Knox America/Knox_IN Link America/Indiana/Knox America/Knox_IN
Link America/Kentucky/Louisville America/Louisville Link America/Kentucky/Louisville America/Louisville
Link America/Argentina/Mendoza America/Mendoza Link America/Argentina/Mendoza America/Mendoza
Link America/Toronto America/Montreal
Link America/Rio_Branco America/Porto_Acre Link America/Rio_Branco America/Porto_Acre
Link America/Argentina/Cordoba America/Rosario Link America/Argentina/Cordoba America/Rosario
Link America/Denver America/Shiprock Link America/Denver America/Shiprock
......
...@@ -99,7 +99,7 @@ ...@@ -99,7 +99,7 @@
# 1:00:14 SET Swedish (1879-1899)* # 1:00:14 SET Swedish (1879-1899)*
# 2:00 EET EEST Eastern Europe # 2:00 EET EEST Eastern Europe
# 3:00 FET Further-eastern Europe (2011-2014)* # 3:00 FET Further-eastern Europe (2011-2014)*
# 3:00 MSK MSD MSM* Moscow # 3:00 MSK MSD MSM* Minsk, Moscow
# From Peter Ilieve (1994-12-04), # From Peter Ilieve (1994-12-04),
# The original six [EU members]: Belgium, France, (West) Germany, Italy, # The original six [EU members]: Belgium, France, (West) Germany, Italy,
......
...@@ -250,9 +250,14 @@ Zone PST8PDT -8:00 US P%sT ...@@ -250,9 +250,14 @@ Zone PST8PDT -8:00 US P%sT
# The law doesn't give abbreviations. # The law doesn't give abbreviations.
# #
# From Paul Eggert (2000-01-08), following a heads-up from Rives McDow: # From Paul Eggert (2000-01-08), following a heads-up from Rives McDow:
# Public law 106-564 (2000-12-23) introduced the abbreviation # Public law 106-564 (2000-12-23) introduced ... "Chamorro Standard Time"
# "Chamorro Standard Time" for time in Guam and the Northern Marianas. # for time in Guam and the Northern Marianas. See the file "australasia".
# See the file "australasia". #
# From Paul Eggert (2015-04-17):
# HST and HDT are standardized abbreviations for Hawaii-Aleutian
# standard and daylight times. See section 9.47 (p 234) of the
# U.S. Government Printing Office Style Manual (2008)
# http://www.gpo.gov/fdsys/pkg/GPO-STYLEMANUAL-2008/pdf/GPO-STYLEMANUAL-2008.pdf
# From Arthur David Olson, 2005-08-09 # From Arthur David Olson, 2005-08-09
# The following was signed into law on 2005-08-08. # The following was signed into law on 2005-08-08.
...@@ -559,7 +564,7 @@ Zone America/Adak 12:13:21 - LMT 1867 Oct 18 ...@@ -559,7 +564,7 @@ Zone America/Adak 12:13:21 - LMT 1867 Oct 18
-11:00 - BST 1969 -11:00 - BST 1969
-11:00 US B%sT 1983 Oct 30 2:00 -11:00 US B%sT 1983 Oct 30 2:00
-10:00 US AH%sT 1983 Nov 30 -10:00 US AH%sT 1983 Nov 30
-10:00 US HA%sT -10:00 US H%sT
# The following switches don't quite make our 1970 cutoff. # The following switches don't quite make our 1970 cutoff.
# #
# Shanks writes that part of southwest Alaska (e.g. Aniak) # Shanks writes that part of southwest Alaska (e.g. Aniak)
...@@ -1354,14 +1359,9 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 ...@@ -1354,14 +1359,9 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9
# Quebec # Quebec
# From Paul Eggert (2013-08-30): # From Paul Eggert (2015-03-24):
# Since 1970 most of Quebec has been like Toronto. # See America/Toronto for most of Quebec, including Montreal.
# However, because earlier versions of the tz database mistakenly relied on data #
# from Shanks & Pottenger saying that Quebec differed from Ontario after 1970,
# a separate entry was created for most of Quebec. We're loath to lose
# its pre-1970 info, even though the tz database is normally limited to
# zones that differ after 1970, so keep this otherwise out-of-scope entry.
# Matthews and Vincent (1998) also write that Quebec east of the -63 # Matthews and Vincent (1998) also write that Quebec east of the -63
# meridian is supposed to observe AST, but residents as far east as # meridian is supposed to observe AST, but residents as far east as
# Natashquan use EST/EDT, and residents east of Natashquan use AST. # Natashquan use EST/EDT, and residents east of Natashquan use AST.
...@@ -1375,39 +1375,10 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 ...@@ -1375,39 +1375,10 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9
# For lack of better info, guess this practice began around 1970, contra to # For lack of better info, guess this practice began around 1970, contra to
# Shanks & Pottenger who have this region observing AST/ADT. # Shanks & Pottenger who have this region observing AST/ADT.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Mont 1917 only - Mar 25 2:00 1:00 D
Rule Mont 1917 only - Apr 24 0:00 0 S
Rule Mont 1919 only - Mar 31 2:30 1:00 D
Rule Mont 1919 only - Oct 25 2:30 0 S
Rule Mont 1920 only - May 2 2:30 1:00 D
Rule Mont 1920 1922 - Oct Sun>=1 2:30 0 S
Rule Mont 1921 only - May 1 2:00 1:00 D
Rule Mont 1922 only - Apr 30 2:00 1:00 D
Rule Mont 1924 only - May 17 2:00 1:00 D
Rule Mont 1924 1926 - Sep lastSun 2:30 0 S
Rule Mont 1925 1926 - May Sun>=1 2:00 1:00 D
Rule Mont 1927 1937 - Apr lastSat 24:00 1:00 D
Rule Mont 1927 1937 - Sep lastSat 24:00 0 S
Rule Mont 1938 1940 - Apr lastSun 0:00 1:00 D
Rule Mont 1938 1939 - Sep lastSun 0:00 0 S
Rule Mont 1946 1973 - Apr lastSun 2:00 1:00 D
Rule Mont 1945 1948 - Sep lastSun 2:00 0 S
Rule Mont 1949 1950 - Oct lastSun 2:00 0 S
Rule Mont 1951 1956 - Sep lastSun 2:00 0 S
Rule Mont 1957 1973 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Blanc-Sablon -3:48:28 - LMT 1884 Zone America/Blanc-Sablon -3:48:28 - LMT 1884
-4:00 Canada A%sT 1970 -4:00 Canada A%sT 1970
-4:00 - AST -4:00 - AST
Zone America/Montreal -4:54:16 - LMT 1884
-5:00 Mont E%sT 1918
-5:00 Canada E%sT 1919
-5:00 Mont E%sT 1942 Feb 9 2:00s
-5:00 Canada E%sT 1946
-5:00 Mont E%sT 1974
-5:00 Canada E%sT
# Ontario # Ontario
...@@ -1898,17 +1869,115 @@ Zone America/Creston -7:46:04 - LMT 1884 ...@@ -1898,17 +1869,115 @@ Zone America/Creston -7:46:04 - LMT 1884
# Dawson switched to PST in 1973. Inuvik switched to MST in 1979. # Dawson switched to PST in 1973. Inuvik switched to MST in 1979.
# Mathew Englander (1996-10-07) gives the following refs: # Mathew Englander (1996-10-07) gives the following refs:
# * 1967. Paragraph 28(34)(g) of the Interpretation Act, S.C. 1967-68, # * 1967. Paragraph 28(34)(g) of the Interpretation Act, S.C. 1967-68,
# c. 7 defines Yukon standard time as UTC-9. This is still valid; # c. 7 defines Yukon standard time as UTC-9....
# see Interpretation Act, R.S.C. 1985, c. I-21, s. 35(1). # see Interpretation Act, R.S.C. 1985, c. I-21, s. 35(1).
# [http://canlii.ca/t/7vhg]
# * C.O. 1973/214 switched Yukon to PST on 1973-10-28 00:00. # * C.O. 1973/214 switched Yukon to PST on 1973-10-28 00:00.
# * O.I.C. 1980/02 established DST. # * O.I.C. 1980/02 established DST.
# * O.I.C. 1987/056 changed DST to Apr firstSun 2:00 to Oct lastSun 2:00. # * O.I.C. 1987/056 changed DST to Apr firstSun 2:00 to Oct lastSun 2:00.
# Shanks & Pottenger say Yukon's 1973-10-28 switch was at 2:00; go
# with Englander. # From Brian Inglis (2015-04-14):
# From Chris Walton (2006-06-26): #
# Here is a link to the old daylight saving portion of the interpretation # I tried to trace the history of Yukon time and found the following
# act which was last updated in 1987: # regulations, giving the reference title and URL if found, regulation name,
# http://www.gov.yk.ca/legislation/regs/oic1987_056.pdf # and relevant quote if available. Each regulation specifically revokes its
# predecessor. The final reference is to the current Interpretation Act
# authorizing and resulting from these regulatory changes.
#
# Only recent regulations were retrievable via Yukon government site search or
# index, and only some via Canadian legal sources. Other sources used include
# articles titled "Standard Time and Time Zones in Canada" from JRASC via ADS
# Abstracts, cited by ADO for 1932 ..., and updated versions from 1958 and
# 1970 quoted below; each article includes current extracts from provincial
# and territorial ST and DST regulations at the end, summaries and details of
# standard times and daylight saving time at many locations across Canada,
# with time zone maps, tables and calculations for Canadian Sunrise, Sunset,
# and LMST; they also cover many countries and global locations, with a chart
# and table showing current Universal Time offsets, and may be useful as
# another source of information for 1970 and earlier.
#
# * Standard Time and Time Zones in Canada; Smith, C.C.; JRASC, Vol. 26,
# pp.49-77; February 1932; SAO/NASA Astrophysics Data System (ADS)
# http://adsabs.harvard.edu/abs/1932JRASC..26...49S from p.75:
# Yukon Interpretation Ordinance
# Yukon standard time is the local mean time at the one hundred and
# thirty-fifth meridian.
#
# * Standard Time and Time Zones in Canada; Smith, C.C.; Thomson, Malcolm M.;
# JRASC, Vol. 52, pp.193-223; October 1958; SAO/NASA Astrophysics Data System
# (ADS) http://adsabs.harvard.edu/abs/1958JRASC..52..193S from pp.220-1:
# Yukon Interpretation Ordinance, 1955, Chap. 16.
#
# (1) Subject to this section, standard time shall be reckoned as nine
# hours behind Greenwich Time and called Yukon Standard Time.
#
# (2) Notwithstanding subsection (1), the Commissioner may make regulations
# varying the manner of reckoning standard time.
#
# * Yukon Territory Commissioner's Order 1966-20 Interpretation Ordinance
# http://? - no online source found
#
# * Standard Time and Time Zones in Canada; Thomson, Malcolm M.; JRASC,
# Vol. 64, pp.129-162; June 1970; SAO/NASA Astrophysics Data System (ADS)
# http://adsabs.harvard.edu/abs/1970JRASC..64..129T from p.156: Yukon
# Territory Commissioner's Order 1967-59 Interpretation Ordinance ...
#
# 1. Commissioner's Order 1966-20 dated at Whitehorse in the Yukon
# Territory on 27th January, 1966, is hereby revoked.
#
# 2. Yukon (East) Standard Time as defined by section 36 of the
# Interpretation Ordinance from and after mid-night on the 28th day of May,
# 1967 shall be reckoned in the same manner as Pacific Standard Time, that
# is to say, eight hours behind Greenwich Time in the area of the Yukon
# Territory lying east of the 138th degree longitude west.
#
# 3. In the remainder of the Territory, lying west of the 138th degree
# longitude west, Yukon (West) Standard Time shall be reckoned as nine
# hours behind Greenwich Time.
#
# * Yukon Standard Time defined as Pacific Standard Time, YCO 1973/214
# http://www.canlii.org/en/yk/laws/regu/yco-1973-214/latest/yco-1973-214.html
# C.O. 1973/214 INTERPRETATION ACT ...
#
# 1. Effective October 28, 1973 Commissioner's Order 1967/59 is hereby
# revoked.
#
# 2. Yukon Standard Time as defined by section 36 of the Interpretation
# Act from and after midnight on the twenty-eighth day of October, 1973
# shall be reckoned in the same manner as Pacific Standard Time, that is
# to say eight hours behind Greenwich Time.
#
# * O.I.C. 1980/02 INTERPRETATION ACT
# http://? - no online source found
#
# * Yukon Daylight Saving Time, YOIC 1987/56
# http://www.canlii.org/en/yk/laws/regu/yoic-1987-56/latest/yoic-1987-56.html
# O.I.C. 1987/056 INTERPRETATION ACT ...
#
# In every year between
# (a) two o'clock in the morning in the first Sunday in April, and
# (b) two o'clock in the morning in the last Sunday in October,
# Standard Time shall be reckoned as seven hours behind Greenwich Time and
# called Yukon Daylight Saving Time.
# ...
# Dated ... 9th day of March, A.D., 1987.
#
# * Yukon Daylight Saving Time 2006, YOIC 2006/127
# http://www.canlii.org/en/yk/laws/regu/yoic-2006-127/latest/yoic-2006-127.html
# O.I.C. 2006/127 INTERPRETATION ACT ...
#
# 1. In Yukon each year the time for general purposes shall be 7 hours
# behind Greenwich mean time during the period commencing at two o'clock
# in the forenoon on the second Sunday of March and ending at two o'clock
# in the forenoon on the first Sunday of November and shall be called
# Yukon Daylight Saving Time.
#
# 2. Order-in-Council 1987/56 is revoked.
#
# 3. This order comes into force January 1, 2007.
#
# * Interpretation Act, RSY 2002, c 125
# http://www.canlii.org/en/yk/laws/stat/rsy-2002-c-125/latest/rsy-2002-c-125.html
# From Rives McDow (1999-09-04): # From Rives McDow (1999-09-04):
# Nunavut ... moved ... to incorporate the whole territory into one time zone. # Nunavut ... moved ... to incorporate the whole territory into one time zone.
...@@ -2134,7 +2203,7 @@ Zone America/Inuvik 0 - zzz 1953 # Inuvik founded ...@@ -2134,7 +2203,7 @@ Zone America/Inuvik 0 - zzz 1953 # Inuvik founded
-7:00 NT_YK M%sT 1980 -7:00 NT_YK M%sT 1980
-7:00 Canada M%sT -7:00 Canada M%sT
Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20 Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20
-9:00 NT_YK Y%sT 1966 Jul 1 2:00 -9:00 NT_YK Y%sT 1967 May 28 0:00
-8:00 NT_YK P%sT 1980 -8:00 NT_YK P%sT 1980
-8:00 Canada P%sT -8:00 Canada P%sT
Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
......
...@@ -1121,6 +1121,60 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914 ...@@ -1121,6 +1121,60 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
# Chile # Chile
# From Paul Eggert (2015-04-03):
# Shanks & Pottenger says America/Santiago introduced standard time in
# 1890 and rounds its UTC offset to 70W40; guess that in practice this
# was the same offset as in 1916-1919. It also says Pacific/Easter
# standardized on 109W22 in 1890; assume this didn't change the clocks.
#
# Dates for America/Santiago from 1910 to 2004 are primarily from
# the following source, cited by Oscar van Vlijmen (2006-10-08):
# [1] Chile Law
# http://www.webexhibits.org/daylightsaving/chile.html
# This contains a copy of a this official table:
# Cambios en la hora oficial de Chile desde 1900 (retrieved 2008-03-30)
# http://web.archive.org/web/20080330200901/http://www.horaoficial.cl/cambio.htm
# [1] needs several corrections, though.
#
# The first set of corrections is from:
# [2] History of the Official Time of Chile
# http://www.horaoficial.cl/ing/horaof_ing.html (retrieved 2012-03-06). See:
# http://web.archive.org/web/20120306042032/http://www.horaoficial.cl/ing/horaof_ing.html
# This is an English translation of:
# Historia de la hora oficial de Chile (retrieved 2012-10-24). See:
# http://web.archive.org/web/20121024234627/http://www.horaoficial.cl/horaof.htm
# A fancier Spanish version (requiring mouse-clicking) is at:
# http://www.horaoficial.cl/historia_hora.html
# Conflicts between [1] and [2] were resolved as follows:
#
# - [1] says the 1910 transition was Jan 1, [2] says Jan 10 and cites
# Boletín Nº 1, Aviso Nº 1 (1910). Go with [2].
#
# - [1] says SMT was -4:42:45, [2] says Chile's official time from
# 1916 to 1919 was -4:42:46.3, the meridian of Chile's National
# Astronomical Observatory (OAN), then located in what is now
# Quinta Normal in Santiago. Go with [2], rounding it to -4:42:46.
#
# - [1] says the 1918 transition was Sep 1, [2] says Sep 10 and cites
# Boletín Nº 22, Aviso Nº 129/1918 (1918-08-23). Go with [2].
#
# - [1] does not give times for transitions; assume they occur
# at midnight mainland time, the current common practice. However,
# go with [2]'s specification of 23:00 for the 1947-05-21 transition.
#
# Another correction to [1] is from Jesper Nørgaard Welen, who
# wrote (2006-10-08), "I think that there are some obvious mistakes in
# the suggested link from Oscar van Vlijmen,... for instance entry 66
# says that GMT-4 ended 1990-09-12 while entry 67 only begins GMT-3 at
# 1990-09-15 (they should have been 1990-09-15 and 1990-09-16
# respectively), but anyhow it clears up some doubts too."
#
# Data for Pacific/Easter from 1910 through 1967 come from Shanks &
# Pottenger. After that, for lack of better info assume
# Pacific/Easter is always two hours behind America/Santiago;
# this is known to work for DST transitions starting in 2008 and
# may well be true for earlier transitions.
# From Eduardo Krell (1995-10-19): # From Eduardo Krell (1995-10-19):
# The law says to switch to DST at midnight [24:00] on the second SATURDAY # The law says to switch to DST at midnight [24:00] on the second SATURDAY
# of October.... The law is the same for March and October. # of October.... The law is the same for March and October.
...@@ -1133,78 +1187,35 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914 ...@@ -1133,78 +1187,35 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
# Because of the same drought, the government decided to end DST later, # Because of the same drought, the government decided to end DST later,
# on April 3, (one-time change). # on April 3, (one-time change).
# From Oscar van Vlijmen (2006-10-08):
# http://www.horaoficial.cl/cambio.htm
# From Jesper Nørgaard Welen (2006-10-08):
# I think that there are some obvious mistakes in the suggested link
# from Oscar van Vlijmen,... for instance entry 66 says that GMT-4
# ended 1990-09-12 while entry 67 only begins GMT-3 at 1990-09-15
# (they should have been 1990-09-15 and 1990-09-16 respectively), but
# anyhow it clears up some doubts too.
# From Paul Eggert (2014-08-12):
# The following data entries for Chile and America/Santiago are from
# <http://www.horaoficial.cl/horaof.htm> (2006-09-20), transcribed by
# Jesper Nørgaard Welen. The data entries for Pacific/Easter are from Shanks
# & Pottenger, except with DST transitions after 1932 cloned from
# America/Santiago. The pre-1980 Pacific/Easter data entries are dubious,
# but we have no other source.
# From Germán Poo-Caamaño (2008-03-03): # From Germán Poo-Caamaño (2008-03-03):
# Due to drought, Chile extends Daylight Time in three weeks. This # Due to drought, Chile extends Daylight Time in three weeks. This
# is one-time change (Saturday 3/29 at 24:00 for America/Santiago # is one-time change (Saturday 3/29 at 24:00 for America/Santiago
# and Saturday 3/29 at 22:00 for Pacific/Easter) # and Saturday 3/29 at 22:00 for Pacific/Easter)
# The Supreme Decree is located at # The Supreme Decree is located at
# http://www.shoa.cl/servicios/supremo316.pdf # http://www.shoa.cl/servicios/supremo316.pdf
# and the instructions for 2008 are located in: #
# http://www.horaoficial.cl/cambio.htm
# From José Miguel Garrido (2008-03-05): # From José Miguel Garrido (2008-03-05):
# ...
# You could see the announces of the change on
# http://www.shoa.cl/noticias/2008/04hora/hora.htm # http://www.shoa.cl/noticias/2008/04hora/hora.htm
# From Angel Chiang (2010-03-04): # From Angel Chiang (2010-03-04):
# Subject: DST in Chile exceptionally extended to 3 April due to earthquake # Subject: DST in Chile exceptionally extended to 3 April due to earthquake
# http://www.gobiernodechile.cl/viewNoticia.aspx?idArticulo=30098 # http://www.gobiernodechile.cl/viewNoticia.aspx?idArticulo=30098
# (in Spanish, last paragraph).
# #
# This is breaking news. There should be more information available later.
# From Arthur David Olson (2010-03-06): # From Arthur David Olson (2010-03-06):
# Angel Chiang's message confirmed by Julio Pacheco; Julio provided a patch. # Angel Chiang's message confirmed by Julio Pacheco; Julio provided a patch.
# From Glenn Eychaner (2011-03-02):
# It appears that the Chilean government has decided to postpone the
# change from summer time to winter time again, by three weeks to April
# 2nd:
# http://www.emol.com/noticias/nacional/detalle/detallenoticias.asp?idnoticia=467651
#
# This is not yet reflected in the official "cambio de hora" site, but
# probably will be soon:
# http://www.horaoficial.cl/cambio.htm
# From Arthur David Olson (2011-03-02):
# The emol.com article mentions a water shortage as the cause of the
# postponement, which may mean that it's not a permanent change.
# From Glenn Eychaner (2011-03-28): # From Glenn Eychaner (2011-03-28):
# The article:
# http://diario.elmercurio.com/2011/03/28/_portada/_portada/noticias/7565897A-CA86-49E6-9E03-660B21A4883E.htm?id=3D{7565897A-CA86-49E6-9E03-660B21A4883E} # http://diario.elmercurio.com/2011/03/28/_portada/_portada/noticias/7565897A-CA86-49E6-9E03-660B21A4883E.htm?id=3D{7565897A-CA86-49E6-9E03-660B21A4883E}
#
# In English: # In English:
# Chile's clocks will go back an hour this year on the 7th of May instead # Chile's clocks will go back an hour this year on the 7th of May instead
# of this Saturday. They will go forward again the 3rd Saturday in # of this Saturday. They will go forward again the 3rd Saturday in
# August, not in October as they have since 1968. This is a pilot plan # August, not in October as they have since 1968.
# which will be reevaluated in 2012.
# From Mauricio Parada (2012-02-22), translated by Glenn Eychaner (2012-02-23): # From Mauricio Parada (2012-02-22), translated by Glenn Eychaner (2012-02-23):
# As stated in the website of the Chilean Energy Ministry # As stated in the website of the Chilean Energy Ministry
# http://www.minenergia.cl/ministerio/noticias/generales/gobierno-anuncia-fechas-de-cambio-de.html # http://www.minenergia.cl/ministerio/noticias/generales/gobierno-anuncia-fechas-de-cambio-de.html
# The Chilean Government has decided to postpone the entrance into winter time # The Chilean Government has decided to postpone the entrance into winter time
# (to leave DST) from March 11 2012 to April 28th 2012. The decision has not # (to leave DST) from March 11 2012 to April 28th 2012....
# been yet formalized but it will within the next days.
# Quote from the website communication: # Quote from the website communication:
# #
# 6. For the year 2012, the dates of entry into winter time will be as follows: # 6. For the year 2012, the dates of entry into winter time will be as follows:
...@@ -1237,17 +1248,9 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914 ...@@ -1237,17 +1248,9 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
# From Paul Eggert (2015-03-03): # From Paul Eggert (2015-03-03):
# For now, assume that the extension will persist indefinitely. # For now, assume that the extension will persist indefinitely.
# NOTE: ChileAQ rules for Antarctic bases are stored separately in the
# 'antarctica' file.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Chile 1927 1932 - Sep 1 0:00 1:00 S Rule Chile 1927 1931 - Sep 1 0:00 1:00 S
Rule Chile 1928 1932 - Apr 1 0:00 0 - Rule Chile 1928 1932 - Apr 1 0:00 0 -
Rule Chile 1942 only - Jun 1 4:00u 0 -
Rule Chile 1942 only - Aug 1 5:00u 1:00 S
Rule Chile 1946 only - Jul 15 4:00u 1:00 S
Rule Chile 1946 only - Sep 1 3:00u 0:00 -
Rule Chile 1947 only - Apr 1 4:00u 0 -
Rule Chile 1968 only - Nov 3 4:00u 1:00 S Rule Chile 1968 only - Nov 3 4:00u 1:00 S
Rule Chile 1969 only - Mar 30 3:00u 0 - Rule Chile 1969 only - Mar 30 3:00u 0 -
Rule Chile 1969 only - Nov 23 4:00u 1:00 S Rule Chile 1969 only - Nov 23 4:00u 1:00 S
...@@ -1258,10 +1261,8 @@ Rule Chile 1972 1986 - Mar Sun>=9 3:00u 0 - ...@@ -1258,10 +1261,8 @@ Rule Chile 1972 1986 - Mar Sun>=9 3:00u 0 -
Rule Chile 1973 only - Sep 30 4:00u 1:00 S Rule Chile 1973 only - Sep 30 4:00u 1:00 S
Rule Chile 1974 1987 - Oct Sun>=9 4:00u 1:00 S Rule Chile 1974 1987 - Oct Sun>=9 4:00u 1:00 S
Rule Chile 1987 only - Apr 12 3:00u 0 - Rule Chile 1987 only - Apr 12 3:00u 0 -
Rule Chile 1988 1989 - Mar Sun>=9 3:00u 0 - Rule Chile 1988 1990 - Mar Sun>=9 3:00u 0 -
Rule Chile 1988 only - Oct Sun>=1 4:00u 1:00 S Rule Chile 1988 1989 - Oct Sun>=9 4:00u 1:00 S
Rule Chile 1989 only - Oct Sun>=9 4:00u 1:00 S
Rule Chile 1990 only - Mar 18 3:00u 0 -
Rule Chile 1990 only - Sep 16 4:00u 1:00 S Rule Chile 1990 only - Sep 16 4:00u 1:00 S
Rule Chile 1991 1996 - Mar Sun>=9 3:00u 0 - Rule Chile 1991 1996 - Mar Sun>=9 3:00u 0 -
Rule Chile 1991 1997 - Oct Sun>=9 4:00u 1:00 S Rule Chile 1991 1997 - Oct Sun>=9 4:00u 1:00 S
...@@ -1284,15 +1285,21 @@ Rule Chile 2012 2014 - Sep Sun>=2 4:00u 1:00 S ...@@ -1284,15 +1285,21 @@ Rule Chile 2012 2014 - Sep Sun>=2 4:00u 1:00 S
# (1996-09) says 1998-03-08. Ignore these. # (1996-09) says 1998-03-08. Ignore these.
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Santiago -4:42:46 - LMT 1890 Zone America/Santiago -4:42:46 - LMT 1890
-4:42:46 - SMT 1910 # Santiago Mean Time -4:42:46 - SMT 1910 Jan 10 # Santiago Mean Time
-5:00 - CLT 1916 Jul 1 # Chile Time -5:00 - CLT 1916 Jul 1 # Chile Time
-4:42:46 - SMT 1918 Sep 1 # Santiago Mean Time -4:42:46 - SMT 1918 Sep 10
-4:00 - CLT 1919 Jul 1 # Chile Time -4:00 - CLT 1919 Jul 1
-4:42:46 - SMT 1927 Sep 1 # Santiago Mean Time -4:42:46 - SMT 1927 Sep 1
-5:00 Chile CL%sT 1947 May 22 # Chile Time -5:00 Chile CL%sT 1932 Sep 1
-4:00 - CLT 1942 Jun 1
-5:00 - CLT 1942 Aug 1
-4:00 - CLT 1946 Jul 15
-4:00 1:00 CLST 1946 Sep 1 # central Chile
-4:00 - CLT 1947 Apr 1
-5:00 - CLT 1947 May 21 23:00
-4:00 Chile CL%sT 2015 Apr 26 3:00u -4:00 Chile CL%sT 2015 Apr 26 3:00u
-3:00 - CLT -3:00 - CLT
Zone Pacific/Easter -7:17:44 - LMT 1890 Zone Pacific/Easter -7:17:28 - LMT 1890
-7:17:28 - EMT 1932 Sep # Easter Mean Time -7:17:28 - EMT 1932 Sep # Easter Mean Time
-7:00 Chile EAS%sT 1982 Mar 14 3:00u # Easter Time -7:00 Chile EAS%sT 1982 Mar 14 3:00u # Easter Time
-6:00 Chile EAS%sT 2015 Apr 26 3:00u -6:00 Chile EAS%sT 2015 Apr 26 3:00u
...@@ -1302,6 +1309,25 @@ Zone Pacific/Easter -7:17:44 - LMT 1890 ...@@ -1302,6 +1309,25 @@ Zone Pacific/Easter -7:17:44 - LMT 1890
# Other Chilean locations, including Juan Fernández Is, Desventuradas Is, # Other Chilean locations, including Juan Fernández Is, Desventuradas Is,
# and Antarctic bases, are like America/Santiago. # and Antarctic bases, are like America/Santiago.
# Antarctic base using South American rules
# (See the file 'antarctica' for more.)
#
# Palmer, Anvers Island, since 1965 (moved 2 miles in 1968)
#
# From Ethan Dicks (1996-10-06):
# It keeps the same time as Punta Arenas, Chile, because, just like us
# and the South Pole, that's the other end of their supply line....
# I verified with someone who was there that since 1980,
# Palmer has followed Chile. Prior to that, before the Falklands War,
# Palmer used to be supplied from Argentina.
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Antarctica/Palmer 0 - zzz 1965
-4:00 Arg AR%sT 1969 Oct 5
-3:00 Arg AR%sT 1982 May
-4:00 Chile CL%sT 2015 Apr 26 3:00u
-3:00 - CLT
# Colombia # Colombia
# Milne gives 4:56:16.4 for Bogotá time in 1899; round to nearest. He writes, # Milne gives 4:56:16.4 for Bogotá time in 1899; round to nearest. He writes,
......
# #
# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -34,7 +34,8 @@ LOCALE_FILES := $(shell $(FIND) $(JDK_TOPDIR)/src/share/classes \ ...@@ -34,7 +34,8 @@ LOCALE_FILES := $(shell $(FIND) $(JDK_TOPDIR)/src/share/classes \
-name "TimeZoneNames_*.java" -o -name "TimeZoneNames_*.properties" -o \ -name "TimeZoneNames_*.java" -o -name "TimeZoneNames_*.properties" -o \
-name "LocaleNames_*.java" -o -name "LocaleNames_*.properties" -o \ -name "LocaleNames_*.java" -o -name "LocaleNames_*.properties" -o \
-name "CurrencyNames_*.java" -o -name "CurrencyNames_*.properties" -o \ -name "CurrencyNames_*.java" -o -name "CurrencyNames_*.properties" -o \
-name "CalendarData_*.java" -o -name "CalendarData_*.properties") -name "CalendarData_*.java" -o -name "CalendarData_*.properties" -o \
-name "BreakIteratorInfo_*.java" -o -name "BreakIteratorRules_*.java")
# Then translate the locale files into for example: FormatData_sv # Then translate the locale files into for example: FormatData_sv
LOCALE_RESOURCES := $(sort $(subst .properties,,$(subst .java,,$(notdir $(LOCALE_FILES))))) LOCALE_RESOURCES := $(sort $(subst .properties,,$(subst .java,,$(notdir $(LOCALE_FILES)))))
...@@ -79,6 +80,12 @@ $(eval $(call CaptureLocale,FormatData)) ...@@ -79,6 +80,12 @@ $(eval $(call CaptureLocale,FormatData))
#sun.text.resources.CollationData #sun.text.resources.CollationData
$(eval $(call CaptureLocale,CollationData)) $(eval $(call CaptureLocale,CollationData))
#sun.text.resources.BreakIteratorInfo
$(eval $(call CaptureLocale,BreakIteratorInfo))
#sun.text.resources.BreakIteratorRules
$(eval $(call CaptureLocale,BreakIteratorRules))
#sun.util.resources.TimeZoneNames #sun.util.resources.TimeZoneNames
$(eval $(call CaptureLocale,TimeZoneNames)) $(eval $(call CaptureLocale,TimeZoneNames))
......
# #
# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -174,11 +174,10 @@ endif ...@@ -174,11 +174,10 @@ endif
########################################################################################## ##########################################################################################
ifndef OPENJDK
ifeq ($(OPENJDK_TARGET_OS), windows) ifeq ($(OPENJDK_TARGET_OS), windows)
AB_GENSRC_DIR := $(JDK_OUTPUTDIR)/gensrc_ab AB_GENSRC_DIR := $(JDK_OUTPUTDIR)/gensrc_ab
AB_SRC_DIR := $(JDK_TOPDIR)/src/closed/windows/classes/com/sun/java/accessibility AB_SRC_DIR := $(JDK_TOPDIR)/src/windows/classes/com/sun/java/accessibility
ifeq ($(OPENJDK_TARGET_CPU_BITS), 32) ifeq ($(OPENJDK_TARGET_CPU_BITS), 32)
$(AB_GENSRC_DIR)/32bit/com/sun/java/accessibility/AccessBridgeLoader.java: \ $(AB_GENSRC_DIR)/32bit/com/sun/java/accessibility/AccessBridgeLoader.java: \
...@@ -216,6 +215,5 @@ ifndef OPENJDK ...@@ -216,6 +215,5 @@ ifndef OPENJDK
endif endif
endif endif
endif
########################################################################################## ##########################################################################################
...@@ -319,7 +319,6 @@ endif ...@@ -319,7 +319,6 @@ endif
ifeq ($(OPENJDK_TARGET_OS), macosx) ifeq ($(OPENJDK_TARGET_OS), macosx)
LIBAWT_FILES += awt_LoadLibrary.c LIBAWT_FILES += awt_LoadLibrary.c
LIBAWT_CFLAGS += -F/System/Library/Frameworks/JavaVM.framework/Frameworks
endif endif
ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc) ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc)
...@@ -485,7 +484,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBAWT, \ ...@@ -485,7 +484,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBAWT, \
LDFLAGS_SUFFIX_macosx := -lmlib_image -ljvm $(LIBM) \ LDFLAGS_SUFFIX_macosx := -lmlib_image -ljvm $(LIBM) \
-framework Cocoa \ -framework Cocoa \
-framework OpenGL \ -framework OpenGL \
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
-framework JavaNativeFoundation \ -framework JavaNativeFoundation \
-framework JavaRuntimeSupport \ -framework JavaRuntimeSupport \
-framework ApplicationServices \ -framework ApplicationServices \
...@@ -827,8 +825,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \ ...@@ -827,8 +825,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \
$(call SET_SHARED_LIBRARY_ORIGIN), \ $(call SET_SHARED_LIBRARY_ORIGIN), \
LDFLAGS_SUFFIX := $(BUILD_LIBFONTMANAGER_FONTLIB), \ LDFLAGS_SUFFIX := $(BUILD_LIBFONTMANAGER_FONTLIB), \
LDFLAGS_SUFFIX_linux := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \ LDFLAGS_SUFFIX_linux := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \
LDFLAGS_SUFFIX_solaris := -lawt -lawt_xawt -lc $(LIBM) $(LIBCXX) -ljava -ljvm, \ LDFLAGS_SUFFIX_solaris := -lawt -lawt_headless -lc $(LIBM) $(LIBCXX) -ljava -ljvm, \
LDFLAGS_SUFFIX_aix := -lawt -lawt_xawt $(LIBM) $(LIBCXX) -ljava -ljvm,\ LDFLAGS_SUFFIX_aix := -lawt -lawt_headless $(LIBM) $(LIBCXX) -ljava -ljvm,\
LDFLAGS_SUFFIX_macosx := -lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup \ LDFLAGS_SUFFIX_macosx := -lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup \
-ljava -ljvm, \ -ljava -ljvm, \
LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \ LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
...@@ -1120,12 +1118,6 @@ ifeq ($(BUILD_HEADLESS), true) ...@@ -1120,12 +1118,6 @@ ifeq ($(BUILD_HEADLESS), true)
-I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/jdga \ -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/jdga \
$(foreach dir, $(LIBAWT_HEADLESS_DIRS), -I$(dir)) $(foreach dir, $(LIBAWT_HEADLESS_DIRS), -I$(dir))
ifeq ($(OPENJDK_TARGET_OS), macosx)
LIBAWT_HEADLESS_CFLAGS += \
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
-F/System/Library/Frameworks/ApplicationServices.framework/Frameworks
endif
LIBAWT_HEADLESS_FILES := \ LIBAWT_HEADLESS_FILES := \
awt_Font.c \ awt_Font.c \
HeadlessToolkit.c \ HeadlessToolkit.c \
...@@ -1217,8 +1209,7 @@ ifndef BUILD_HEADLESS_ONLY ...@@ -1217,8 +1209,7 @@ ifndef BUILD_HEADLESS_ONLY
ifeq ($(OPENJDK_TARGET_OS), macosx) ifeq ($(OPENJDK_TARGET_OS), macosx)
LIBSPLASHSCREEN_CFLAGS := -I$(JDK_TOPDIR)/src/macosx/native/sun/awt/splashscreen \ LIBSPLASHSCREEN_CFLAGS := -I$(JDK_TOPDIR)/src/macosx/native/sun/awt/splashscreen \
$(LIBSPLASHSCREEN_CFLAGS) \ $(LIBSPLASHSCREEN_CFLAGS)
-F/System/Library/Frameworks/JavaVM.framework/Frameworks
LIBSPLASHSCREEN_CFLAGS += -DWITH_MACOSX LIBSPLASHSCREEN_CFLAGS += -DWITH_MACOSX
LIBSPLASHSCREEN_CFLAGS += -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp LIBSPLASHSCREEN_CFLAGS += -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp
...@@ -1250,7 +1241,6 @@ ifndef BUILD_HEADLESS_ONLY ...@@ -1250,7 +1241,6 @@ ifndef BUILD_HEADLESS_ONLY
-framework ApplicationServices \ -framework ApplicationServices \
-framework Foundation \ -framework Foundation \
-framework Cocoa \ -framework Cocoa \
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
-framework JavaNativeFoundation -framework JavaNativeFoundation
else ifeq ($(OPENJDK_TARGET_OS), windows) else ifeq ($(OPENJDK_TARGET_OS), windows)
LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib -DELAYLOAD:user32.dll LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib -DELAYLOAD:user32.dll
...@@ -1436,9 +1426,7 @@ ifeq ($(OPENJDK_TARGET_OS), macosx) ...@@ -1436,9 +1426,7 @@ ifeq ($(OPENJDK_TARGET_OS), macosx)
-I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \ -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
-I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \ -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
-I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \ -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
-I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \ -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug, \
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
-F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \
LDFLAGS := $(LDFLAGS_JDKLIB) \ LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \ $(call SET_SHARED_LIBRARY_ORIGIN), \
LDFLAGS_SUFFIX_macosx := -lawt -lmlib_image -losxapp -ljvm $(LIBM) \ LDFLAGS_SUFFIX_macosx := -lawt -lmlib_image -losxapp -ljvm $(LIBM) \
...@@ -1449,7 +1437,6 @@ ifeq ($(OPENJDK_TARGET_OS), macosx) ...@@ -1449,7 +1437,6 @@ ifeq ($(OPENJDK_TARGET_OS), macosx)
-framework Cocoa \ -framework Cocoa \
-framework Security \ -framework Security \
-framework ExceptionHandling \ -framework ExceptionHandling \
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
-framework JavaNativeFoundation \ -framework JavaNativeFoundation \
-framework JavaRuntimeSupport \ -framework JavaRuntimeSupport \
-framework OpenGL \ -framework OpenGL \
...@@ -1482,8 +1469,7 @@ ifeq ($(OPENJDK_TARGET_OS), macosx) ...@@ -1482,8 +1469,7 @@ ifeq ($(OPENJDK_TARGET_OS), macosx)
CFLAGS := $(CFLAGS_JDKLIB) \ CFLAGS := $(CFLAGS_JDKLIB) \
-I$(JDK_TOPDIR)/src/macosx/native/com/apple/laf \ -I$(JDK_TOPDIR)/src/macosx/native/com/apple/laf \
-I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \ -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \
-I$(JDK_TOPDIR)/src/macosx/native/sun/awt \ -I$(JDK_TOPDIR)/src/macosx/native/sun/awt, \
-F/System/Library/Frameworks/JavaVM.framework/Frameworks, \
LDFLAGS := $(LDFLAGS_JDKLIB) \ LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN) \ $(call SET_SHARED_LIBRARY_ORIGIN) \
-Xlinker -rpath -Xlinker @loader_path, \ -Xlinker -rpath -Xlinker @loader_path, \
...@@ -1491,7 +1477,6 @@ ifeq ($(OPENJDK_TARGET_OS), macosx) ...@@ -1491,7 +1477,6 @@ ifeq ($(OPENJDK_TARGET_OS), macosx)
-framework Cocoa \ -framework Cocoa \
-framework Carbon \ -framework Carbon \
-framework ApplicationServices \ -framework ApplicationServices \
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
-framework JavaNativeFoundation \ -framework JavaNativeFoundation \
-framework JavaRuntimeSupport \ -framework JavaRuntimeSupport \
-ljava -ljvm, \ -ljava -ljvm, \
......
# #
# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -32,14 +32,11 @@ ifeq ($(OPENJDK_TARGET_OS), macosx) ...@@ -32,14 +32,11 @@ ifeq ($(OPENJDK_TARGET_OS), macosx)
LANG := C, \ LANG := C, \
OPTIMIZATION := LOW, \ OPTIMIZATION := LOW, \
CFLAGS := $(CFLAGS_JDKLIB) \ CFLAGS := $(CFLAGS_JDKLIB) \
-I$(JDK_TOPDIR)/src/macosx/native/apple/applescript \ -I$(JDK_TOPDIR)/src/macosx/native/apple/applescript, \
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
-F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \
LDFLAGS := $(LDFLAGS_JDKLIB) \ LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \ $(call SET_SHARED_LIBRARY_ORIGIN), \
LDFLAGS_SUFFIX := -framework Cocoa \ LDFLAGS_SUFFIX := -framework Cocoa \
-framework Carbon \ -framework Carbon \
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
-framework JavaNativeFoundation \ -framework JavaNativeFoundation \
$(LDFLAGS_JDKLIB_SUFFIX), \ $(LDFLAGS_JDKLIB_SUFFIX), \
OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libAppleScriptEngine, \ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libAppleScriptEngine, \
...@@ -63,9 +60,7 @@ ifeq ($(OPENJDK_TARGET_OS), macosx) ...@@ -63,9 +60,7 @@ ifeq ($(OPENJDK_TARGET_OS), macosx)
OPTIMIZATION := LOW, \ OPTIMIZATION := LOW, \
CFLAGS := $(CFLAGS_JDKLIB) \ CFLAGS := $(CFLAGS_JDKLIB) \
-I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \ -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \
-I$(JDK_OUTPUTDIR)/gensrc/sun/osxapp \ -I$(JDK_OUTPUTDIR)/gensrc/sun/osxapp, \
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
-F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \
LDFLAGS := $(LDFLAGS_JDKLIB) \ LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \ $(call SET_SHARED_LIBRARY_ORIGIN), \
LDFLAGS_SUFFIX_macosx := \ LDFLAGS_SUFFIX_macosx := \
...@@ -76,7 +71,6 @@ ifeq ($(OPENJDK_TARGET_OS), macosx) ...@@ -76,7 +71,6 @@ ifeq ($(OPENJDK_TARGET_OS), macosx)
-framework Cocoa \ -framework Cocoa \
-framework Security \ -framework Security \
-framework ExceptionHandling \ -framework ExceptionHandling \
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
-framework JavaNativeFoundation \ -framework JavaNativeFoundation \
-framework JavaRuntimeSupport \ -framework JavaRuntimeSupport \
-framework OpenGL \ -framework OpenGL \
...@@ -108,16 +102,13 @@ ifeq ($(OPENJDK_TARGET_OS), macosx) ...@@ -108,16 +102,13 @@ ifeq ($(OPENJDK_TARGET_OS), macosx)
OPTIMIZATION := LOW, \ OPTIMIZATION := LOW, \
CFLAGS := $(CFLAGS_JDKLIB) \ CFLAGS := $(CFLAGS_JDKLIB) \
$(foreach dir, $(LIBOSX_DIRS), -I$(dir)) \ $(foreach dir, $(LIBOSX_DIRS), -I$(dir)) \
-I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \ -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp, \
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
-F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \
LDFLAGS := $(LDFLAGS_JDKLIB) \ LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \ $(call SET_SHARED_LIBRARY_ORIGIN), \
LDFLAGS_SUFFIX_macosx := \ LDFLAGS_SUFFIX_macosx := \
-losxapp \ -losxapp \
-framework Cocoa \ -framework Cocoa \
-framework ApplicationServices \ -framework ApplicationServices \
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
-framework JavaNativeFoundation \ -framework JavaNativeFoundation \
-framework JavaRuntimeSupport \ -framework JavaRuntimeSupport \
-framework Security \ -framework Security \
...@@ -136,10 +127,9 @@ endif ...@@ -136,10 +127,9 @@ endif
########################################################################################## ##########################################################################################
ifndef OPENJDK
ifeq ($(OPENJDK_TARGET_OS), windows) ifeq ($(OPENJDK_TARGET_OS), windows)
ACCESSBRIDGE_SRCDIR := $(JDK_TOPDIR)/src/closed/windows/native/sun/bridge ACCESSBRIDGE_SRCDIR := $(JDK_TOPDIR)/src/windows/native/sun/bridge
define SetupAccessBridge define SetupAccessBridge
# Parameter 1 Suffix # Parameter 1 Suffix
...@@ -158,8 +148,7 @@ ifndef OPENJDK ...@@ -158,8 +148,7 @@ ifndef OPENJDK
LDFLAGS := $(LDFLAGS_JDKLIB) kernel32.lib user32.lib gdi32.lib \ LDFLAGS := $(LDFLAGS_JDKLIB) kernel32.lib user32.lib gdi32.lib \
winspool.lib jawt.lib comdlg32.lib advapi32.lib shell32.lib \ winspool.lib jawt.lib comdlg32.lib advapi32.lib shell32.lib \
ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \ ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \
-subsystem:windows -machine:$2 \ -subsystem:windows -machine:$2, \
-def:$(ACCESSBRIDGE_SRCDIR)/JAWTAccessBridge.DEF, \
VERSIONINFO_RESOURCE := $(ACCESSBRIDGE_SRCDIR)/AccessBridgeStatusWindow.rc, \ VERSIONINFO_RESOURCE := $(ACCESSBRIDGE_SRCDIR)/AccessBridgeStatusWindow.rc, \
RC_FLAGS := $(RC_FLAGS) \ RC_FLAGS := $(RC_FLAGS) \
-D "JDK_FNAME=JAWTAccessBridge$1.dll" \ -D "JDK_FNAME=JAWTAccessBridge$1.dll" \
...@@ -168,7 +157,8 @@ ifndef OPENJDK ...@@ -168,7 +157,8 @@ ifndef OPENJDK
OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjawtaccessbridge$1, \ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjawtaccessbridge$1, \
DEBUG_SYMBOLS := true) DEBUG_SYMBOLS := true)
$$(BUILD_JAWTACCESSBRIDGE$1): $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX) $$(BUILD_JAWTACCESSBRIDGE$1): \
$(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX)
$(call SetupNativeCompilation,BUILD_JAVAACCESSBRIDGE$1, \ $(call SetupNativeCompilation,BUILD_JAVAACCESSBRIDGE$1, \
LIBRARY = JavaAccessBridge$1, \ LIBRARY = JavaAccessBridge$1, \
...@@ -184,8 +174,7 @@ ifndef OPENJDK ...@@ -184,8 +174,7 @@ ifndef OPENJDK
LDFLAGS := $(LDFLAGS_JDKLIB) kernel32.lib user32.lib gdi32.lib \ LDFLAGS := $(LDFLAGS_JDKLIB) kernel32.lib user32.lib gdi32.lib \
winspool.lib comdlg32.lib advapi32.lib shell32.lib \ winspool.lib comdlg32.lib advapi32.lib shell32.lib \
ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \ ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \
-subsystem:windows -machine:$2 \ -subsystem:windows -machine:$2, \
-def:$(ACCESSBRIDGE_SRCDIR)/JavaAccessBridge.DEF, \
VERSIONINFO_RESOURCE := $(ACCESSBRIDGE_SRCDIR)/AccessBridgeStatusWindow.rc, \ VERSIONINFO_RESOURCE := $(ACCESSBRIDGE_SRCDIR)/AccessBridgeStatusWindow.rc, \
RC_FLAGS := $(RC_FLAGS) \ RC_FLAGS := $(RC_FLAGS) \
-D "JDK_FNAME=JavaAccessBridge$1.dll" \ -D "JDK_FNAME=JavaAccessBridge$1.dll" \
...@@ -230,5 +219,5 @@ ifndef OPENJDK ...@@ -230,5 +219,5 @@ ifndef OPENJDK
else else
$(eval $(call SetupAccessBridge,-64,X64,64)) $(eval $(call SetupAccessBridge,-64,X64,64))
endif endif
endif endif
endif
...@@ -110,6 +110,8 @@ SUNWprivate_1.1 { ...@@ -110,6 +110,8 @@ SUNWprivate_1.1 {
NET_Bind; NET_Bind;
NET_MapSocketOption; NET_MapSocketOption;
NET_Wait; NET_Wait;
NET_EnableFastTcpLoopback;
NET_ThrowNew;
ipv6_available; ipv6_available;
local: local:
......
# #
# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -22,38 +22,150 @@ ...@@ -22,38 +22,150 @@
# or visit www.oracle.com if you need additional information or have any # or visit www.oracle.com if you need additional information or have any
# questions. # questions.
# #
# These lists define where a file belongs if it exists. It is perfectly fine
# if a file does not exist on some platforms - we do not have to produce exact
# per-platform lists. However, for clarity, platform-unique files are handled
# in platform-specific conditionals.
# On different platforms the libraries are placed into different locations in the
# JRE:
ifeq (, $(findstring $(OPENJDK_TARGET_OS), windows macosx))
# On non-windows/OSX libraries go into jre/lib/<arch>
LIBS_PREFIX := $(OPENJDK_TARGET_CPU_LEGACY_LIB)/
else
# On OSX they go into jre/lib/ - on Windows they go into jre/bin/ and we won't use this
LIBS_PREFIX :=
endif
# Debug info files are tricky to deal with due to all the different platform variants
# and because they can be zipped.
ifeq ($(ZIP_DEBUGINFO_FILES), true)
# Common case and 'just works' on all platforms
DEBUG_SUFFIX := .diz
else
# It gets complicated ...
ifeq ($(OPENJDK_TARGET_OS), macosx)
# This is a directory, not a simple file, so
# it needs expanding explicitly later on
DEBUG_SUFFIX := $(SHARED_LIBRARY_SUFFIX).dSYM
else
ifeq ($(OPENJDK_TARGET_OS), windows)
DEBUG_SUFFIX := .map .pdb
else
DEBUG_SUFFIX := .debuginfo
endif
endif
endif
# Expand the contents of the .dSYM directories on macosx.
# Param 1 - debug files list eg libFoo.dylib.dSYM or libFoo.diz (if zipped)
# Param 2 - libraries list eg Foo
# On macosx if not zipping debuginfo files we expand the contents of the .dSYM directories,
# else we return the original list of .diz files.
# On other OS we return the original list of debuginfo files (whether zipped or not)
#
define expand-debuginfo
$(if $(and $(filter-out true, $(ZIP_DEBUGINFO_FILES)), $(filter macosx, $(OPENJDK_TARGET_OS))), \
$(foreach i, $1, $(addsuffix /Contents/Info.plist, $i)) \
$(foreach i, $2, $(addsuffix /Contents/Resources/DWARF/$i, $(filter $i.%, $1))), \
$1)
endef
# Common executable files
PROFILE_1_JRE_BIN_FILES := \ PROFILE_1_JRE_BIN_FILES := \
java$(EXE_SUFFIX) \ java$(EXE_SUFFIX) \
keytool$(EXE_SUFFIX) keytool$(EXE_SUFFIX)
PROFILE_1_JRE_LIB_FILES := \ ifeq ($(OPENJDK_TARGET_OS), windows)
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)j2pkcs11$(SHARED_LIBRARY_SUFFIX) \ PROFILE_1_JRE_BIN_FILES += javaw$(EXE_SUFFIX)
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)java$(SHARED_LIBRARY_SUFFIX) \ endif
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsig.diz \ PROFILE_1_LIBRARIES := \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)net$(SHARED_LIBRARY_SUFFIX) \ j2pkcs11 \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)nio$(SHARED_LIBRARY_SUFFIX) \ java \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)sunec$(SHARED_LIBRARY_SUFFIX) \ jsig \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)verify$(SHARED_LIBRARY_SUFFIX) \ net \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)verify.diz \ nio \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)zip$(SHARED_LIBRARY_SUFFIX) \ sunec \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/client/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) \ verify \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/client/$(LIBRARY_PREFIX)jsig.diz \ zip
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/client/$(LIBRARY_PREFIX)jvm$(SHARED_LIBRARY_SUFFIX) \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/client/$(LIBRARY_PREFIX)jvm.diz \ ifeq ($(OPENJDK_TARGET_OS), windows)
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/client/Xusage.txt \ PROFILE_1_LIBRARIES += msvcrt100
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/jli/$(LIBRARY_PREFIX)jli$(SHARED_LIBRARY_SUFFIX) \ endif
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/jvm.cfg \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/minimal/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) \ PROFILE_1_LIBRARIES := $(addprefix $(LIBRARY_PREFIX), $(PROFILE_1_LIBRARIES))
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/minimal/$(LIBRARY_PREFIX)jsig.diz \ PROFILE_1_DEBUG_FILES := $(foreach i, $(DEBUG_SUFFIX), $(addsuffix $i, $(PROFILE_1_LIBRARIES)))
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/minimal/$(LIBRARY_PREFIX)jvm$(SHARED_LIBRARY_SUFFIX) \ PROFILE_1_LIBRARIES := $(addsuffix $(SHARED_LIBRARY_SUFFIX), $(PROFILE_1_LIBRARIES))
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/minimal/$(LIBRARY_PREFIX)jvm.diz \ PROFILE_1_DEBUG_FILES := $(call expand-debuginfo, $(PROFILE_1_DEBUG_FILES), $(PROFILE_1_LIBRARIES))
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/minimal/Xusage.txt \ PROFILE_1_LIBRARIES += $(PROFILE_1_DEBUG_FILES)
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/server/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/server/$(LIBRARY_PREFIX)jsig.diz \ # Note: libjsig exists as both the real file and a symlink in the VM directory
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/server/$(LIBRARY_PREFIX)jvm$(SHARED_LIBRARY_SUFFIX) \ # so we have to treat it with care when looking for the debuginfo files
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/server/$(LIBRARY_PREFIX)jvm.diz \ VM_LIBRARIES := \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/server/Xusage.txt \ jvm
ifeq ($(OPENJDK_TARGET_OS), solaris)
VM_LIBRARIES += jvm_db jvm_dtrace
endif
VM_SYMLINKS := \
jsig
VM_LIBRARIES := $(addprefix $(LIBRARY_PREFIX), $(VM_LIBRARIES))
VM_DEBUG_FILES := $(foreach i, $(DEBUG_SUFFIX), $(addsuffix $i, $(VM_LIBRARIES)))
VM_SYMLINKS := $(addprefix $(LIBRARY_PREFIX), $(VM_SYMLINKS))
VM_LIBRARIES := $(addsuffix $(SHARED_LIBRARY_SUFFIX), $(VM_LIBRARIES))
VM_DEBUG_FILES := $(call expand-debuginfo, $(VM_DEBUG_FILES), $(VM_LIBRARIES))
VM_DEBUG_FILES += $(foreach i, $(DEBUG_SUFFIX), $(addsuffix $i, $(VM_SYMLINKS)))
VM_SYMLINKS := $(addsuffix $(SHARED_LIBRARY_SUFFIX), $(VM_SYMLINKS))
VM_LIBRARIES += $(VM_SYMLINKS)
VM_FILES := \
Xusage.txt
VM_DIRS := client server minimal
VM_FILES := $(foreach i, $(VM_DIRS), $(addprefix $i/, $(VM_LIBRARIES) $(VM_FILES) $(VM_DEBUG_FILES)))
JLI_LIBRARIES := \
jli
ifneq ($(OPENJDK_TARGET_OS), windows)
JLI_SUBDIR := jli/
else
JLI_SUBDIR :=
endif
JLI_LIBRARIES := $(addprefix $(JLI_SUBDIR)$(LIBRARY_PREFIX), $(JLI_LIBRARIES))
JLI_DEBUG_FILES := $(foreach i, $(DEBUG_SUFFIX), $(addsuffix $i, $(JLI_LIBRARIES)))
JLI_LIBRARIES := $(addsuffix $(SHARED_LIBRARY_SUFFIX), $(JLI_LIBRARIES))
JLI_DEBUG_FILES := $(call expand-debuginfo, $(JLI_DEBUG_FILES), $(JLI_LIBRARIES))
JLI_LIBRARIES += $(JLI_DEBUG_FILES)
ifneq ($(OPENJDK_TARGET_OS), windows)
PROFILE_1_JRE_LIB_FILES := \
$(addprefix $(LIBS_PREFIX), $(PROFILE_1_LIBRARIES) $(VM_FILES) $(JLI_LIBRARIES))
else
# On windows libraries go into jre/bin
PROFILE_1_JRE_BIN_FILES += $(PROFILE_1_LIBRARIES) $(VM_FILES) $(JLI_LIBRARIES)
endif
# Remaining jre/lib contents
# OSX doesn't use <arch> directory
#
ifeq ($(OPENJDK_TARGET_OS), macosx)
PROFILE_1_JRE_LIB_FILES += \
jvm.cfg \
jspawnhelper
else
PROFILE_1_JRE_LIB_FILES += \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/jvm.cfg \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/jspawnhelper
endif
PROFILE_1_JRE_LIB_FILES += \
calendars.properties \ calendars.properties \
classlist \ classlist \
content-types.properties \ content-types.properties \
...@@ -81,6 +193,14 @@ PROFILE_1_JRE_LIB_FILES := \ ...@@ -81,6 +193,14 @@ PROFILE_1_JRE_LIB_FILES := \
security/trusted.libraries \ security/trusted.libraries \
tzdb.dat tzdb.dat
ifeq ($(OPENJDK_TARGET_OS), windows)
PROFILE_1_JRE_LIB_FILES += tzmappings
else
ifeq ($(OPENJDK_TARGET_OS), solaris)
PROFILE_1_JRE_LIB_FILES += sdp/sdp.conf
endif
endif
PROFILE_1_JRE_OTHER_FILES := \ PROFILE_1_JRE_OTHER_FILES := \
COPYRIGHT \ COPYRIGHT \
LICENSE \ LICENSE \
...@@ -106,32 +226,63 @@ PROFILE_2_JRE_BIN_FILES := \ ...@@ -106,32 +226,63 @@ PROFILE_2_JRE_BIN_FILES := \
rmid$(EXE_SUFFIX) \ rmid$(EXE_SUFFIX) \
rmiregistry$(EXE_SUFFIX) rmiregistry$(EXE_SUFFIX)
ifeq ($(OPENJDK_TARGET_OS), windows)
PROFILE_2_JRE_BIN_FILES += java-rmi$(EXE_SUFFIX)
endif
# If you add libraries here, make sure you use the same techniques
# as used for the other profile's libraries regarding debug files etc
PROFILE_2_JRE_LIB_FILES := PROFILE_2_JRE_LIB_FILES :=
PROFILE_2_JRE_OTHER_FILES := PROFILE_2_JRE_OTHER_FILES :=
PROFILE_2_JRE_JAR_FILES := PROFILE_2_JRE_JAR_FILES :=
ifeq ($(OPENJDK_TARGET_OS), windows)
PROFILE_3_JRE_BIN_FILES := \
kinit$(EXE_SUFFIX) \
klist$(EXE_SUFFIX) \
ktab$(EXE_SUFFIX)
else
PROFILE_3_JRE_BIN_FILES :=
endif
PROFILE_3_JRE_BIN_FILES := PROFILE_3_LIBRARIES := \
hprof \
PROFILE_3_JRE_LIB_FILES := \ instrument \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)hprof$(SHARED_LIBRARY_SUFFIX) \ j2gss \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)hprof.diz \ j2pcsc \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)instrument$(SHARED_LIBRARY_SUFFIX) \ jaas_unix \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)instrument.diz \ jaas_nt \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)j2gss$(SHARED_LIBRARY_SUFFIX) \ java_crw_demo \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)j2pcsc$(SHARED_LIBRARY_SUFFIX) \ jsdt \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jaas_unix$(SHARED_LIBRARY_SUFFIX) \ management \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)java_crw_demo$(SHARED_LIBRARY_SUFFIX) \ npt \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)java_crw_demo.diz \ sctp
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsdt$(SHARED_LIBRARY_SUFFIX) \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsdt.diz \ ifeq ($(OPENJDK_TARGET_OS), windows)
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)management$(SHARED_LIBRARY_SUFFIX) \ PROFILE_3_LIBRARIES += w2k_lsa_auth
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)management.diz \ else
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)npt$(SHARED_LIBRARY_SUFFIX) \ ifeq ($(OPENJDK_TARGET_OS), macosx)
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)npt.diz \ PROFILE_3_LIBRARIES += osxkrb5
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)sctp$(SHARED_LIBRARY_SUFFIX) \ endif
endif
PROFILE_3_LIBRARIES := $(addprefix $(LIBRARY_PREFIX), $(PROFILE_3_LIBRARIES))
PROFILE_3_DEBUG_FILES := $(foreach i, $(DEBUG_SUFFIX), $(addsuffix $i, $(PROFILE_3_LIBRARIES)))
PROFILE_3_LIBRARIES := $(addsuffix $(SHARED_LIBRARY_SUFFIX), $(PROFILE_3_LIBRARIES))
PROFILE_3_DEBUG_FILES := $(call expand-debuginfo, $(PROFILE_3_DEBUG_FILES), $(PROFILE_3_LIBRARIES))
PROFILE_3_LIBRARIES += $(PROFILE_3_DEBUG_FILES)
ifneq ($(OPENJDK_TARGET_OS), windows)
PROFILE_3_JRE_LIB_FILES := \
$(addprefix $(LIBS_PREFIX), $(PROFILE_3_LIBRARIES))
else
# On windows libraries go into jre/bin
PROFILE_3_JRE_BIN_FILES += $(PROFILE_3_LIBRARIES)
endif
PROFILE_3_JRE_LIB_FILES += \
jvm.hprof.txt \ jvm.hprof.txt \
management-agent.jar \ management-agent.jar \
management/jmxremote.access \ management/jmxremote.access \
...@@ -153,25 +304,40 @@ FULL_JRE_BIN_FILES := \ ...@@ -153,25 +304,40 @@ FULL_JRE_BIN_FILES := \
tnameserv$(EXE_SUFFIX) \ tnameserv$(EXE_SUFFIX) \
unpack200$(EXE_SUFFIX) unpack200$(EXE_SUFFIX)
FULL_JRE_LIB_FILES := \ JRE_LIBRARIES := \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)awt$(SHARED_LIBRARY_SUFFIX) \ awt \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)awt_headless$(SHARED_LIBRARY_SUFFIX) \ awt_headless \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)awt_xawt$(SHARED_LIBRARY_SUFFIX) \ awt_xawt \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)dcpr$(SHARED_LIBRARY_SUFFIX) \ dcpr \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)dt_socket$(SHARED_LIBRARY_SUFFIX) \ dt_socket \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)dt_socket.diz \ fontmanager \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)fontmanager$(SHARED_LIBRARY_SUFFIX) \ jawt \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX) \ jdwp \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jdwp$(SHARED_LIBRARY_SUFFIX) \ jfr \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jfr$(SHARED_LIBRARY_SUFFIX) \ jpeg \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jpeg$(SHARED_LIBRARY_SUFFIX) \ jsound \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsound$(SHARED_LIBRARY_SUFFIX) \ jsoundalsa \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsoundalsa$(SHARED_LIBRARY_SUFFIX) \ kcms \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)kcms$(SHARED_LIBRARY_SUFFIX) \ mlib_image \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)mlib_image$(SHARED_LIBRARY_SUFFIX) \ splashscreen \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)splashscreen$(SHARED_LIBRARY_SUFFIX) \ t2k \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)t2k$(SHARED_LIBRARY_SUFFIX) \ unpack
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)unpack$(SHARED_LIBRARY_SUFFIX) \
JRE_LIBRARIES := $(addprefix $(LIBRARY_PREFIX), $(JRE_LIBRARIES))
JRE_DEBUG_FILES := $(foreach i, $(DEBUG_SUFFIX), $(addsuffix $i, $(JRE_LIBRARIES)))
JRE_LIBRARIES := $(addsuffix $(SHARED_LIBRARY_SUFFIX), $(JRE_LIBRARIES))
JRE_DEBUG_FILES := $(call expand-debuginfo, $(JRE_DEBUG_FILES), $(JRE_LIBRARIES))
JRE_LIBRARIES += $(JRE_DEBUG_FILES)
ifneq ($(OPENJDK_TARGET_OS), windows)
FULL_JRE_LIB_FILES := \
$(addprefix $(LIBS_PREFIX), $(JRE_LIBRARIES))
else
# On windows libraries go into jre/bin
FULL_JRE_BIN_FILES += $(JRE_LIBRARIES)
endif
FULL_JRE_LIB_FILES += \
charsets.jar \ charsets.jar \
cmm/CIEXYZ.pf \ cmm/CIEXYZ.pf \
cmm/GRAY.pf \ cmm/GRAY.pf \
...@@ -254,3 +420,4 @@ FULL_JRE_JAR_FILES := \ ...@@ -254,3 +420,4 @@ FULL_JRE_JAR_FILES := \
ext/nashorn.jar \ ext/nashorn.jar \
ext/zipfs.jar \ ext/zipfs.jar \
jfr.jar jfr.jar
...@@ -162,6 +162,8 @@ PROFILE_3_RTJAR_EXCLUDE_TYPES := \ ...@@ -162,6 +162,8 @@ PROFILE_3_RTJAR_EXCLUDE_TYPES := \
javax/management/remote/rmi/_RMIServer_Stub.class javax/management/remote/rmi/_RMIServer_Stub.class
FULL_JRE_RTJAR_INCLUDE_PACKAGES := \ FULL_JRE_RTJAR_INCLUDE_PACKAGES := \
apple \
com/apple \
com/oracle \ com/oracle \
com/sun/accessibility/internal/resources \ com/sun/accessibility/internal/resources \
com/sun/activation/registries \ com/sun/activation/registries \
...@@ -213,6 +215,7 @@ FULL_JRE_RTJAR_INCLUDE_PACKAGES := \ ...@@ -213,6 +215,7 @@ FULL_JRE_RTJAR_INCLUDE_PACKAGES := \
sun/dc \ sun/dc \
sun/font \ sun/font \
sun/java2d \ sun/java2d \
sun/lwawt \
sun/net/ftp \ sun/net/ftp \
sun/net/smtp \ sun/net/smtp \
sun/net/www/content/audio \ sun/net/www/content/audio \
......
/* /*
* Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -72,10 +72,6 @@ public class GenerateCurrencyData { ...@@ -72,10 +72,6 @@ public class GenerateCurrencyData {
private static String formatVersion; private static String formatVersion;
private static String dataVersion; private static String dataVersion;
private static String validCurrencyCodes; private static String validCurrencyCodes;
private static String currenciesWith0MinorUnitDecimals;
private static String currenciesWith1MinorUnitDecimal;
private static String currenciesWith3MinorUnitDecimal;
private static String currenciesWithMinorUnitsUndefined;
// handy constants - must match definitions in java.util.Currency // handy constants - must match definitions in java.util.Currency
// magic number // magic number
...@@ -83,29 +79,31 @@ public class GenerateCurrencyData { ...@@ -83,29 +79,31 @@ public class GenerateCurrencyData {
// number of characters from A to Z // number of characters from A to Z
private static final int A_TO_Z = ('Z' - 'A') + 1; private static final int A_TO_Z = ('Z' - 'A') + 1;
// entry for invalid country codes // entry for invalid country codes
private static final int INVALID_COUNTRY_ENTRY = 0x007F; private static final int INVALID_COUNTRY_ENTRY = 0x0000007F;
// entry for countries without currency // entry for countries without currency
private static final int COUNTRY_WITHOUT_CURRENCY_ENTRY = 0x0080; private static final int COUNTRY_WITHOUT_CURRENCY_ENTRY = 0x00000200;
// mask for simple case country entries // mask for simple case country entries
private static final int SIMPLE_CASE_COUNTRY_MASK = 0x0000; private static final int SIMPLE_CASE_COUNTRY_MASK = 0x00000000;
// mask for simple case country entry final character // mask for simple case country entry final character
private static final int SIMPLE_CASE_COUNTRY_FINAL_CHAR_MASK = 0x001F; private static final int SIMPLE_CASE_COUNTRY_FINAL_CHAR_MASK = 0x0000001F;
// mask for simple case country entry default currency digits // mask for simple case country entry default currency digits
private static final int SIMPLE_CASE_COUNTRY_DEFAULT_DIGITS_MASK = 0x0060; private static final int SIMPLE_CASE_COUNTRY_DEFAULT_DIGITS_MASK = 0x000001E0;
// shift count for simple case country entry default currency digits // shift count for simple case country entry default currency digits
private static final int SIMPLE_CASE_COUNTRY_DEFAULT_DIGITS_SHIFT = 5; private static final int SIMPLE_CASE_COUNTRY_DEFAULT_DIGITS_SHIFT = 5;
// maximum number for simple case country entry default currency digits
private static final int SIMPLE_CASE_COUNTRY_MAX_DEFAULT_DIGITS = 9;
// mask for special case country entries // mask for special case country entries
private static final int SPECIAL_CASE_COUNTRY_MASK = 0x0080; private static final int SPECIAL_CASE_COUNTRY_MASK = 0x00000200;
// mask for special case country index // mask for special case country index
private static final int SPECIAL_CASE_COUNTRY_INDEX_MASK = 0x001F; private static final int SPECIAL_CASE_COUNTRY_INDEX_MASK = 0x0000001F;
// delta from entry index component in main table to index into special case tables // delta from entry index component in main table to index into special case tables
private static final int SPECIAL_CASE_COUNTRY_INDEX_DELTA = 1; private static final int SPECIAL_CASE_COUNTRY_INDEX_DELTA = 1;
// mask for distinguishing simple and special case countries // mask for distinguishing simple and special case countries
private static final int COUNTRY_TYPE_MASK = SIMPLE_CASE_COUNTRY_MASK | SPECIAL_CASE_COUNTRY_MASK; private static final int COUNTRY_TYPE_MASK = SIMPLE_CASE_COUNTRY_MASK | SPECIAL_CASE_COUNTRY_MASK;
// mask for the numeric code of the currency // mask for the numeric code of the currency
private static final int NUMERIC_CODE_MASK = 0x0003FF00; private static final int NUMERIC_CODE_MASK = 0x000FFC00;
// shift count for the numeric code of the currency // shift count for the numeric code of the currency
private static final int NUMERIC_CODE_SHIFT = 8; private static final int NUMERIC_CODE_SHIFT = 10;
// generated data // generated data
private static int[] mainTable = new int[A_TO_Z * A_TO_Z]; private static int[] mainTable = new int[A_TO_Z * A_TO_Z];
...@@ -120,7 +118,7 @@ public class GenerateCurrencyData { ...@@ -120,7 +118,7 @@ public class GenerateCurrencyData {
private static int[] specialCaseOldCurrenciesNumericCode = new int[maxSpecialCases]; private static int[] specialCaseOldCurrenciesNumericCode = new int[maxSpecialCases];
private static int[] specialCaseNewCurrenciesNumericCode = new int[maxSpecialCases]; private static int[] specialCaseNewCurrenciesNumericCode = new int[maxSpecialCases];
private static final int maxOtherCurrencies = 70; private static final int maxOtherCurrencies = 128;
private static int otherCurrenciesCount = 0; private static int otherCurrenciesCount = 0;
private static StringBuffer otherCurrencies = new StringBuffer(); private static StringBuffer otherCurrencies = new StringBuffer();
private static int[] otherCurrenciesDefaultFractionDigits = new int[maxOtherCurrencies]; private static int[] otherCurrenciesDefaultFractionDigits = new int[maxOtherCurrencies];
...@@ -129,6 +127,11 @@ public class GenerateCurrencyData { ...@@ -129,6 +127,11 @@ public class GenerateCurrencyData {
// date format for parsing cut-over times // date format for parsing cut-over times
private static SimpleDateFormat format; private static SimpleDateFormat format;
// Minor Units
private static String[] currenciesWithDefinedMinorUnitDecimals =
new String[SIMPLE_CASE_COUNTRY_MAX_DEFAULT_DIGITS + 1];
private static String currenciesWithMinorUnitsUndefined;
public static void main(String[] args) { public static void main(String[] args) {
// Look for "-o outputfilename" option // Look for "-o outputfilename" option
...@@ -171,16 +174,14 @@ public class GenerateCurrencyData { ...@@ -171,16 +174,14 @@ public class GenerateCurrencyData {
formatVersion = (String) currencyData.get("formatVersion"); formatVersion = (String) currencyData.get("formatVersion");
dataVersion = (String) currencyData.get("dataVersion"); dataVersion = (String) currencyData.get("dataVersion");
validCurrencyCodes = (String) currencyData.get("all"); validCurrencyCodes = (String) currencyData.get("all");
currenciesWith0MinorUnitDecimals = (String) currencyData.get("minor0"); for (int i = 0; i <= SIMPLE_CASE_COUNTRY_MAX_DEFAULT_DIGITS; i++) {
currenciesWith1MinorUnitDecimal = (String) currencyData.get("minor1"); currenciesWithDefinedMinorUnitDecimals[i]
currenciesWith3MinorUnitDecimal = (String) currencyData.get("minor3"); = (String) currencyData.get("minor"+i);
}
currenciesWithMinorUnitsUndefined = (String) currencyData.get("minorUndefined"); currenciesWithMinorUnitsUndefined = (String) currencyData.get("minorUndefined");
if (formatVersion == null || if (formatVersion == null ||
dataVersion == null || dataVersion == null ||
validCurrencyCodes == null || validCurrencyCodes == null ||
currenciesWith0MinorUnitDecimals == null ||
currenciesWith1MinorUnitDecimal == null ||
currenciesWith3MinorUnitDecimal == null ||
currenciesWithMinorUnitsUndefined == null) { currenciesWithMinorUnitsUndefined == null) {
throw new NullPointerException("not all required data is defined in input"); throw new NullPointerException("not all required data is defined in input");
} }
...@@ -207,7 +208,7 @@ public class GenerateCurrencyData { ...@@ -207,7 +208,7 @@ public class GenerateCurrencyData {
if (currencyInfo.charAt(0) == firstChar && currencyInfo.charAt(1) == secondChar) { if (currencyInfo.charAt(0) == firstChar && currencyInfo.charAt(1) == secondChar) {
checkCurrencyCode(currencyInfo); checkCurrencyCode(currencyInfo);
int digits = getDefaultFractionDigits(currencyInfo); int digits = getDefaultFractionDigits(currencyInfo);
if (digits < 0 || digits > 3) { if (digits < 0 || digits > SIMPLE_CASE_COUNTRY_MAX_DEFAULT_DIGITS) {
throw new RuntimeException("fraction digits out of range for " + currencyInfo); throw new RuntimeException("fraction digits out of range for " + currencyInfo);
} }
int numericCode= getNumericCode(currencyInfo); int numericCode= getNumericCode(currencyInfo);
...@@ -231,13 +232,14 @@ public class GenerateCurrencyData { ...@@ -231,13 +232,14 @@ public class GenerateCurrencyData {
} }
private static int getDefaultFractionDigits(String currencyCode) { private static int getDefaultFractionDigits(String currencyCode) {
if (currenciesWith0MinorUnitDecimals.indexOf(currencyCode) != -1) { for (int i = 0; i <= SIMPLE_CASE_COUNTRY_MAX_DEFAULT_DIGITS; i++) {
return 0; if (currenciesWithDefinedMinorUnitDecimals[i] != null &&
} else if (currenciesWith1MinorUnitDecimal.indexOf(currencyCode) != -1) { currenciesWithDefinedMinorUnitDecimals[i].indexOf(currencyCode) != -1) {
return 1; return i;
} else if (currenciesWith3MinorUnitDecimal.indexOf(currencyCode) != -1) { }
return 3; }
} else if (currenciesWithMinorUnitsUndefined.indexOf(currencyCode) != -1) {
if (currenciesWithMinorUnitsUndefined.indexOf(currencyCode) != -1) {
return -1; return -1;
} else { } else {
return 2; return 2;
......
...@@ -491,10 +491,10 @@ public class ZoneRulesBuilder { ...@@ -491,10 +491,10 @@ public class ZoneRulesBuilder {
TZRule rule = new TZRule(year, month, dayOfMonthIndicator, dayOfWeek, time, timeEndOfDay, timeDefinition, savingAmountSecs); TZRule rule = new TZRule(year, month, dayOfMonthIndicator, dayOfWeek, time, timeEndOfDay, timeDefinition, savingAmountSecs);
if (lastRule) { if (lastRule) {
lastRuleList.add(rule); lastRuleList.add(rule);
maxLastRuleStartYear = Math.max(startYear, maxLastRuleStartYear);
} else { } else {
ruleList.add(rule); ruleList.add(rule);
} }
maxLastRuleStartYear = Math.max(startYear, maxLastRuleStartYear);
year++; year++;
} }
} }
......
...@@ -43,7 +43,7 @@ class AixNativeDispatcher extends UnixNativeDispatcher { ...@@ -43,7 +43,7 @@ class AixNativeDispatcher extends UnixNativeDispatcher {
static native UnixMountEntry[] getmntctl() throws UnixException; static native UnixMountEntry[] getmntctl() throws UnixException;
// initialize // initialize
private static native int init(); private static native void init();
static { static {
AccessController.doPrivileged(new PrivilegedAction<Void>() { AccessController.doPrivileged(new PrivilegedAction<Void>() {
......
/* /*
* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
* Copyright 2013 SAP AG. All rights reserved. * Copyright 2015 SAP AG. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -25,14 +25,14 @@ ...@@ -25,14 +25,14 @@
*/ */
package sun.tools.attach; package sun.tools.attach;
import com.sun.tools.attach.VirtualMachine; import com.sun.tools.attach.AttachOperationFailedException;
import com.sun.tools.attach.AgentLoadException; import com.sun.tools.attach.AgentLoadException;
import com.sun.tools.attach.AttachNotSupportedException; import com.sun.tools.attach.AttachNotSupportedException;
import com.sun.tools.attach.spi.AttachProvider; import com.sun.tools.attach.spi.AttachProvider;
import java.io.InputStream; import java.io.InputStream;
import java.io.IOException; import java.io.IOException;
import java.io.File; import java.io.File;
import java.util.Properties;
// Based on 'LinuxVirtualMachine.java'. All occurrences of the string // Based on 'LinuxVirtualMachine.java'. All occurrences of the string
// "Linux" have been textually replaced by "Aix" to avoid confusion. // "Linux" have been textually replaced by "Aix" to avoid confusion.
...@@ -192,6 +192,8 @@ public class AixVirtualMachine extends HotSpotVirtualMachine { ...@@ -192,6 +192,8 @@ public class AixVirtualMachine extends HotSpotVirtualMachine {
} }
if (completionStatus != 0) { if (completionStatus != 0) {
// read from the stream and use that as the error message
String message = readErrorMessage(sis);
sis.close(); sis.close();
// In the event of a protocol mismatch then the target VM // In the event of a protocol mismatch then the target VM
...@@ -206,7 +208,11 @@ public class AixVirtualMachine extends HotSpotVirtualMachine { ...@@ -206,7 +208,11 @@ public class AixVirtualMachine extends HotSpotVirtualMachine {
if (cmd.equals("load")) { if (cmd.equals("load")) {
throw new AgentLoadException("Failed to load agent library"); throw new AgentLoadException("Failed to load agent library");
} else { } else {
throw new IOException("Command failed in target VM"); if (message == null) {
throw new AttachOperationFailedException("Command failed in target VM");
} else {
throw new AttachOperationFailedException(message);
}
} }
} }
......
...@@ -56,23 +56,26 @@ static void throwUnixException(JNIEnv* env, int errnum) { ...@@ -56,23 +56,26 @@ static void throwUnixException(JNIEnv* env, int errnum) {
/** /**
* Initialization * Initialization
*/ */
JNIEXPORT jint JNICALL JNIEXPORT void JNICALL
Java_sun_nio_fs_AixNativeDispatcher_init(JNIEnv* env, jclass this) Java_sun_nio_fs_AixNativeDispatcher_init(JNIEnv* env, jclass this)
{ {
jint flags = 0;
jclass clazz; jclass clazz;
clazz = (*env)->FindClass(env, "sun/nio/fs/UnixMountEntry"); clazz = (*env)->FindClass(env, "sun/nio/fs/UnixMountEntry");
if (clazz == NULL) { CHECK_NULL(clazz);
return 0;
}
entry_name = (*env)->GetFieldID(env, clazz, "name", "[B"); entry_name = (*env)->GetFieldID(env, clazz, "name", "[B");
CHECK_NULL(entry_name);
entry_dir = (*env)->GetFieldID(env, clazz, "dir", "[B"); entry_dir = (*env)->GetFieldID(env, clazz, "dir", "[B");
CHECK_NULL(entry_dir);
entry_fstype = (*env)->GetFieldID(env, clazz, "fstype", "[B"); entry_fstype = (*env)->GetFieldID(env, clazz, "fstype", "[B");
CHECK_NULL(entry_fstype);
entry_options = (*env)->GetFieldID(env, clazz, "opts", "[B"); entry_options = (*env)->GetFieldID(env, clazz, "opts", "[B");
CHECK_NULL(entry_options);
entry_cls = (*env)->NewGlobalRef(env, clazz); entry_cls = (*env)->NewGlobalRef(env, clazz);
if (entry_cls == NULL) {
return 0; JNU_ThrowOutOfMemoryError(env, NULL);
return;
}
} }
/** /**
......
/* /*
* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
* Copyright 2013 SAP AG. All rights reserved. * Copyright 2015 SAP AG. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -238,14 +238,14 @@ JNIEXPORT jint JNICALL Java_sun_tools_attach_AixVirtualMachine_read ...@@ -238,14 +238,14 @@ JNIEXPORT jint JNICALL Java_sun_tools_attach_AixVirtualMachine_read
len = remaining; len = remaining;
} }
RESTARTABLE(read(fd, buf+off, len), n); RESTARTABLE(read(fd, buf, len), n);
if (n == -1) { if (n == -1) {
JNU_ThrowIOExceptionWithLastError(env, "read"); JNU_ThrowIOExceptionWithLastError(env, "read");
} else { } else {
if (n == 0) { if (n == 0) {
n = -1; // EOF n = -1; // EOF
} else { } else {
(*env)->SetByteArrayRegion(env, ba, off, (jint)n, (jbyte *)(buf+off)); (*env)->SetByteArrayRegion(env, ba, off, (jint)n, (jbyte *)(buf));
} }
} }
return n; return n;
......
...@@ -140,7 +140,8 @@ public final class KeychainStore extends KeyStoreSpi { ...@@ -140,7 +140,8 @@ public final class KeychainStore extends KeyStoreSpi {
* password to recover it. * password to recover it.
* *
* @param alias the alias name * @param alias the alias name
* @param password the password for recovering the key * @param password the password for recovering the key. This password is
* used internally as the key is exported in a PKCS12 format.
* *
* @return the requested key, or null if the given alias does not exist * @return the requested key, or null if the given alias does not exist
* or does not identify a <i>key entry</i>. * or does not identify a <i>key entry</i>.
...@@ -155,6 +156,20 @@ public final class KeychainStore extends KeyStoreSpi { ...@@ -155,6 +156,20 @@ public final class KeychainStore extends KeyStoreSpi {
{ {
permissionCheck(); permissionCheck();
// An empty password is rejected by MacOS API, no private key data
// is exported. If no password is passed (as is the case when
// this implementation is used as browser keystore in various
// deployment scenarios like Webstart, JFX and applets), create
// a dummy password so MacOS API is happy.
if (password == null || password.length == 0) {
// Must not be a char array with only a 0, as this is an empty
// string.
if (random == null) {
random = new SecureRandom();
}
password = Long.toString(random.nextLong()).toCharArray();
}
Object entry = entries.get(alias.toLowerCase()); Object entry = entries.get(alias.toLowerCase());
if (entry == null || !(entry instanceof KeyEntry)) { if (entry == null || !(entry instanceof KeyEntry)) {
......
/* /*
* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -68,8 +68,9 @@ public abstract class AquaBorder implements Border, UIResource { ...@@ -68,8 +68,9 @@ public abstract class AquaBorder implements Border, UIResource {
painter.state.set(size); painter.state.set(size);
} }
@Override
public Insets getBorderInsets(final Component c) { public Insets getBorderInsets(final Component c) {
return sizeVariant.margins; return (Insets) sizeVariant.margins.clone();
} }
protected AquaBorder deriveBorderForSize(final Size size) { protected AquaBorder deriveBorderForSize(final Size size) {
...@@ -130,8 +131,10 @@ public abstract class AquaBorder implements Border, UIResource { ...@@ -130,8 +131,10 @@ public abstract class AquaBorder implements Border, UIResource {
return (focusable != null && focusable instanceof JComponent && ((JComponent)focusable).hasFocus()); return (focusable != null && focusable instanceof JComponent && ((JComponent)focusable).hasFocus());
} }
@Override
public boolean isBorderOpaque() { return false; } public boolean isBorderOpaque() { return false; }
@Override
public void paintBorder(final Component c, final Graphics g, final int x, final int y, final int w, final int h) { public void paintBorder(final Component c, final Graphics g, final int x, final int y, final int w, final int h) {
painter.paint(g, c, x, y, w, h); painter.paint(g, c, x, y, w, h);
} }
......
...@@ -151,20 +151,6 @@ public class AquaComboBoxUI extends BasicComboBoxUI implements Sizeable { ...@@ -151,20 +151,6 @@ public class AquaComboBoxUI extends BasicComboBoxUI implements Sizeable {
editor.getDocument().addDocumentListener(this); editor.getDocument().addDocumentListener(this);
} }
@Override
public void focusGained(final FocusEvent e) {
if (arrowButton != null) {
arrowButton.repaint();
}
}
@Override
public void focusLost(final FocusEvent e) {
if (arrowButton != null) {
arrowButton.repaint();
}
}
@Override @Override
public void changedUpdate(final DocumentEvent e) { public void changedUpdate(final DocumentEvent e) {
editorTextChanged(); editorTextChanged();
...@@ -250,6 +236,16 @@ public class AquaComboBoxUI extends BasicComboBoxUI implements Sizeable { ...@@ -250,6 +236,16 @@ public class AquaComboBoxUI extends BasicComboBoxUI implements Sizeable {
*/ */
protected FocusListener createFocusListener() { protected FocusListener createFocusListener() {
return new BasicComboBoxUI.FocusHandler() { return new BasicComboBoxUI.FocusHandler() {
@Override
public void focusGained(FocusEvent e) {
super.focusGained(e);
if (arrowButton != null) {
arrowButton.repaint();
}
}
@Override
public void focusLost(final FocusEvent e) { public void focusLost(final FocusEvent e) {
hasFocus = false; hasFocus = false;
if (!e.isTemporary()) { if (!e.isTemporary()) {
...@@ -262,6 +258,10 @@ public class AquaComboBoxUI extends BasicComboBoxUI implements Sizeable { ...@@ -262,6 +258,10 @@ public class AquaComboBoxUI extends BasicComboBoxUI implements Sizeable {
if (ac != null) { if (ac != null) {
ac.firePropertyChange(AccessibleContext.ACCESSIBLE_STATE_PROPERTY, AccessibleState.FOCUSED, null); ac.firePropertyChange(AccessibleContext.ACCESSIBLE_STATE_PROPERTY, AccessibleState.FOCUSED, null);
} }
if (arrowButton != null) {
arrowButton.repaint();
}
} }
}; };
} }
...@@ -273,7 +273,7 @@ public class AquaComboBoxUI extends BasicComboBoxUI implements Sizeable { ...@@ -273,7 +273,7 @@ public class AquaComboBoxUI extends BasicComboBoxUI implements Sizeable {
actionMap.put("aquaSelectNext", highlightNextAction); actionMap.put("aquaSelectNext", highlightNextAction);
actionMap.put("aquaSelectPrevious", highlightPreviousAction); actionMap.put("aquaSelectPrevious", highlightPreviousAction);
actionMap.put("aquaEnterPressed", triggerSelectionAction); actionMap.put("enterPressed", triggerSelectionAction);
actionMap.put("aquaSpacePressed", toggleSelectionAction); actionMap.put("aquaSpacePressed", toggleSelectionAction);
actionMap.put("aquaSelectHome", highlightFirstAction); actionMap.put("aquaSelectHome", highlightFirstAction);
...@@ -429,6 +429,7 @@ public class AquaComboBoxUI extends BasicComboBoxUI implements Sizeable { ...@@ -429,6 +429,7 @@ public class AquaComboBoxUI extends BasicComboBoxUI implements Sizeable {
if (editor != null) { if (editor != null) {
final Rectangle editorRect = rectangleForCurrentValue(); final Rectangle editorRect = rectangleForCurrentValue();
editorRect.width += 4; editorRect.width += 4;
editorRect.height += 1;
editor.setBounds(editorRect); editor.setBounds(editorRect);
} }
} }
......
/* /*
* Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -1089,8 +1089,15 @@ public class AquaFileChooserUI extends FileChooserUI { ...@@ -1089,8 +1089,15 @@ public class AquaFileChooserUI extends FileChooserUI {
super(f); super(f);
} }
public Component getTableCellRendererComponent(final JTable list, final Object value, final boolean isSelected, final boolean cellHasFocus, final int index, final int col) { public Component getTableCellRendererComponent(final JTable list,
super.getTableCellRendererComponent(list, value, isSelected, false, index, col); // No focus border, thanks final Object value,
final boolean isSelected,
final boolean cellHasFocus,
final int index,
final int col) {
super.getTableCellRendererComponent(list, value, isSelected, false,
index,
col); // No focus border, thanks
final File file = (File)value; final File file = (File)value;
final JFileChooser fc = getFileChooser(); final JFileChooser fc = getFileChooser();
setText(fc.getName(file)); setText(fc.getName(file));
...@@ -1105,8 +1112,14 @@ public class AquaFileChooserUI extends FileChooserUI { ...@@ -1105,8 +1112,14 @@ public class AquaFileChooserUI extends FileChooserUI {
super(f); super(f);
} }
public Component getTableCellRendererComponent(final JTable list, final Object value, final boolean isSelected, final boolean cellHasFocus, final int index, final int col) { public Component getTableCellRendererComponent(final JTable list,
super.getTableCellRendererComponent(list, value, isSelected, false, index, col); final Object value,
final boolean isSelected,
final boolean cellHasFocus,
final int index,
final int col) {
super.getTableCellRendererComponent(list, value, isSelected, false,
index, col);
final File file = (File)fFileList.getValueAt(index, 0); final File file = (File)fFileList.getValueAt(index, 0);
setEnabled(isSelectableInList(file)); setEnabled(isSelectableInList(file));
final DateFormat formatter = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.SHORT); final DateFormat formatter = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.SHORT);
...@@ -1122,14 +1135,17 @@ public class AquaFileChooserUI extends FileChooserUI { ...@@ -1122,14 +1135,17 @@ public class AquaFileChooserUI extends FileChooserUI {
} }
} }
@Override
public Dimension getPreferredSize(final JComponent c) { public Dimension getPreferredSize(final JComponent c) {
return PREF_SIZE; return new Dimension(PREF_WIDTH, PREF_HEIGHT);
} }
@Override
public Dimension getMinimumSize(final JComponent c) { public Dimension getMinimumSize(final JComponent c) {
return MIN_SIZE; return new Dimension(MIN_WIDTH, MIN_HEIGHT);
} }
@Override
public Dimension getMaximumSize(final JComponent c) { public Dimension getMaximumSize(final JComponent c) {
return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE); return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE);
} }
...@@ -1793,12 +1809,8 @@ public class AquaFileChooserUI extends FileChooserUI { ...@@ -1793,12 +1809,8 @@ public class AquaFileChooserUI extends FileChooserUI {
private static final int PREF_WIDTH = 550; private static final int PREF_WIDTH = 550;
private static final int PREF_HEIGHT = 400; private static final int PREF_HEIGHT = 400;
private static final Dimension PREF_SIZE = new Dimension(PREF_WIDTH, PREF_HEIGHT);
private static final int MIN_WIDTH = 400; private static final int MIN_WIDTH = 400;
private static final int MIN_HEIGHT = 250; private static final int MIN_HEIGHT = 250;
private static final Dimension MIN_SIZE = new Dimension(MIN_WIDTH, MIN_HEIGHT);
private static final int LIST_MIN_WIDTH = 400; private static final int LIST_MIN_WIDTH = 400;
private static final int LIST_MIN_HEIGHT = 100; private static final int LIST_MIN_HEIGHT = 100;
private static final Dimension LIST_MIN_SIZE = new Dimension(LIST_MIN_WIDTH, LIST_MIN_HEIGHT); private static final Dimension LIST_MIN_SIZE = new Dimension(LIST_MIN_WIDTH, LIST_MIN_HEIGHT);
......
...@@ -195,7 +195,7 @@ public class AquaIcon { ...@@ -195,7 +195,7 @@ public class AquaIcon {
AquaPainter.create(JRSUIState.getInstance()); AquaPainter.create(JRSUIState.getInstance());
initIconPainter(painter); initIconPainter(painter);
g.setClip(new Rectangle(x, y, width, height)); g.clipRect(x, y, width, height);
painter.paint(g, c, x, y, width, height); painter.paint(g, c, x, y, width, height);
g.dispose(); g.dispose();
} }
......
...@@ -214,7 +214,7 @@ public class AquaKeyBindings { ...@@ -214,7 +214,7 @@ public class AquaKeyBindings {
"PAGE_DOWN", "aquaSelectPageDown", "PAGE_DOWN", "aquaSelectPageDown",
"HOME", "aquaSelectHome", "HOME", "aquaSelectHome",
"END", "aquaSelectEnd", "END", "aquaSelectEnd",
"ENTER", "aquaEnterPressed", "ENTER", "enterPressed",
"UP", "aquaSelectPrevious", "UP", "aquaSelectPrevious",
"KP_UP", "aquaSelectPrevious", "KP_UP", "aquaSelectPrevious",
"DOWN", "aquaSelectNext", "DOWN", "aquaSelectNext",
......
/* /*
* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -25,46 +25,33 @@ ...@@ -25,46 +25,33 @@
package com.apple.laf; package com.apple.laf;
import java.awt.*; import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Insets;
import javax.swing.border.Border; import javax.swing.border.Border;
import sun.swing.SwingUtilities2;
/**
* The class represents the border of a {@code JMenuBar}.
*/
public class AquaMenuBarBorder implements Border { public class AquaMenuBarBorder implements Border {
public AquaMenuBarBorder() {
super();
}
/** @Override
* Paints the border for the specified component with the specified public void paintBorder(final Component c, final Graphics g, final int x,
* position and size. final int y, final int width, final int height) {
* @param c the component for which this border is being painted
* @param g the paint graphics
* @param x the x position of the painted border
* @param y the y position of the painted border
* @param width the width of the painted border
* @param height the height of the painted border
*/
public void paintBorder(final Component c, final Graphics g, final int x, final int y, final int width, final int height) {
// for now we don't paint a border. We let the button paint it since there
// needs to be a strict ordering for aqua components.
//paintButton(c, g, x, y, width, height);
g.setColor(Color.gray); g.setColor(Color.gray);
g.drawLine(x, y + height - 1, x + width, y + height - 1); SwingUtilities2.drawHLine(g, x, x + width - 1, y + height - 1);
} }
/** @Override
* Returns the insets of the border.
* @param c the component for which this border insets value applies
*/
public Insets getBorderInsets(final Component c) { public Insets getBorderInsets(final Component c) {
return new Insets(0, 0, 1, 0); return new Insets(0, 0, 1, 0);
} }
/** @Override
* Returns whether or not the border is opaque. If the border
* is opaque, it is responsible for filling in it's own
* background when painting.
*/
public boolean isBorderOpaque() { public boolean isBorderOpaque() {
return false; return false;
} }
......
...@@ -148,11 +148,15 @@ public class AquaMenuUI extends BasicMenuUI implements AquaMenuPainter.Client { ...@@ -148,11 +148,15 @@ public class AquaMenuUI extends BasicMenuUI implements AquaMenuPainter.Client {
// In Aqua, we always have a menu delay, regardless of where the menu is. // In Aqua, we always have a menu delay, regardless of where the menu is.
if (!(selectedPath.length > 0 && selectedPath[selectedPath.length - 1] == menu.getPopupMenu())) { if (!(selectedPath.length > 0 && selectedPath[selectedPath.length - 1] == menu.getPopupMenu())) {
if (menu.getDelay() == 0) { // the condition below prevents from activating menu in other frame
appendPath(getPath(), menu.getPopupMenu()); if (!menu.isTopLevelMenu() || (selectedPath.length > 0 &&
} else { selectedPath[0] == menu.getParent())) {
manager.setSelectedPath(getPath()); if (menu.getDelay() == 0) {
setupPostTimer(menu); appendPath(getPath(), menu.getPopupMenu());
} else {
manager.setSelectedPath(getPath());
setupPostTimer(menu);
}
} }
} }
} }
......
...@@ -29,6 +29,7 @@ import java.awt.event.*; ...@@ -29,6 +29,7 @@ import java.awt.event.*;
import javax.swing.*; import javax.swing.*;
import javax.swing.plaf.ComponentUI; import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicScrollPaneUI;
public class AquaScrollPaneUI extends javax.swing.plaf.basic.BasicScrollPaneUI { public class AquaScrollPaneUI extends javax.swing.plaf.basic.BasicScrollPaneUI {
public static ComponentUI createUI(final JComponent x) { public static ComponentUI createUI(final JComponent x) {
...@@ -39,28 +40,9 @@ public class AquaScrollPaneUI extends javax.swing.plaf.basic.BasicScrollPaneUI { ...@@ -39,28 +40,9 @@ public class AquaScrollPaneUI extends javax.swing.plaf.basic.BasicScrollPaneUI {
return new XYMouseWheelHandler(); return new XYMouseWheelHandler();
} }
// This is a grody hack to trick BasicScrollPaneUI into scrolling horizontally protected class XYMouseWheelHandler extends BasicScrollPaneUI.MouseWheelHandler {
// when we notice that the shift key is down. This should be removed when AWT/Swing
// becomes aware of of multi-axis scroll wheels.
protected class XYMouseWheelHandler extends javax.swing.plaf.basic.BasicScrollPaneUI.MouseWheelHandler {
public void mouseWheelMoved(final MouseWheelEvent e) { public void mouseWheelMoved(final MouseWheelEvent e) {
JScrollBar vScrollBar = null;
boolean wasVisible = false;
if (e.isShiftDown()) {
vScrollBar = scrollpane.getVerticalScrollBar();
if (vScrollBar != null) {
wasVisible = vScrollBar.isVisible();
vScrollBar.setVisible(false);
}
}
super.mouseWheelMoved(e); super.mouseWheelMoved(e);
if (wasVisible) {
vScrollBar.setVisible(true);
}
// Consume the event even when the scrollBar is invisible // Consume the event even when the scrollBar is invisible
// see #7124320 // see #7124320
e.consume(); e.consume();
......
...@@ -124,7 +124,7 @@ public class AquaTextFieldBorder extends AquaBorder { ...@@ -124,7 +124,7 @@ public class AquaTextFieldBorder extends AquaBorder {
public Insets getBorderInsets(final Component c) { public Insets getBorderInsets(final Component c) {
if (!(c instanceof JTextComponent) || c.isOpaque()) return new InsetsUIResource(3, 7, 3, 7); if (!(c instanceof JTextComponent) || c.isOpaque()) return new InsetsUIResource(3, 7, 3, 7);
return new InsetsUIResource(6, 7, 6, 7); return new InsetsUIResource(5, 5, 5, 5);
} }
protected static State getStateFor(final JTextComponent jc) { protected static State getStateFor(final JTextComponent jc) {
......
...@@ -43,7 +43,6 @@ public final class CGraphicsDevice extends GraphicsDevice ...@@ -43,7 +43,6 @@ public final class CGraphicsDevice extends GraphicsDevice
* therefore methods, which is using this id should be ready to it. * therefore methods, which is using this id should be ready to it.
*/ */
private volatile int displayID; private volatile int displayID;
private volatile Insets screenInsets;
private volatile double xResolution; private volatile double xResolution;
private volatile double yResolution; private volatile double yResolution;
private volatile int scale; private volatile int scale;
...@@ -120,7 +119,13 @@ public final class CGraphicsDevice extends GraphicsDevice ...@@ -120,7 +119,13 @@ public final class CGraphicsDevice extends GraphicsDevice
} }
public Insets getScreenInsets() { public Insets getScreenInsets() {
return screenInsets; // the insets are queried synchronously and are not cached
// since there are no Quartz or Cocoa means to receive notifications
// on insets changes (e.g. when the Dock is resized):
// the existing CGDisplayReconfigurationCallBack is not notified
// as well as the NSApplicationDidChangeScreenParametersNotification
// is fired on the Dock location changes only
return nativeGetScreenInsets(displayID);
} }
public int getScaleFactor() { public int getScaleFactor() {
...@@ -135,7 +140,6 @@ public final class CGraphicsDevice extends GraphicsDevice ...@@ -135,7 +140,6 @@ public final class CGraphicsDevice extends GraphicsDevice
public void displayChanged() { public void displayChanged() {
xResolution = nativeGetXResolution(displayID); xResolution = nativeGetXResolution(displayID);
yResolution = nativeGetYResolution(displayID); yResolution = nativeGetYResolution(displayID);
screenInsets = nativeGetScreenInsets(displayID);
scale = (int) nativeGetScaleFactor(displayID); scale = (int) nativeGetScaleFactor(displayID);
//TODO configs/fullscreenWindow/modes? //TODO configs/fullscreenWindow/modes?
} }
......
/* /*
* Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -132,7 +132,9 @@ final class LWCheckboxPeer ...@@ -132,7 +132,9 @@ final class LWCheckboxPeer
@Override @Override
public void setState(final boolean state) { public void setState(final boolean state) {
synchronized (getDelegateLock()) { synchronized (getDelegateLock()) {
getDelegate().getCurrentButton().removeItemListener(this);
getDelegate().setSelected(state); getDelegate().setSelected(state);
getDelegate().getCurrentButton().addItemListener(this);
} }
repaintPeer(); repaintPeer();
} }
......
...@@ -1295,6 +1295,12 @@ public class LWWindowPeer ...@@ -1295,6 +1295,12 @@ public class LWWindowPeer
} }
KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance(); KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
if (!becomesFocused && kfmPeer.getCurrentFocusedWindow() != getTarget()) {
// late window focus lost event - ingoring
return;
}
kfmPeer.setCurrentFocusedWindow(becomesFocused ? getTarget() : null); kfmPeer.setCurrentFocusedWindow(becomesFocused ? getTarget() : null);
int eventID = becomesFocused ? WindowEvent.WINDOW_GAINED_FOCUS : WindowEvent.WINDOW_LOST_FOCUS; int eventID = becomesFocused ? WindowEvent.WINDOW_GAINED_FOCUS : WindowEvent.WINDOW_LOST_FOCUS;
......
/* /*
* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -630,7 +630,7 @@ class CAccessibility implements PropertyChangeListener { ...@@ -630,7 +630,7 @@ class CAccessibility implements PropertyChangeListener {
if (!allowIgnored) { if (!allowIgnored) {
final AccessibleRole role = context.getAccessibleRole(); final AccessibleRole role = context.getAccessibleRole();
if (role != null && ignoredRoles.contains(roleKey(role))) { if (role != null && ignoredRoles != null && ignoredRoles.contains(roleKey(role))) {
// Get the child's unignored children. // Get the child's unignored children.
_addChildren(child, whichChildren, false, childrenAndRoles); _addChildren(child, whichChildren, false, childrenAndRoles);
} else { } else {
......
...@@ -161,7 +161,7 @@ public class CEmbeddedFrame extends EmbeddedFrame { ...@@ -161,7 +161,7 @@ public class CEmbeddedFrame extends EmbeddedFrame {
} }
// ignore focus "lost" native request as it may mistakenly // ignore focus "lost" native request as it may mistakenly
// deactivate active window (see 8001161) // deactivate active window (see 8001161)
if (globalFocusedWindow == this && parentWindowActive) { if (globalFocusedWindow == this) {
responder.handleWindowFocusEvent(parentWindowActive, null); responder.handleWindowFocusEvent(parentWindowActive, null);
} }
} }
......
...@@ -136,33 +136,35 @@ public class CImage extends CFRetainedResource { ...@@ -136,33 +136,35 @@ public class CImage extends CFRetainedResource {
return ((DataBufferInt)bimg.getRaster().getDataBuffer()).getData(); return ((DataBufferInt)bimg.getRaster().getDataBuffer()).getData();
} }
public CImage createFromImageImmediately(final Image image) { // This is used to create a CImage from a Image
int[] buffer = imageToArray(image, false); public CImage createFromImage(final Image image) {
return createFromImage(image, true);
if (buffer == null) { }
return null;
}
return new CImage(nativeCreateNSImageFromArray(buffer, image.getWidth(null), public CImage createFromImageImmediately(final Image image) {
image.getHeight(null))); return createFromImage(image, false);
} }
// This is used to create a CImage from a Image // This is used to create a CImage from a Image
public CImage createFromImage(final Image image) { private CImage createFromImage(final Image image, final boolean prepareImage) {
if (image instanceof MultiResolutionImage) { if (image instanceof MultiResolutionImage) {
List<Image> resolutionVariants List<Image> resolutionVariants
= ((MultiResolutionImage) image).getResolutionVariants(); = ((MultiResolutionImage) image).getResolutionVariants();
return createFromImages(resolutionVariants); return createFromImages(resolutionVariants, prepareImage);
} }
int[] buffer = imageToArray(image, true); int[] buffer = imageToArray(image, prepareImage);
if (buffer == null) { if (buffer == null) {
return null; return null;
} }
return new CImage(nativeCreateNSImageFromArray(buffer, image.getWidth(null), image.getHeight(null))); return new CImage(nativeCreateNSImageFromArray(buffer, image.getWidth(null), image.getHeight(null)));
} }
public CImage createFromImages(List<Image> images) { public CImage createFromImages(final List<Image> images) {
return createFromImages(images, true);
}
private CImage createFromImages(final List<Image> images, final boolean prepareImage) {
if (images == null || images.isEmpty()) { if (images == null || images.isEmpty()) {
return null; return null;
} }
...@@ -175,8 +177,8 @@ public class CImage extends CFRetainedResource { ...@@ -175,8 +177,8 @@ public class CImage extends CFRetainedResource {
num = 0; num = 0;
for (Image img : images) { for (final Image img : images) {
buffers[num] = imageToArray(img, true); buffers[num] = imageToArray(img, prepareImage);
if (buffers[num] == null) { if (buffers[num] == null) {
// Unable to process the image // Unable to process the image
continue; continue;
...@@ -191,9 +193,9 @@ public class CImage extends CFRetainedResource { ...@@ -191,9 +193,9 @@ public class CImage extends CFRetainedResource {
} }
return new CImage(nativeCreateNSImageFromArrays( return new CImage(nativeCreateNSImageFromArrays(
Arrays.copyOf(buffers, num), Arrays.copyOf(buffers, num),
Arrays.copyOf(w, num), Arrays.copyOf(w, num),
Arrays.copyOf(h, num))); Arrays.copyOf(h, num)));
} }
static int getSelectorAsInt(final String fromString) { static int getSelectorAsInt(final String fromString) {
......
...@@ -36,6 +36,10 @@ import java.security.PrivilegedAction; ...@@ -36,6 +36,10 @@ import java.security.PrivilegedAction;
import javax.print.*; import javax.print.*;
import javax.print.attribute.PrintRequestAttributeSet; import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet; import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.standard.Media;
import javax.print.attribute.standard.MediaPrintableArea;
import javax.print.attribute.standard.MediaSize;
import javax.print.attribute.standard.MediaSizeName;
import javax.print.attribute.standard.PageRanges; import javax.print.attribute.standard.PageRanges;
import sun.java2d.*; import sun.java2d.*;
...@@ -741,4 +745,34 @@ public final class CPrinterJob extends RasterPrinterJob { ...@@ -741,4 +745,34 @@ public final class CPrinterJob extends RasterPrinterJob {
protected void startPage(PageFormat arg0, Printable arg1, int arg2, boolean arg3) throws PrinterException { protected void startPage(PageFormat arg0, Printable arg1, int arg2, boolean arg3) throws PrinterException {
// TODO Auto-generated method stub // TODO Auto-generated method stub
} }
@Override
protected MediaSize getMediaSize(Media media, PrintService service,
PageFormat page) {
if (media == null || !(media instanceof MediaSizeName)) {
return getDefaultMediaSize(page);
} }
MediaSize size = MediaSize.getMediaSizeForName((MediaSizeName) media);
return size != null ? size : getDefaultMediaSize(page);
}
private MediaSize getDefaultMediaSize(PageFormat page){
final int inch = 72;
Paper paper = page.getPaper();
float width = (float) (paper.getWidth() / inch);
float height = (float) (paper.getHeight() / inch);
return new MediaSize(width, height, MediaSize.INCH);
}
@Override
protected MediaPrintableArea getDefaultPrintableArea(PageFormat page, double w, double h) {
final float dpi = 72.0f;
Paper paper = page.getPaper();
return new MediaPrintableArea(
(float) (paper.getImageableX() / dpi),
(float) (paper.getImageableY() / dpi),
(float) (paper.getImageableWidth() / dpi),
(float) (paper.getImageableHeight() / dpi),
MediaPrintableArea.INCH);
}
}
\ No newline at end of file
/* /*
* Copyright (c) 1999, 2013 Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
......
/* /*
* Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
//#define USE_VERBOSE_TRACE //#define USE_VERBOSE_TRACE
#include <AudioUnit/AudioUnit.h> #include <AudioUnit/AudioUnit.h>
#include <CoreServices/CoreServices.h>
#include <AudioToolbox/AudioConverter.h> #include <AudioToolbox/AudioConverter.h>
#include <pthread.h> #include <pthread.h>
#include <math.h> #include <math.h>
...@@ -617,7 +616,7 @@ struct OSX_DirectAudioDevice { ...@@ -617,7 +616,7 @@ struct OSX_DirectAudioDevice {
~OSX_DirectAudioDevice() { ~OSX_DirectAudioDevice() {
if (audioUnit) { if (audioUnit) {
CloseComponent(audioUnit); AudioComponentInstanceDispose(audioUnit);
} }
if (resampler) { if (resampler) {
delete resampler; delete resampler;
...@@ -629,17 +628,16 @@ static AudioUnit CreateOutputUnit(AudioDeviceID deviceID, int isSource) ...@@ -629,17 +628,16 @@ static AudioUnit CreateOutputUnit(AudioDeviceID deviceID, int isSource)
{ {
OSStatus err; OSStatus err;
AudioUnit unit; AudioUnit unit;
UInt32 size;
ComponentDescription desc; AudioComponentDescription desc;
desc.componentType = kAudioUnitType_Output; desc.componentType = kAudioUnitType_Output;
desc.componentSubType = (deviceID == 0 && isSource) ? kAudioUnitSubType_DefaultOutput : kAudioUnitSubType_HALOutput; desc.componentSubType = (deviceID == 0 && isSource) ? kAudioUnitSubType_DefaultOutput : kAudioUnitSubType_HALOutput;
desc.componentManufacturer = kAudioUnitManufacturer_Apple; desc.componentManufacturer = kAudioUnitManufacturer_Apple;
desc.componentFlags = 0; desc.componentFlags = 0;
desc.componentFlagsMask = 0; desc.componentFlagsMask = 0;
Component comp = FindNextComponent(NULL, &desc); AudioComponent comp = AudioComponentFindNext(NULL, &desc);
err = OpenAComponent(comp, &unit); err = AudioComponentInstanceNew(comp, &unit);
if (err) { if (err) {
OS_ERROR0(err, "CreateOutputUnit:OpenAComponent"); OS_ERROR0(err, "CreateOutputUnit:OpenAComponent");
...@@ -664,7 +662,7 @@ static AudioUnit CreateOutputUnit(AudioDeviceID deviceID, int isSource) ...@@ -664,7 +662,7 @@ static AudioUnit CreateOutputUnit(AudioDeviceID deviceID, int isSource)
// get real AudioDeviceID for default input device (macosx current input device) // get real AudioDeviceID for default input device (macosx current input device)
deviceID = GetDefaultDevice(isSource); deviceID = GetDefaultDevice(isSource);
if (!deviceID) { if (!deviceID) {
CloseComponent(unit); AudioComponentInstanceDispose(unit);
return NULL; return NULL;
} }
} }
...@@ -675,7 +673,7 @@ static AudioUnit CreateOutputUnit(AudioDeviceID deviceID, int isSource) ...@@ -675,7 +673,7 @@ static AudioUnit CreateOutputUnit(AudioDeviceID deviceID, int isSource)
0, &deviceID, sizeof(deviceID)); 0, &deviceID, sizeof(deviceID));
if (err) { if (err) {
OS_ERROR0(err, "SetProperty (CurrentDevice)"); OS_ERROR0(err, "SetProperty (CurrentDevice)");
CloseComponent(unit); AudioComponentInstanceDispose(unit);
return NULL; return NULL;
} }
} }
......
/* /*
* Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -28,8 +28,6 @@ ...@@ -28,8 +28,6 @@
#import <Cocoa/Cocoa.h> #import <Cocoa/Cocoa.h>
#import <JavaNativeFoundation/JavaNativeFoundation.h> #import <JavaNativeFoundation/JavaNativeFoundation.h>
#import <CoreServices/CoreServices.h>
#import <AudioToolbox/AudioToolbox.h>
#define DEBUG 1 #define DEBUG 1
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#import <JavaNativeFoundation/JavaNativeFoundation.h> #import <JavaNativeFoundation/JavaNativeFoundation.h>
#import <JavaRuntimeSupport/JavaRuntimeSupport.h> #import <JavaRuntimeSupport/JavaRuntimeSupport.h>
#import "jni_util.h"
#import "NSApplicationAWT.h" #import "NSApplicationAWT.h"
#import "PropertiesUtilities.h" #import "PropertiesUtilities.h"
#import "ThreadUtilities.h" #import "ThreadUtilities.h"
...@@ -436,8 +437,11 @@ JNF_COCOA_ENTER(env); ...@@ -436,8 +437,11 @@ JNF_COCOA_ENTER(env);
} }
JNIEnv* env = [ThreadUtilities getJNIEnvUncached]; JNIEnv* env = [ThreadUtilities getJNIEnvUncached];
jclass jc_ThreadGroupUtils = (*env)->FindClass(env, "sun/misc/ThreadGroupUtils"); jclass jc_ThreadGroupUtils = (*env)->FindClass(env, "sun/misc/ThreadGroupUtils");
CHECK_NULL_RETURN(jc_ThreadGroupUtils, JNI_VERSION_1_4);
jmethodID sjm_getRootThreadGroup = (*env)->GetStaticMethodID(env, jc_ThreadGroupUtils, "getRootThreadGroup", "()Ljava/lang/ThreadGroup;"); jmethodID sjm_getRootThreadGroup = (*env)->GetStaticMethodID(env, jc_ThreadGroupUtils, "getRootThreadGroup", "()Ljava/lang/ThreadGroup;");
CHECK_NULL_RETURN(sjm_getRootThreadGroup, JNI_VERSION_1_4);
jobject rootThreadGroup = (*env)->CallStaticObjectMethod(env, jc_ThreadGroupUtils, sjm_getRootThreadGroup); jobject rootThreadGroup = (*env)->CallStaticObjectMethod(env, jc_ThreadGroupUtils, sjm_getRootThreadGroup);
CHECK_NULL_RETURN(rootThreadGroup, JNI_VERSION_1_4);
[ThreadUtilities setAppkitThreadGroup:(*env)->NewGlobalRef(env, rootThreadGroup)]; [ThreadUtilities setAppkitThreadGroup:(*env)->NewGlobalRef(env, rootThreadGroup)];
// The current thread was attached in getJNIEnvUnchached. // The current thread was attached in getJNIEnvUnchached.
// Detach it back. It will be reattached later if needed with a proper TG // Detach it back. It will be reattached later if needed with a proper TG
......
...@@ -126,12 +126,30 @@ done: ...@@ -126,12 +126,30 @@ done:
return buf; return buf;
} }
BOOL isSWTRunning() {
char envVar[80];
// If this property is present we are running SWT
snprintf(envVar, sizeof(envVar), "JAVA_STARTED_ON_FIRST_THREAD_%d", getpid());
return getenv(envVar) != NULL;
}
char* SplashGetScaledImageName(const char* jar, const char* file, char* SplashGetScaledImageName(const char* jar, const char* file,
float *scaleFactor) { float *scaleFactor) {
NSAutoreleasePool *pool = [NSAutoreleasePool new];
*scaleFactor = 1; *scaleFactor = 1;
if(isSWTRunning()){
return nil;
}
NSAutoreleasePool *pool = [NSAutoreleasePool new];
char* scaledFile = nil; char* scaledFile = nil;
float screenScaleFactor = 1; __block float screenScaleFactor = 1;
[ThreadUtilities performOnMainThreadWaiting:YES block:^(){
// initialize NSApplication and AWT stuff
[NSApplicationAWT sharedApplication];
screenScaleFactor = [SplashNSScreen() backingScaleFactor];
}];
if (screenScaleFactor > 1) { if (screenScaleFactor > 1) {
NSString *fileName = [NSString stringWithUTF8String: file]; NSString *fileName = [NSString stringWithUTF8String: file];
...@@ -176,9 +194,12 @@ SplashInitPlatform(Splash * splash) { ...@@ -176,9 +194,12 @@ SplashInitPlatform(Splash * splash) {
splash->screenFormat.byteOrder = 1 ? BYTE_ORDER_LSBFIRST : BYTE_ORDER_MSBFIRST; splash->screenFormat.byteOrder = 1 ? BYTE_ORDER_LSBFIRST : BYTE_ORDER_MSBFIRST;
splash->screenFormat.depthBytes = 4; splash->screenFormat.depthBytes = 4;
[JNFRunLoop performOnMainThreadWaiting:NO withBlock:^() { // If we are running SWT we should not start a runLoop
[NSApplicationAWT runAWTLoopWithApp:[NSApplicationAWT sharedApplication]]; if (!isSWTRunning()) {
}]; [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^() {
[NSApplicationAWT runAWTLoopWithApp:[NSApplicationAWT sharedApplication]];
}];
}
} }
void void
......
/* /*
* Copyright (c) 2008, 2013 Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
......
...@@ -38,7 +38,17 @@ import static com.sun.crypto.provider.AESConstants.AES_BLOCK_SIZE; ...@@ -38,7 +38,17 @@ import static com.sun.crypto.provider.AESConstants.AES_BLOCK_SIZE;
* under section 6.5. It needs to be constructed w/ an initialized * under section 6.5. It needs to be constructed w/ an initialized
* cipher object, and initial counter block(ICB). Given an input X * cipher object, and initial counter block(ICB). Given an input X
* of arbitrary length, it processes and returns an output which has * of arbitrary length, it processes and returns an output which has
* the same length as X. * the same length as X. The invariants of this class are:
*
* (1) The length of intialCounterBlk (and also of its clones, e.g.,
* fields counter and counterSave) is equal to AES_BLOCK_SIZE.
*
* (2) After construction, the field counter never becomes null, it
* always contains a byte array of length AES_BLOCK_SIZE.
*
* If any invariant is broken, failures can occur because the
* AESCrypt.encryptBlock method can be intrinsified on the HotSpot VM
* (see JDK-8067648 for details).
* *
* <p>This function is used in the implementation of GCM mode. * <p>This function is used in the implementation of GCM mode.
* *
...@@ -59,6 +69,10 @@ final class GCTR { ...@@ -59,6 +69,10 @@ final class GCTR {
// NOTE: cipher should already be initialized // NOTE: cipher should already be initialized
GCTR(SymmetricCipher cipher, byte[] initialCounterBlk) { GCTR(SymmetricCipher cipher, byte[] initialCounterBlk) {
this.aes = cipher; this.aes = cipher;
if (initialCounterBlk.length != AES_BLOCK_SIZE) {
throw new RuntimeException("length of initial counter block (" + initialCounterBlk.length +
") not equal to AES_BLOCK_SIZE (" + AES_BLOCK_SIZE + ")");
}
this.icb = initialCounterBlk; this.icb = initialCounterBlk;
this.counter = icb.clone(); this.counter = icb.clone();
} }
...@@ -137,6 +151,8 @@ final class GCTR { ...@@ -137,6 +151,8 @@ final class GCTR {
* Restores the content of this object to the previous saved one. * Restores the content of this object to the previous saved one.
*/ */
void restore() { void restore() {
this.counter = this.counterSave; if (this.counterSave != null) {
this.counter = this.counterSave;
}
} }
} }
/* /*
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -28,9 +29,7 @@ ...@@ -28,9 +29,7 @@
package com.sun.crypto.provider; package com.sun.crypto.provider;
import java.util.Arrays; import java.security.ProviderException;
import java.security.*;
import static com.sun.crypto.provider.AESConstants.AES_BLOCK_SIZE;
/** /**
* This class represents the GHASH function defined in NIST 800-38D * This class represents the GHASH function defined in NIST 800-38D
...@@ -44,62 +43,90 @@ import static com.sun.crypto.provider.AESConstants.AES_BLOCK_SIZE; ...@@ -44,62 +43,90 @@ import static com.sun.crypto.provider.AESConstants.AES_BLOCK_SIZE;
*/ */
final class GHASH { final class GHASH {
private static final byte P128 = (byte) 0xe1; //reduction polynomial private static long getLong(byte[] buffer, int offset) {
long result = 0;
private static boolean getBit(byte[] b, int pos) { int end = offset + 8;
int p = pos / 8; for (int i = offset; i < end; ++i) {
pos %= 8; result = (result << 8) + (buffer[i] & 0xFF);
int i = (b[p] >>> (7 - pos)) & 1; }
return i != 0; return result;
} }
private static void shift(byte[] b) { private static void putLong(byte[] buffer, int offset, long value) {
byte temp, temp2; int end = offset + 8;
temp2 = 0; for (int i = end - 1; i >= offset; --i) {
for (int i = 0; i < b.length; i++) { buffer[i] = (byte) value;
temp = (byte) ((b[i] & 0x01) << 7); value >>= 8;
b[i] = (byte) ((b[i] & 0xff) >>> 1);
b[i] = (byte) (b[i] | temp2);
temp2 = temp;
} }
} }
// Given block X and Y, returns the muliplication of X * Y private static final int AES_BLOCK_SIZE = 16;
private static byte[] blockMult(byte[] x, byte[] y) {
if (x.length != AES_BLOCK_SIZE || y.length != AES_BLOCK_SIZE) { // Multiplies state0, state1 by V0, V1.
throw new RuntimeException("illegal input sizes"); private void blockMult(long V0, long V1) {
long Z0 = 0;
long Z1 = 0;
long X;
// Separate loops for processing state0 and state1.
X = state0;
for (int i = 0; i < 64; i++) {
// Zi+1 = Zi if bit i of x is 0
long mask = X >> 63;
Z0 ^= V0 & mask;
Z1 ^= V1 & mask;
// Save mask for conditional reduction below.
mask = (V1 << 63) >> 63;
// V = rightshift(V)
long carry = V0 & 1;
V0 = V0 >>> 1;
V1 = (V1 >>> 1) | (carry << 63);
// Conditional reduction modulo P128.
V0 ^= 0xe100000000000000L & mask;
X <<= 1;
} }
byte[] z = new byte[AES_BLOCK_SIZE];
byte[] v = y.clone(); X = state1;
// calculate Z1-Z127 and V1-V127 for (int i = 64; i < 127; i++) {
for (int i = 0; i < 127; i++) {
// Zi+1 = Zi if bit i of x is 0 // Zi+1 = Zi if bit i of x is 0
if (getBit(x, i)) { long mask = X >> 63;
for (int n = 0; n < z.length; n++) { Z0 ^= V0 & mask;
z[n] ^= v[n]; Z1 ^= V1 & mask;
}
} // Save mask for conditional reduction below.
boolean lastBitOfV = getBit(v, 127); mask = (V1 << 63) >> 63;
shift(v);
if (lastBitOfV) v[0] ^= P128; // V = rightshift(V)
long carry = V0 & 1;
V0 = V0 >>> 1;
V1 = (V1 >>> 1) | (carry << 63);
// Conditional reduction.
V0 ^= 0xe100000000000000L & mask;
X <<= 1;
} }
// calculate Z128 // calculate Z128
if (getBit(x, 127)) { long mask = X >> 63;
for (int n = 0; n < z.length; n++) { Z0 ^= V0 & mask;
z[n] ^= v[n]; Z1 ^= V1 & mask;
}
} // Save result.
return z; state0 = Z0;
state1 = Z1;
} }
// hash subkey H; should not change after the object has been constructed // hash subkey H; should not change after the object has been constructed
private final byte[] subkeyH; private final long subkeyH0, subkeyH1;
// buffer for storing hash // buffer for storing hash
private byte[] state; private long state0, state1;
// variables for save/restore calls // variables for save/restore calls
private byte[] stateSave = null; private long stateSave0, stateSave1;
/** /**
* Initializes the cipher in the specified mode with the given key * Initializes the cipher in the specified mode with the given key
...@@ -114,8 +141,8 @@ final class GHASH { ...@@ -114,8 +141,8 @@ final class GHASH {
if ((subkeyH == null) || subkeyH.length != AES_BLOCK_SIZE) { if ((subkeyH == null) || subkeyH.length != AES_BLOCK_SIZE) {
throw new ProviderException("Internal error"); throw new ProviderException("Internal error");
} }
this.subkeyH = subkeyH; this.subkeyH0 = getLong(subkeyH, 0);
this.state = new byte[AES_BLOCK_SIZE]; this.subkeyH1 = getLong(subkeyH, 8);
} }
/** /**
...@@ -124,31 +151,33 @@ final class GHASH { ...@@ -124,31 +151,33 @@ final class GHASH {
* this object for different data w/ the same H. * this object for different data w/ the same H.
*/ */
void reset() { void reset() {
Arrays.fill(state, (byte) 0); state0 = 0;
state1 = 0;
} }
/** /**
* Save the current snapshot of this GHASH object. * Save the current snapshot of this GHASH object.
*/ */
void save() { void save() {
stateSave = state.clone(); stateSave0 = state0;
stateSave1 = state1;
} }
/** /**
* Restores this object using the saved snapshot. * Restores this object using the saved snapshot.
*/ */
void restore() { void restore() {
state = stateSave; state0 = stateSave0;
state1 = stateSave1;
} }
private void processBlock(byte[] data, int ofs) { private void processBlock(byte[] data, int ofs) {
if (data.length - ofs < AES_BLOCK_SIZE) { if (data.length - ofs < AES_BLOCK_SIZE) {
throw new RuntimeException("need complete block"); throw new RuntimeException("need complete block");
} }
for (int n = 0; n < state.length; n++) { state0 ^= getLong(data, ofs);
state[n] ^= data[ofs + n]; state1 ^= getLong(data, ofs + 8);
} blockMult(subkeyH0, subkeyH1);
state = blockMult(state, subkeyH);
} }
void update(byte[] in) { void update(byte[] in) {
...@@ -169,10 +198,10 @@ final class GHASH { ...@@ -169,10 +198,10 @@ final class GHASH {
} }
byte[] digest() { byte[] digest() {
try { byte[] result = new byte[AES_BLOCK_SIZE];
return state.clone(); putLong(result, 0, state0);
} finally { putLong(result, 8, state1);
reset(); reset();
} return result;
} }
} }
/* /*
* Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -107,7 +107,7 @@ public final class JceKeyStore extends KeyStoreSpi { ...@@ -107,7 +107,7 @@ public final class JceKeyStore extends KeyStoreSpi {
{ {
Key key = null; Key key = null;
Object entry = entries.get(alias.toLowerCase()); Object entry = entries.get(alias.toLowerCase(Locale.ENGLISH));
if (!((entry instanceof PrivateKeyEntry) || if (!((entry instanceof PrivateKeyEntry) ||
(entry instanceof SecretKeyEntry))) { (entry instanceof SecretKeyEntry))) {
...@@ -150,7 +150,7 @@ public final class JceKeyStore extends KeyStoreSpi { ...@@ -150,7 +150,7 @@ public final class JceKeyStore extends KeyStoreSpi {
{ {
Certificate[] chain = null; Certificate[] chain = null;
Object entry = entries.get(alias.toLowerCase()); Object entry = entries.get(alias.toLowerCase(Locale.ENGLISH));
if ((entry instanceof PrivateKeyEntry) if ((entry instanceof PrivateKeyEntry)
&& (((PrivateKeyEntry)entry).chain != null)) { && (((PrivateKeyEntry)entry).chain != null)) {
...@@ -178,7 +178,7 @@ public final class JceKeyStore extends KeyStoreSpi { ...@@ -178,7 +178,7 @@ public final class JceKeyStore extends KeyStoreSpi {
public Certificate engineGetCertificate(String alias) { public Certificate engineGetCertificate(String alias) {
Certificate cert = null; Certificate cert = null;
Object entry = entries.get(alias.toLowerCase()); Object entry = entries.get(alias.toLowerCase(Locale.ENGLISH));
if (entry != null) { if (entry != null) {
if (entry instanceof TrustedCertEntry) { if (entry instanceof TrustedCertEntry) {
...@@ -203,7 +203,7 @@ public final class JceKeyStore extends KeyStoreSpi { ...@@ -203,7 +203,7 @@ public final class JceKeyStore extends KeyStoreSpi {
public Date engineGetCreationDate(String alias) { public Date engineGetCreationDate(String alias) {
Date date = null; Date date = null;
Object entry = entries.get(alias.toLowerCase()); Object entry = entries.get(alias.toLowerCase(Locale.ENGLISH));
if (entry != null) { if (entry != null) {
// We have to create a new instance of java.util.Date because // We have to create a new instance of java.util.Date because
...@@ -266,7 +266,7 @@ public final class JceKeyStore extends KeyStoreSpi { ...@@ -266,7 +266,7 @@ public final class JceKeyStore extends KeyStoreSpi {
} }
// store the entry // store the entry
entries.put(alias.toLowerCase(), entry); entries.put(alias.toLowerCase(Locale.ENGLISH), entry);
} else { } else {
SecretKeyEntry entry = new SecretKeyEntry(); SecretKeyEntry entry = new SecretKeyEntry();
...@@ -274,7 +274,7 @@ public final class JceKeyStore extends KeyStoreSpi { ...@@ -274,7 +274,7 @@ public final class JceKeyStore extends KeyStoreSpi {
// seal and store the key // seal and store the key
entry.sealedKey = keyProtector.seal(key); entry.sealedKey = keyProtector.seal(key);
entries.put(alias.toLowerCase(), entry); entries.put(alias.toLowerCase(Locale.ENGLISH), entry);
} }
} catch (Exception e) { } catch (Exception e) {
...@@ -322,7 +322,7 @@ public final class JceKeyStore extends KeyStoreSpi { ...@@ -322,7 +322,7 @@ public final class JceKeyStore extends KeyStoreSpi {
entry.chain = null; entry.chain = null;
} }
entries.put(alias.toLowerCase(), entry); entries.put(alias.toLowerCase(Locale.ENGLISH), entry);
} }
} }
...@@ -345,7 +345,7 @@ public final class JceKeyStore extends KeyStoreSpi { ...@@ -345,7 +345,7 @@ public final class JceKeyStore extends KeyStoreSpi {
{ {
synchronized(entries) { synchronized(entries) {
Object entry = entries.get(alias.toLowerCase()); Object entry = entries.get(alias.toLowerCase(Locale.ENGLISH));
if (entry != null) { if (entry != null) {
if (entry instanceof PrivateKeyEntry) { if (entry instanceof PrivateKeyEntry) {
throw new KeyStoreException("Cannot overwrite own " throw new KeyStoreException("Cannot overwrite own "
...@@ -358,7 +358,7 @@ public final class JceKeyStore extends KeyStoreSpi { ...@@ -358,7 +358,7 @@ public final class JceKeyStore extends KeyStoreSpi {
TrustedCertEntry trustedCertEntry = new TrustedCertEntry(); TrustedCertEntry trustedCertEntry = new TrustedCertEntry();
trustedCertEntry.cert = cert; trustedCertEntry.cert = cert;
trustedCertEntry.date = new Date(); trustedCertEntry.date = new Date();
entries.put(alias.toLowerCase(), trustedCertEntry); entries.put(alias.toLowerCase(Locale.ENGLISH), trustedCertEntry);
} }
} }
...@@ -373,7 +373,7 @@ public final class JceKeyStore extends KeyStoreSpi { ...@@ -373,7 +373,7 @@ public final class JceKeyStore extends KeyStoreSpi {
throws KeyStoreException throws KeyStoreException
{ {
synchronized(entries) { synchronized(entries) {
entries.remove(alias.toLowerCase()); entries.remove(alias.toLowerCase(Locale.ENGLISH));
} }
} }
...@@ -394,7 +394,7 @@ public final class JceKeyStore extends KeyStoreSpi { ...@@ -394,7 +394,7 @@ public final class JceKeyStore extends KeyStoreSpi {
* @return true if the alias exists, false otherwise * @return true if the alias exists, false otherwise
*/ */
public boolean engineContainsAlias(String alias) { public boolean engineContainsAlias(String alias) {
return entries.containsKey(alias.toLowerCase()); return entries.containsKey(alias.toLowerCase(Locale.ENGLISH));
} }
/** /**
...@@ -416,7 +416,7 @@ public final class JceKeyStore extends KeyStoreSpi { ...@@ -416,7 +416,7 @@ public final class JceKeyStore extends KeyStoreSpi {
public boolean engineIsKeyEntry(String alias) { public boolean engineIsKeyEntry(String alias) {
boolean isKey = false; boolean isKey = false;
Object entry = entries.get(alias.toLowerCase()); Object entry = entries.get(alias.toLowerCase(Locale.ENGLISH));
if ((entry instanceof PrivateKeyEntry) if ((entry instanceof PrivateKeyEntry)
|| (entry instanceof SecretKeyEntry)) { || (entry instanceof SecretKeyEntry)) {
isKey = true; isKey = true;
...@@ -434,7 +434,7 @@ public final class JceKeyStore extends KeyStoreSpi { ...@@ -434,7 +434,7 @@ public final class JceKeyStore extends KeyStoreSpi {
*/ */
public boolean engineIsCertificateEntry(String alias) { public boolean engineIsCertificateEntry(String alias) {
boolean isCert = false; boolean isCert = false;
Object entry = entries.get(alias.toLowerCase()); Object entry = entries.get(alias.toLowerCase(Locale.ENGLISH));
if (entry instanceof TrustedCertEntry) { if (entry instanceof TrustedCertEntry) {
isCert = true; isCert = true;
} }
......
...@@ -28,6 +28,7 @@ package com.sun.crypto.provider; ...@@ -28,6 +28,7 @@ package com.sun.crypto.provider;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.KeyRep; import java.security.KeyRep;
import java.security.spec.InvalidKeySpecException; import java.security.spec.InvalidKeySpecException;
import java.util.Locale;
import javax.crypto.SecretKey; import javax.crypto.SecretKey;
import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.PBEKeySpec;
...@@ -92,7 +93,7 @@ final class PBEKey implements SecretKey { ...@@ -92,7 +93,7 @@ final class PBEKey implements SecretKey {
for (int i = 1; i < this.key.length; i++) { for (int i = 1; i < this.key.length; i++) {
retval += this.key[i] * i; retval += this.key[i] * i;
} }
return(retval ^= getAlgorithm().toLowerCase().hashCode()); return(retval ^= getAlgorithm().toLowerCase(Locale.ENGLISH).hashCode());
} }
public boolean equals(Object obj) { public boolean equals(Object obj) {
......
/* /*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -32,6 +32,7 @@ import javax.crypto.SecretKey; ...@@ -32,6 +32,7 @@ import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactorySpi; import javax.crypto.SecretKeyFactorySpi;
import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.PBEKeySpec;
import java.util.HashSet; import java.util.HashSet;
import java.util.Locale;
/** /**
* This class implements a key factory for PBE keys according to PKCS#5, * This class implements a key factory for PBE keys according to PKCS#5,
...@@ -56,24 +57,24 @@ abstract class PBEKeyFactory extends SecretKeyFactorySpi { ...@@ -56,24 +57,24 @@ abstract class PBEKeyFactory extends SecretKeyFactorySpi {
static { static {
validTypes = new HashSet<String>(17); validTypes = new HashSet<String>(17);
validTypes.add("PBEWithMD5AndDES".toUpperCase()); validTypes.add("PBEWithMD5AndDES".toUpperCase(Locale.ENGLISH));
validTypes.add("PBEWithSHA1AndDESede".toUpperCase()); validTypes.add("PBEWithSHA1AndDESede".toUpperCase(Locale.ENGLISH));
validTypes.add("PBEWithSHA1AndRC2_40".toUpperCase()); validTypes.add("PBEWithSHA1AndRC2_40".toUpperCase(Locale.ENGLISH));
validTypes.add("PBEWithSHA1AndRC2_128".toUpperCase()); validTypes.add("PBEWithSHA1AndRC2_128".toUpperCase(Locale.ENGLISH));
validTypes.add("PBEWithSHA1AndRC4_40".toUpperCase()); validTypes.add("PBEWithSHA1AndRC4_40".toUpperCase(Locale.ENGLISH));
validTypes.add("PBEWithSHA1AndRC4_128".toUpperCase()); validTypes.add("PBEWithSHA1AndRC4_128".toUpperCase(Locale.ENGLISH));
// Proprietary algorithm. // Proprietary algorithm.
validTypes.add("PBEWithMD5AndTripleDES".toUpperCase()); validTypes.add("PBEWithMD5AndTripleDES".toUpperCase(Locale.ENGLISH));
validTypes.add("PBEWithHmacSHA1AndAES_128".toUpperCase()); validTypes.add("PBEWithHmacSHA1AndAES_128".toUpperCase(Locale.ENGLISH));
validTypes.add("PBEWithHmacSHA224AndAES_128".toUpperCase()); validTypes.add("PBEWithHmacSHA224AndAES_128".toUpperCase(Locale.ENGLISH));
validTypes.add("PBEWithHmacSHA256AndAES_128".toUpperCase()); validTypes.add("PBEWithHmacSHA256AndAES_128".toUpperCase(Locale.ENGLISH));
validTypes.add("PBEWithHmacSHA384AndAES_128".toUpperCase()); validTypes.add("PBEWithHmacSHA384AndAES_128".toUpperCase(Locale.ENGLISH));
validTypes.add("PBEWithHmacSHA512AndAES_128".toUpperCase()); validTypes.add("PBEWithHmacSHA512AndAES_128".toUpperCase(Locale.ENGLISH));
validTypes.add("PBEWithHmacSHA1AndAES_256".toUpperCase()); validTypes.add("PBEWithHmacSHA1AndAES_256".toUpperCase(Locale.ENGLISH));
validTypes.add("PBEWithHmacSHA224AndAES_256".toUpperCase()); validTypes.add("PBEWithHmacSHA224AndAES_256".toUpperCase(Locale.ENGLISH));
validTypes.add("PBEWithHmacSHA256AndAES_256".toUpperCase()); validTypes.add("PBEWithHmacSHA256AndAES_256".toUpperCase(Locale.ENGLISH));
validTypes.add("PBEWithHmacSHA384AndAES_256".toUpperCase()); validTypes.add("PBEWithHmacSHA384AndAES_256".toUpperCase(Locale.ENGLISH));
validTypes.add("PBEWithHmacSHA512AndAES_256".toUpperCase()); validTypes.add("PBEWithHmacSHA512AndAES_256".toUpperCase(Locale.ENGLISH));
} }
public static final class PBEWithMD5AndDES public static final class PBEWithMD5AndDES
...@@ -237,7 +238,7 @@ abstract class PBEKeyFactory extends SecretKeyFactorySpi { ...@@ -237,7 +238,7 @@ abstract class PBEKeyFactory extends SecretKeyFactorySpi {
protected KeySpec engineGetKeySpec(SecretKey key, Class<?> keySpecCl) protected KeySpec engineGetKeySpec(SecretKey key, Class<?> keySpecCl)
throws InvalidKeySpecException { throws InvalidKeySpecException {
if ((key instanceof SecretKey) if ((key instanceof SecretKey)
&& (validTypes.contains(key.getAlgorithm().toUpperCase())) && (validTypes.contains(key.getAlgorithm().toUpperCase(Locale.ENGLISH)))
&& (key.getFormat().equalsIgnoreCase("RAW"))) { && (key.getFormat().equalsIgnoreCase("RAW"))) {
// Check if requested key spec is amongst the valid ones // Check if requested key spec is amongst the valid ones
...@@ -279,7 +280,7 @@ abstract class PBEKeyFactory extends SecretKeyFactorySpi { ...@@ -279,7 +280,7 @@ abstract class PBEKeyFactory extends SecretKeyFactorySpi {
{ {
try { try {
if ((key != null) && if ((key != null) &&
(validTypes.contains(key.getAlgorithm().toUpperCase())) && (validTypes.contains(key.getAlgorithm().toUpperCase(Locale.ENGLISH))) &&
(key.getFormat().equalsIgnoreCase("RAW"))) { (key.getFormat().equalsIgnoreCase("RAW"))) {
// Check if key originates from this factory // Check if key originates from this factory
......
...@@ -31,6 +31,7 @@ import java.nio.CharBuffer; ...@@ -31,6 +31,7 @@ import java.nio.CharBuffer;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.util.Arrays; import java.util.Arrays;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.util.Locale;
import java.security.KeyRep; import java.security.KeyRep;
import java.security.GeneralSecurityException; import java.security.GeneralSecurityException;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
...@@ -144,7 +145,7 @@ final class PBKDF2KeyImpl implements javax.crypto.interfaces.PBEKey { ...@@ -144,7 +145,7 @@ final class PBKDF2KeyImpl implements javax.crypto.interfaces.PBEKey {
@Override @Override
public int hashCode() { public int hashCode() {
return Arrays.hashCode(password) * 41 + return Arrays.hashCode(password) * 41 +
prf.getAlgorithm().toLowerCase().hashCode(); prf.getAlgorithm().toLowerCase(Locale.ENGLISH).hashCode();
} }
@Override @Override
public boolean equals(Object obj) { public boolean equals(Object obj) {
...@@ -222,7 +223,7 @@ final class PBKDF2KeyImpl implements javax.crypto.interfaces.PBEKey { ...@@ -222,7 +223,7 @@ final class PBKDF2KeyImpl implements javax.crypto.interfaces.PBEKey {
for (int i = 1; i < this.key.length; i++) { for (int i = 1; i < this.key.length; i++) {
retval += this.key[i] * i; retval += this.key[i] * i;
} }
return(retval ^= getAlgorithm().toLowerCase().hashCode()); return(retval ^= getAlgorithm().toLowerCase(Locale.ENGLISH).hashCode());
} }
public boolean equals(Object obj) { public boolean equals(Object obj) {
......
/* /*
* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -43,8 +43,6 @@ import org.w3c.dom.Node; ...@@ -43,8 +43,6 @@ import org.w3c.dom.Node;
import java.awt.image.Raster; import java.awt.image.Raster;
import java.awt.image.WritableRaster; import java.awt.image.WritableRaster;
import java.awt.image.SampleModel;
import java.awt.image.DataBuffer;
import java.awt.image.DataBufferByte; import java.awt.image.DataBufferByte;
import java.awt.image.ColorModel; import java.awt.image.ColorModel;
import java.awt.image.IndexColorModel; import java.awt.image.IndexColorModel;
...@@ -1048,7 +1046,13 @@ public class JPEGImageWriter extends ImageWriter { ...@@ -1048,7 +1046,13 @@ public class JPEGImageWriter extends ImageWriter {
// Call the writer, who will call back for every scanline // Call the writer, who will call back for every scanline
processImageStarted(currentImage); clearAbortRequest();
cbLock.lock();
try {
processImageStarted(currentImage);
} finally {
cbLock.unlock();
}
boolean aborted = false; boolean aborted = false;
...@@ -1100,6 +1104,11 @@ public class JPEGImageWriter extends ImageWriter { ...@@ -1100,6 +1104,11 @@ public class JPEGImageWriter extends ImageWriter {
currentImage++; // After a successful write currentImage++; // After a successful write
} }
@Override
public boolean canWriteSequence() {
return true;
}
public void prepareWriteSequence(IIOMetadata streamMetadata) public void prepareWriteSequence(IIOMetadata streamMetadata)
throws IOException { throws IOException {
setThreadLock(); setThreadLock();
...@@ -1225,6 +1234,23 @@ public class JPEGImageWriter extends ImageWriter { ...@@ -1225,6 +1234,23 @@ public class JPEGImageWriter extends ImageWriter {
} }
} }
@Override
protected synchronized void clearAbortRequest() {
setThreadLock();
try {
cbLock.check();
if (abortRequested()) {
super.clearAbortRequest();
// reset C structures
resetWriter(structPointer);
// reset the native destination
setDest(structPointer);
}
} finally {
clearThreadLock();
}
}
private void resetInternalState() { private void resetInternalState() {
// reset C structures // reset C structures
resetWriter(structPointer); resetWriter(structPointer);
......
/*
* Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package com.sun.java.accessibility.util;
import java.util.*;
import java.beans.*;
import java.awt.*;
import java.awt.event.*;
import javax.accessibility.*;
/**
* <P>The {@code AccessibilityListenerList} is a copy of the Swing
* {@link javax.swing.event.EventListenerList EventListerList} class.
*
*/
@jdk.Exported
public class AccessibilityListenerList {
/* A null array to be shared by all empty listener lists */
private final static Object[] NULL_ARRAY = new Object[0];
/**
* The list of listener type, listener pairs
*/
protected transient Object[] listenerList = NULL_ARRAY;
/**
* Passes back the event listener list as an array of listener type, listener pairs.
* Note that for performance reasons, this implementation passes back the actual
* data structure in which the listener data is stored internally. This method
* is guaranteed to pass back a non-null array, so that no null-checking
* is required in fire methods. A zero-length array of Object is returned if
* there are currently no listeners.
* <p>
* Absolutely no modification of the data contained in this array should be
* made. If any such manipulation is necessary, it should be done on a copy
* of the array returned rather than the array itself.
*
* @return an array of listener type, listener pairs.
*/
public Object[] getListenerList() {
return listenerList;
}
/**
* Returns the total number of listeners for this listener list.
*
* @return the total number of listeners for this listener list.
*/
public int getListenerCount() {
return listenerList.length/2;
}
/**
* Return the total number of listeners of the supplied type
* for this listener list.
*
* @param t the type of the listener to be counted
* @return the number of listeners found
*/
public int getListenerCount(Class t) {
int count = 0;
Object[] lList = listenerList;
for (int i = 0; i < lList.length; i+=2) {
if (t == (Class)lList[i])
count++;
}
return count;
}
/**
* Add the listener as a listener of the specified type.
*
* @param t the type of the listener to be added
* @param l the listener to be added
*/
public synchronized void add(Class t, EventListener l) {
if (!t.isInstance(l)) {
throw new IllegalArgumentException("Listener " + l +
" is not of type " + t);
}
if (l ==null) {
throw new IllegalArgumentException("Listener " + l +
" is null");
}
if (listenerList == NULL_ARRAY) {
// if this is the first listener added,
// initialize the lists
listenerList = new Object[] { t, l };
} else {
// Otherwise copy the array and add the new listener
int i = listenerList.length;
Object[] tmp = new Object[i+2];
System.arraycopy(listenerList, 0, tmp, 0, i);
tmp[i] = t;
tmp[i+1] = l;
listenerList = tmp;
}
}
/**
* Remove the listener as a listener of the specified type.
*
* @param t the type of the listener to be removed
* @param l the listener to be removed
*/
public synchronized void remove(Class t, EventListener l) {
if (!t.isInstance(l)) {
throw new IllegalArgumentException("Listener " + l +
" is not of type " + t);
}
if (l ==null) {
throw new IllegalArgumentException("Listener " + l +
" is null");
}
// Is l on the list?
int index = -1;
for (int i = listenerList.length-2; i>=0; i-=2) {
if ((listenerList[i]==t) && (listenerList[i+1] == l)) {
index = i;
break;
}
}
// If so, remove it
if (index != -1) {
Object[] tmp = new Object[listenerList.length-2];
// Copy the list up to index
System.arraycopy(listenerList, 0, tmp, 0, index);
// Copy from two past the index, up to
// the end of tmp (which is two elements
// shorter than the old list)
if (index < tmp.length)
System.arraycopy(listenerList, index+2, tmp, index,
tmp.length - index);
// set the listener array to the new array or null
listenerList = (tmp.length == 0) ? NULL_ARRAY : tmp;
}
}
/**
* Return a string representation of the {@code AccessibilityListenerList}.
*
* @return a string representation of the {@code AccessibilityListenerList}.
*/
public String toString() {
Object[] lList = listenerList;
String s = "EventListenerList: ";
s += lList.length/2 + " listeners: ";
for (int i = 0 ; i <= lList.length-2 ; i+=2) {
s += " type " + ((Class)lList[i]).getName();
s += " listener " + lList[i+1];
}
return s;
}
}
/*
* Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package com.sun.java.accessibility.util;
import java.awt.*;
import java.util.*;
import javax.accessibility.*;
/**
* The {@code GUIInitializedListener} interface is used by the {@link EventQueueMonitor}
* class to notify an interested party when the GUI subsystem has been
* initialized. This is necessary because assistive technologies can
* be loaded before the GUI subsystem is initialized. As a result,
* assistive technologies should check the
* {@link EventQueueMonitor#isGUIInitialized isGUIInitialized} method
* of {@code EventQueueMonitor} before creating any GUI components. If the
* return value is true, assistive technologies can create GUI components
* following the same thread restrictions as any other application. If
* the return value is false, the assistive technology should register
* a {@code GUIInitializedListener} with the {@code EventQueueMonitor} to be notified
* when the GUI subsystem is initialized.
*
* @see EventQueueMonitor
* @see EventQueueMonitor#isGUIInitialized
* @see EventQueueMonitor#addGUIInitializedListener
* @see EventQueueMonitor#removeGUIInitializedListener
*
*/
@jdk.Exported
public interface GUIInitializedListener extends EventListener {
/**
* Invoked when the GUI subsystem is initialized and it's OK for
* the assisitive technology to create instances of GUI objects.
*/
public void guiInitialized();
}
...@@ -100,7 +100,8 @@ class GTKFileChooserUI extends SynthFileChooserUI { ...@@ -100,7 +100,8 @@ class GTKFileChooserUI extends SynthFileChooserUI {
private static Dimension prefListSize = new Dimension(75, 150); private static Dimension prefListSize = new Dimension(75, 150);
private static Dimension PREF_SIZE = new Dimension(435, 360); private static Dimension PREF_SIZE = new Dimension(435, 360);
private static Dimension MIN_SIZE = new Dimension(200, 300); private static final int MIN_WIDTH = 200;
private static final int MIN_HEIGHT = 300;
private static Dimension ZERO_ACC_SIZE = new Dimension(1, 1); private static Dimension ZERO_ACC_SIZE = new Dimension(1, 1);
...@@ -1038,6 +1039,7 @@ class GTKFileChooserUI extends SynthFileChooserUI { ...@@ -1038,6 +1039,7 @@ class GTKFileChooserUI extends SynthFileChooserUI {
} }
} }
@Override
public Dimension getPreferredSize(JComponent c) { public Dimension getPreferredSize(JComponent c) {
Dimension prefSize = new Dimension(PREF_SIZE); Dimension prefSize = new Dimension(PREF_SIZE);
JComponent accessory = getFileChooser().getAccessory(); JComponent accessory = getFileChooser().getAccessory();
...@@ -1053,10 +1055,12 @@ class GTKFileChooserUI extends SynthFileChooserUI { ...@@ -1053,10 +1055,12 @@ class GTKFileChooserUI extends SynthFileChooserUI {
} }
} }
public Dimension getMinimumSize(JComponent x) { @Override
return new Dimension(MIN_SIZE); public Dimension getMinimumSize(JComponent x) {
return new Dimension(MIN_WIDTH, MIN_HEIGHT);
} }
@Override
public Dimension getMaximumSize(JComponent x) { public Dimension getMaximumSize(JComponent x) {
return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE); return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE);
} }
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册