# HG changeset patch # User trims # Date 1265401595 28800 # Node ID 415e6de72568e93d2afec34d0d9da1e91baa9a53 # Parent d15bb22d4d39261adec511f21c291dce0beed173# Parent a30062be6d9ca1d48579826f870f85974300004e Merge diff -r d15bb22d4d39 -r 415e6de72568 .hgtags --- a/.hgtags Thu Feb 04 15:50:59 2010 -0800 +++ b/.hgtags Fri Feb 05 12:26:35 2010 -0800 @@ -54,3 +54,5 @@ 1d0121b741f029dc4b828e4b36ba6fda92907dd7 jdk7-b77 4061c66ba1af1a2e27c2c839ba887407dd3ce050 jdk7-b78 e9c98378f6b9256c0595ef2985ca5899f0c0e274 jdk7-b79 +e6abd38682d237306d6c147c17538ec9e7f8e3a7 jdk7-b80 +dcc938ac40cc45f1ef454d76020b5db5d943001c jdk7-b81 diff -r d15bb22d4d39 -r 415e6de72568 .hgtags-top-repo --- a/.hgtags-top-repo Thu Feb 04 15:50:59 2010 -0800 +++ b/.hgtags-top-repo Fri Feb 05 12:26:35 2010 -0800 @@ -54,3 +54,5 @@ 1f17ca8353babb13f4908c1f87d11508232518c8 jdk7-b77 ab4ae8f4514693a9fe17ca2fec0239d8f8450d2c jdk7-b78 20aeeb51713990dbea6929a2e100a8bbf5df70d4 jdk7-b79 +a3242906c7747b5d9bcc3d118c7c3c69aa40f4b7 jdk7-b80 +8403096d1fe7ff5318df9708cfec84a3fd3e1cf9 jdk7-b81 diff -r d15bb22d4d39 -r 415e6de72568 corba/.hgtags --- a/corba/.hgtags Thu Feb 04 15:50:59 2010 -0800 +++ b/corba/.hgtags Fri Feb 05 12:26:35 2010 -0800 @@ -54,3 +54,5 @@ 6881f0383f623394b5ec73f27a5f329ff55d0467 jdk7-b77 a7f7276b48cd74d8eb1baa83fbf3d1ef4a2603c8 jdk7-b78 ec0421b5703b677e2226cf4bf7ae4eaafd8061c5 jdk7-b79 +0336e70ca0aeabc783cc01658f36cb6e27ea7934 jdk7-b80 +e08a42a2a94d97ea8eedb187a94dbff822c8fbba jdk7-b81 diff -r d15bb22d4d39 -r 415e6de72568 hotspot/.hgtags --- a/hotspot/.hgtags Thu Feb 04 15:50:59 2010 -0800 +++ b/hotspot/.hgtags Fri Feb 05 12:26:35 2010 -0800 @@ -54,3 +54,5 @@ 455105fc81d941482f8f8056afaa7aa0949c9300 jdk7-b77 e703499b4b51e3af756ae77c3d5e8b3058a14e4e jdk7-b78 a5a6adfca6ecefb5894a848debabfe442ff50e25 jdk7-b79 +3003ddd1d4330b06cb4691ae74d600d3685899eb jdk7-b80 +1f9b07674480c224828852ffe137beea36b3cab5 jdk7-b81 diff -r d15bb22d4d39 -r 415e6de72568 hotspot/make/hotspot_version --- a/hotspot/make/hotspot_version Thu Feb 04 15:50:59 2010 -0800 +++ b/hotspot/make/hotspot_version Fri Feb 05 12:26:35 2010 -0800 @@ -35,7 +35,7 @@ HS_MAJOR_VER=17 HS_MINOR_VER=0 -HS_BUILD_NUMBER=07 +HS_BUILD_NUMBER=08 JDK_MAJOR_VER=1 JDK_MINOR_VER=7 diff -r d15bb22d4d39 -r 415e6de72568 jaxp/.hgtags --- a/jaxp/.hgtags Thu Feb 04 15:50:59 2010 -0800 +++ b/jaxp/.hgtags Fri Feb 05 12:26:35 2010 -0800 @@ -54,3 +54,5 @@ bfadab8c7b1bf806a49d3e1bc19ec919717f057a jdk7-b77 7a12d3789e1b07a560fc79568b991818d617ede2 jdk7-b78 b1005c504358c18694c84e95fec16b28cdce7ae1 jdk7-b79 +9219574db5936367114b0f31469837f27d5a375a jdk7-b80 +204e59d488cdaa9eafa8cb7164ea955b5a9d4a51 jdk7-b81 diff -r d15bb22d4d39 -r 415e6de72568 jaxws/.hgtags --- a/jaxws/.hgtags Thu Feb 04 15:50:59 2010 -0800 +++ b/jaxws/.hgtags Fri Feb 05 12:26:35 2010 -0800 @@ -54,3 +54,5 @@ 5b4968c110476085225d3a71c4210fad2c1116c1 jdk7-b77 fc1c72d1dfbb17db7d46bba8db9afc39cbbb9299 jdk7-b78 c08894f5b6e594b9b12993e256b96c1b38099632 jdk7-b79 +447767dee56a0f8cb89acc8bf7be5f9be7d84e8b jdk7-b80 +f051045fe94a48fae1097f90cbd9227e6aae6b7e jdk7-b81 diff -r d15bb22d4d39 -r 415e6de72568 jdk/.hgtags --- a/jdk/.hgtags Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/.hgtags Fri Feb 05 12:26:35 2010 -0800 @@ -54,3 +54,5 @@ e6a5d095c356a547cf5b3c8885885aca5e91e09b jdk7-b77 1143e498f813b8223b5e3a696d79da7ff7c25354 jdk7-b78 918920710d65432a2d54fdf407c1524a5571c4ad jdk7-b79 +049cfaaa9a7374e3768a79969a799e8b59ad52fa jdk7-b80 +10b993d417fcdb40480dad7032ac241f4b87f1af jdk7-b81 diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/com/sun/crypto/provider/Makefile --- a/jdk/make/com/sun/crypto/provider/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/com/sun/crypto/provider/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -249,7 +249,7 @@ else $(JAR_DESTFILE): $(SIGNED_DIR)/sunjce_provider.jar endif - $(install-file) + $(install-non-module-file) ifndef OPENJDK install-prebuilt: diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/com/sun/java/pack/Makefile --- a/jdk/make/com/sun/java/pack/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/com/sun/java/pack/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../../../.. +MODULE = pack200 PACKAGE = com.sun.java.util.jar.pack LIBRARY = unpack PRODUCT = sun @@ -123,11 +124,14 @@ all: build -build: prop +build: prop pack200-tool prop: $(MAKE) -C prop +pack200-tool: + $(call make-launcher, pack200, com.sun.java.util.jar.pack.Driver, , --pack) + unpacker: $(MAKE) $(UNPACK_EXE) STANDALONE=true LDMAPFLAGS_OPT= LDMAPFLAGS_DBG= @@ -151,6 +155,7 @@ $(MT) /manifest $(TEMPDIR)/unpack200$(EXE_SUFFIX).manifest /outputresource:$(TEMPDIR)/unpack200$(EXE_SUFFIX);#1 endif $(CP) $(TEMPDIR)/unpack200$(EXE_SUFFIX) $(UNPACK_EXE) + $(install-module-file) ifeq ($(PLATFORM), windows) $(RES):: $(VERSIONINFO_RESOURCE) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/com/sun/java/pack/prop/Makefile --- a/jdk/make/com/sun/java/pack/prop/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/com/sun/java/pack/prop/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -29,6 +29,7 @@ # to a collision of rules with Classes.gmk and Library.gmk BUILDDIR = ../../../../.. +MODULE = pack200 PACKAGE = com.sun.java.util.jar.pack PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/com/sun/jndi/cosnaming/Makefile --- a/jdk/make/com/sun/jndi/cosnaming/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/com/sun/jndi/cosnaming/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../../../.. +MODULE = jndi-cosnaming PACKAGE = com.sun.jndi.cosnaming PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/com/sun/jndi/dns/Makefile --- a/jdk/make/com/sun/jndi/dns/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/com/sun/jndi/dns/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../../../.. +MODULE = jndi-dns PACKAGE = com.sun.jndi.dns PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/com/sun/jndi/ldap/Makefile --- a/jdk/make/com/sun/jndi/ldap/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/com/sun/jndi/ldap/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../../../.. +MODULE = jndi-ldap PACKAGE = com.sun.jndi.ldap PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/com/sun/jndi/rmi/registry/Makefile --- a/jdk/make/com/sun/jndi/rmi/registry/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/com/sun/jndi/rmi/registry/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../../../../.. +MODULE = jndi-rmiregistry PACKAGE = com.sun.jndi.rmi.registry PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/com/sun/nio/sctp/FILES_java.gmk --- a/jdk/make/com/sun/nio/sctp/FILES_java.gmk Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/com/sun/nio/sctp/FILES_java.gmk Fri Feb 05 12:26:35 2010 -0800 @@ -57,8 +57,7 @@ sun/nio/ch/SctpResultContainer.java \ sun/nio/ch/SctpSendFailed.java \ sun/nio/ch/SctpServerChannelImpl.java \ - sun/nio/ch/SctpShutdown.java \ - sun/nio/ch/SctpSocketDispatcher.java + sun/nio/ch/SctpShutdown.java else FILES_java += \ sun/nio/ch/SctpChannelImpl.java \ diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/com/sun/nio/sctp/Makefile --- a/jdk/make/com/sun/nio/sctp/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/com/sun/nio/sctp/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../../../.. +MODULE = sctp PACKAGE = com.sun.nio.sctp LIBRARY = sctp PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/com/sun/nio/sctp/mapfile-vers --- a/jdk/make/com/sun/nio/sctp/mapfile-vers Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/com/sun/nio/sctp/mapfile-vers Fri Feb 05 12:26:35 2010 -0800 @@ -25,9 +25,14 @@ SUNWprivate_1.1 { global: + Java_sun_nio_ch_SctpNet_init; Java_sun_nio_ch_SctpNet_socket0; Java_sun_nio_ch_SctpNet_bindx; Java_sun_nio_ch_SctpNet_branch0; + Java_sun_nio_ch_SctpNet_listen0; + Java_sun_nio_ch_SctpNet_connect0; + Java_sun_nio_ch_SctpNet_close0; + Java_sun_nio_ch_SctpNet_preClose0; Java_sun_nio_ch_SctpNet_getLocalAddresses0; Java_sun_nio_ch_SctpNet_getRemoteAddresses0; Java_sun_nio_ch_SctpNet_getPrimAddrOption0; diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/com/sun/org/apache/xml/Makefile --- a/jdk/make/com/sun/org/apache/xml/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/com/sun/org/apache/xml/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../../../../.. +MODULE = security-xmldsig PACKAGE = com.sun.org.apache.xml PRODUCT = xml include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/com/sun/rowset/Makefile --- a/jdk/make/com/sun/rowset/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/com/sun/rowset/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../../.. +MODULE = jdbc-enterprise PACKAGE = com.sun.rowset PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/com/sun/script/Makefile --- a/jdk/make/com/sun/script/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/com/sun/script/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -25,6 +25,7 @@ BUILDDIR = ../../.. +MODULE = scripting-rhino PACKAGE = com.sun.script PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/com/sun/security/auth/module/Makefile --- a/jdk/make/com/sun/security/auth/module/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/com/sun/security/auth/module/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -26,6 +26,7 @@ # Makefile for building auth modules. BUILDDIR = ../../../../.. +MODULE = security-auth PACKAGE = com.sun.security.auth.module PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/com/sun/servicetag/Makefile --- a/jdk/make/com/sun/servicetag/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/com/sun/servicetag/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -22,6 +22,7 @@ # have any questions. BUILDDIR = ../../.. +MODULE = servicetag PACKAGE = com.sun.servicetag PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk @@ -68,7 +69,7 @@ $(SERVICETAG_LIBDIR)/jdk_header.png: $(SHARE_SRC)/classes/com/sun/servicetag/resources/jdk_header.png $(install-file) - $(CHMOD) 444 $@ + $(call chmod-file, 444) install-servicetag-lib: @$(RM) -rf $(SERVICETAG_LIBDIR) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/com/sun/tools/attach/Makefile --- a/jdk/make/com/sun/tools/attach/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/com/sun/tools/attach/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -25,6 +25,7 @@ BUILDDIR = ../../../.. +MODULE = attach PACKAGE = com.sun.tools.attach LIBRARY = attach PRODUCT = sun @@ -65,6 +66,7 @@ @$(MKDIR) -p $(@D) @$(RM) $@ @$(CAT) $< | $(SED) -e "s/^#\[$(PLATFORM)\]//" > $@ + @$(install-module-file) .PHONY: copy-files diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/common/Defs.gmk --- a/jdk/make/common/Defs.gmk Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/common/Defs.gmk Fri Feb 05 12:26:35 2010 -0800 @@ -225,12 +225,6 @@ endif endif - ifeq ($(PLATFORM), windows) - FREETYPE_LIB = $(FREETYPE_LIB_PATH)/freetype.lib - else - FREETYPE_LIB = -L$(FREETYPE_LIB_PATH) -lfreetype - endif - ifdef ALT_FREETYPE_HEADERS_PATH FREETYPE_HEADERS_PATH = $(ALT_FREETYPE_HEADERS_PATH) else @@ -313,6 +307,9 @@ # for generated class files CLASSBINDIR = $(OUTPUTDIR)/classes DEMOCLASSDIR = $(OUTPUTDIR)/democlasses +# for modules +MODULES_DIR = $(OUTPUTDIR)/modules +ABS_MODULES_DIR = $(ABS_OUTPUTDIR)/modules # for generated tool class files BUILDTOOLCLASSDIR = $(OUTPUTDIR)/btclasses # for build tool jar files @@ -388,6 +385,22 @@ UNIQUE_LOCATION_STRING += /$(THREADDIR) endif +# +# Build units may or may not define MODULE. Default to "other". +# +# MODULE variable defines the lowest-level module name that +# might or might not be the name of the modules created in +# the modules build (see make/modules/modules.config and +# modules.group). +# +MODULES_TEMPDIR = $(OUTPUTDIR)/tmp/modules +ABS_MODULES_TEMPDIR = $(ABS_OUTPUTDIR)/tmp/modules + +ifndef MODULE + MODULE = other +endif +override MODULE_DEST_DIR = $(MODULES_TEMPDIR)/$(MODULE) + # the use of += above makes a space separated list which we need to # remove for filespecs. # @@ -498,6 +511,58 @@ include $(JDK_MAKE_SHARED_DIR)/Defs-java.gmk # +# Macros to find the module that $@ belongs to +# + +UNIQUE_PATH_PATTERN = $(subst /,.,$(UNIQUE_PATH)) +MODULE_PATH_PATTERN = -e 's%.*\/classes\/%classes\/%' \ + -e 's%.*\/$(UNIQUE_PATH_PATTERN)\/%classes\/%' \ + -e 's%.*\/lib\/%lib\/%' \ + -e 's%.*\/bin\/%bin\/%' \ + -e 's%.*\/include\/%include\/%' \ + -e 's%.*\/demo\/%demo\/%' \ + -e 's%.*\/sample\/%sample\/%' + +# Install a file to its module +define install-module-file +dest=`echo $(@D)/ | $(SED) $(MODULE_PATH_PATTERN)` ; \ +$(MKDIR) -p $(MODULE_DEST_DIR)/$$dest; \ +$(CP) -f $@ $(MODULE_DEST_DIR)/$$dest +endef + +# Install all files from the directory to its module +define install-module-dir +dest=`echo $(@D)/ | $(SED) $(MODULE_PATH_PATTERN)` ; \ +$(MKDIR) -p $(MODULE_DEST_DIR)/$$dest; \ +$(CP) -rf $(@D)/* $(MODULE_DEST_DIR)/$$dest +endef + +# chmod the file in its module +define chmod-module-file +dest=`echo $@ | $(SED) $(MODULE_PATH_PATTERN)` ; \ +$(CHMOD) $1 $(MODULE_DEST_DIR)/$$dest +endef + +# install a sym link in its module +define install-module-sym-link +dest=`echo $@ | $(SED) $(MODULE_PATH_PATTERN)` ; \ +$(LN) -sf $1 $(MODULE_DEST_DIR)/$$dest +endef + + +# Run MAKE $@ for a launcher: +# $(call make-launcher, name, mainclass, java-args, main-args) +define make-launcher +$(CD) $(BUILDDIR)/launchers && \ +$(MAKE) -f Makefile.launcher \ + MODULE=$(MODULE) \ + PROGRAM=$(strip $1) \ + MAIN_CLASS=$(strip $2) \ + MAIN_JAVA_ARGS="$(strip $3)" \ + MAIN_ARGS="$(strip $4)" +endef + +# # Convenient macros # @@ -511,6 +576,28 @@ define install-file $(prep-target) $(CP) $< $@ +$(install-module-file) +endef + +define chmod-file +$(CHMOD) $1 $@ +$(call chmod-module-file, $1) +endef + +define install-sym-link +$(LN) -s $1 $@ +$(call install-module-sym-link, $1) +endef + +# +# Marcos for files not belonging to any module +define install-non-module-file +$(prep-target) +$(CP) $< $@ +endef + +define install-manifest-file +$(install-non-module-file) endef # Cleanup rule for after debug java run (hotspot.log file is left around) @@ -712,7 +799,7 @@ endif # Install of imported file (JDK_IMPORT_PATH, or some other external location) -define install-import-file +define install-importonly-file @$(ECHO) "ASSEMBLY_IMPORT: $@" $(prep-target) $(CP) $< $@ @@ -730,4 +817,9 @@ fi endef +define install-import-file +$(install-importonly-file) +$(install-module-file) +endef + .PHONY: all build clean clobber diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/common/Demo.gmk --- a/jdk/make/common/Demo.gmk Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/common/Demo.gmk Fri Feb 05 12:26:35 2010 -0800 @@ -25,6 +25,8 @@ # JDK Demo building jar file. +MODULE = demos + # Some names are defined with LIBRARY inside the Defs.gmk file LIBRARY=$(DEMONAME) OBJDIR=$(TEMPDIR)/$(DEMONAME) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/common/Library.gmk --- a/jdk/make/common/Library.gmk Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/common/Library.gmk Fri Feb 05 12:26:35 2010 -0800 @@ -193,9 +193,18 @@ $(MT) /manifest $(OBJDIR)/$(@F).manifest /outputresource:$(OBJDIR)/$(@F);#2 endif $(CP) $(OBJDIR)/$(@F) $@ + $(install-module-file) $(CP) $(OBJDIR)/$(LIBRARY).map $(@D) $(CP) $(OBJDIR)/$(LIBRARY).pdb $(@D) +$(ACTUAL_LIBRARY):: $(ACTUAL_LIBRARY_DIR)/$(LIBRARY).map $(ACTUAL_LIBRARY_DIR)/$(LIBRARY).pdb + +$(ACTUAL_LIBRARY_DIR)/%.map: FORCE + $(install-module-file) + +$(ACTUAL_LIBRARY_DIR)/%.pdb: FORCE + $(install-module-file) + endif # LIBRARY $(OBJDIR)/$(LIBRARY).lcf: $(OBJDIR)/$(LIBRARY).res $(COMPILE_FILES_o) $(FILES_m) @@ -250,6 +259,7 @@ $(AR) -r $@ $(FILES_o) else # LIBRARY $(LINKER) $(SHARED_LIBRARY_FLAG) -o $@ $(FILES_o) $(LDLIBS) + $(install-module-file) ifeq ($(WRITE_LIBVERSION),true) $(MCS) -d -a "$(FULL_VERSION)" $@ endif # WRITE_LIBVERSION @@ -353,5 +363,7 @@ openjdk: $(MAKE) OPENJDK=true build +FORCE: + .PHONY: all build debug fastdebug diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/common/Modules.gmk --- a/jdk/make/common/Modules.gmk Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/common/Modules.gmk Fri Feb 05 12:26:35 2010 -0800 @@ -34,12 +34,10 @@ # # Open issues that need further investigation: # 1. Classes in jre/lib/ext/dnsns.jar are currently put in jre/lib/jndi-dns -# module. +# module. META-INF/services file is not installed. # 2. Signed jars # For JDK build, signed jars are copied to the build. # All jars in the module image are unsigned. -# 3. jre/lib/security/US_export_policy.jar and local_policy.jar -# are not included in the module image yet. MODULE_IMAGEBINDIR = bin @@ -63,7 +61,8 @@ @$(ECHO) ">>>Making "$@" @ `$(DATE)` ..." # Order is important here, trim jre after jdk image is created -modules:: sanity-module-images post-sanity-module-images \ +modules:: gen-modules \ + sanity-module-images post-sanity-module-images \ $(INITIAL_MODULE_IMAGE_JRE) $(INITIAL_MODULE_IMAGE_JDK) \ trim-module-image-jre trim-module-image-jdk \ process-module-image-jre process-module-image-jdk @@ -122,8 +121,33 @@ # JRE Image ###################################################### -MODULES_TEMPDIR=$(ABS_TEMPDIR)/modules -MODULES_LIB = $(ABS_OUTPUTDIR)/modules +MODULES_LIST = $(MODULES_TEMPDIR)/classlist/modules.list + +# Modules in the jre/lib/security directory +POLICY_MODULES = US_export_policy local_policy + +# Modules in the modules/ext directory +EXT_MODULES = localedata security-sunec security-sunjce + +# Build PKCS#11 on all platforms except 64-bit Windows. +PKCS11 = security-sunpkcs11 +ifeq ($(ARCH_DATA_MODEL), 64) + ifeq ($(PLATFORM), windows) + PKCS11 = + endif +endif + +EXT_MODULES += $(PKCS11) + +# Build Microsoft CryptoAPI provider only on (non-64-bit) Windows platform. +ifeq ($(PLATFORM), windows) + ifneq ($(ARCH_DATA_MODEL), 64) + EXT_MODULES += security-sunmscapi + endif +endif + +# Modules for JDK only +JDK_MODULES = tools gen-modules: $(CD) modules; $(MAKE) all @@ -151,7 +175,6 @@ # Construct an initial jre image (initial jdk jre) no trimming or stripping initial-module-image-jre:: initial-module-image-jre-setup \ $(JRE_LICENSES) $(JRE_MODULE_DOCFILES) \ - gen-modules \ $(BUILDMETAINDEX_JARFILE) @# Copy in bin directory $(CD) $(OUTPUTDIR) && $(FIND) bin -depth | $(CPIO) -pdum $(JRE_MODULE_IMAGE_DIR) @@ -162,7 +185,21 @@ @# @# copy modules to jre/lib @# - $(CP) -rf $(MODULES_LIB)/jre/lib/* $(JRE_MODULE_IMAGE_DIR)/lib + for m in `$(NAWK) '{print $$1}' $(MODULES_LIST)` ; do \ + $(CP) $(MODULES_DIR)/$$m/lib/$$m.jar $(JRE_MODULE_IMAGE_DIR)/lib ; \ + done + $(MKDIR) -p $(JRE_MODULE_IMAGE_DIR)/lib/ext + for m in $(EXT_MODULES) ; do \ + $(MV) $(JRE_MODULE_IMAGE_DIR)/lib/$$m.jar $(JRE_MODULE_IMAGE_DIR)/lib/ext ; \ + done + for m in $(POLICY_MODULES) ; do \ + $(MV) $(JRE_MODULE_IMAGE_DIR)/lib/$$m.jar $(JRE_MODULE_IMAGE_DIR)/lib/security; \ + done + @# Remove jdk modules + for m in $(JDK_MODULES) ; do \ + $(RM) $(JRE_MODULE_IMAGE_DIR)/lib/$$m.jar ; \ + done + @# Make sure all directories are read/execute for everyone $(CHMOD) a+rx `$(FIND) $(JRE_MODULE_IMAGE_DIR) -type d` @# Remove some files from the jre area @@ -304,7 +341,9 @@ @# copy jdk modules to jdk/lib @# $(MKDIR) -p $(JDK_MODULE_IMAGE_DIR)/lib - $(CP) -rf $(MODULES_LIB)/lib/* $(JDK_MODULE_IMAGE_DIR)/lib + for m in $(JDK_MODULES) ; do \ + $(CP) $(MODULES_DIR)/$$m/lib/$$m.jar $(JDK_MODULE_IMAGE_DIR)/lib ; \ + done ifeq ($(PLATFORM), windows) @# @# lib/ diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/common/Program.gmk --- a/jdk/make/common/Program.gmk Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/common/Program.gmk Fri Feb 05 12:26:35 2010 -0800 @@ -50,8 +50,6 @@ ACTUAL_PROGRAM_DIR = $(BINDIR) ACTUAL_PROGRAM = $(ACTUAL_PROGRAM_DIR)/$(ACTUAL_PROGRAM_NAME) -JVMCFG = $(LIBDIR)/$(LIBARCH)/jvm.cfg - # Make sure the default rule is all program_default_rule: all @@ -116,7 +114,7 @@ ifeq ($(COMPILE_IT),true) -$(ACTUAL_PROGRAM):: classes $(JVMCFG) $(INIT) +$(ACTUAL_PROGRAM):: classes $(INIT) # # Windows only @@ -190,12 +188,13 @@ @$(MKDIR) -p $(TEMPDIR) $(LINK_PRE_CMD) $(CC) $(CC_OBJECT_OUTPUT_FLAG)$@ $(LDFLAGS) \ $(FILES_o) $(THREADLIBS) $(LDLIBS) + $(install-module-file) endif # PLATFORM else # COMPILE_IT -$(ACTUAL_PROGRAM):: $(JVMCFG) +$(ACTUAL_PROGRAM):: # Copies in the file from the JDK_IMPORT_PATH area $(ACTUAL_PROGRAM_DIR)/%: $(JDK_IMPORT_PATH)/jre/bin/% @@ -272,18 +271,6 @@ $(VERSION_DEFINES) $< # -# How to install jvm.cfg. -# -ifeq ($(ZERO_BUILD), true) -JVMCFG_ARCH = zero -else -JVMCFG_ARCH = $(ARCH) -endif - -$(JVMCFG): $(LAUNCHER_PLATFORM_SRC)/bin/$(JVMCFG_ARCH)/jvm.cfg - $(install-file) - -# # Default dependencies # diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/common/internal/BinaryPlugs.gmk --- a/jdk/make/common/internal/BinaryPlugs.gmk Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/common/internal/BinaryPlugs.gmk Fri Feb 05 12:26:35 2010 -0800 @@ -116,7 +116,7 @@ define import-binary-plug-file @$(ECHO) "PLUG IMPORT: $(@F)" -$(install-file) +$(install-non-module-file) endef # import-binary-plug-file # Import classes command @@ -184,7 +184,7 @@ define export-binary-plug-file @$(ECHO) "PLUG EXPORT: $(@F)" -$(install-file) +$(install-non-module-file) endef # export-binary-plug-file # OpenJDK Binary Plug License diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/common/internal/Resources.gmk --- a/jdk/make/common/internal/Resources.gmk Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/common/internal/Resources.gmk Fri Feb 05 12:26:35 2010 -0800 @@ -139,7 +139,7 @@ STRIP_PROP_options=$(TEMPDIR)/strip_prop_options define install-properties-file $(install-file) -$(CHMOD) a+rw $@ +$(call chmod-file, a+rw) @$(ECHO) "# Adding to strip properties list: $@" $(ECHO) "$@" >> $(STRIP_PROP_options) endef diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/common/shared/Defs-java.gmk --- a/jdk/make/common/shared/Defs-java.gmk Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/common/shared/Defs-java.gmk Fri Feb 05 12:26:35 2010 -0800 @@ -138,6 +138,10 @@ # Needed for javah JAVAHFLAGS += -bootclasspath $(CLASSBINDIR) +# Needed for javadoc to ensure it builds documentation +# against the newly built classes +JAVADOCFLAGS += -bootclasspath $(CLASSBINDIR) + # Needed for JAVADOC and BOOT_JAVACFLAGS NO_PROPRIETARY_API_WARNINGS = -XDignore.symbol.file=true @@ -155,14 +159,15 @@ -jar $(JAVAH_JAR) $(JAVAHFLAGS) JAVADOC_CMD = $(BOOT_JAVA_CMD) \ "-Xbootclasspath/p:$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)$(CLASSPATH_SEPARATOR)$(DOCLETS_JAR)" \ - -jar $(JAVADOC_JAR) + -jar $(JAVADOC_JAR) $(JAVADOCFLAGS) else # If no explicit tools, use boot tools (add VM flags in this case) JAVAC_CMD = $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \ $(JAVACFLAGS) JAVAH_CMD = $(JAVA_TOOLS_DIR)/javah \ $(JAVAHFLAGS) - JAVADOC_CMD = $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%) + JAVADOC_CMD = $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%) \ + $(JAVADOCFLAGS) endif # Override of what javac to use (see deploy workspace) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/common/shared/Sanity.gmk --- a/jdk/make/common/shared/Sanity.gmk Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/common/shared/Sanity.gmk Fri Feb 05 12:26:35 2010 -0800 @@ -1117,7 +1117,7 @@ # be checked when this represents a full control build (i.e. the # HOTSPOT_IMPORT_PATH includes these files in it's 'include' directory). $(TEMPDIR)/%.h: $(SHARE_SRC)/javavm/export/%.h - @$(install-file) + @$(install-non-module-file) @$(RM) $@.IMPORT @if [ -r $(HOTSPOT_IMPORT_PATH)/include/$(@F) ]; then \ $(CP) $(HOTSPOT_IMPORT_PATH)/include/$(@F) $@.IMPORT ; \ @@ -1131,7 +1131,7 @@ fi $(TEMPDIR)/%.h: $(PLATFORM_SRC)/javavm/export/%.h - @$(install-file) + @$(install-non-module-file) @$(RM) $@.IMPORT @if [ -r $(HOTSPOT_IMPORT_PATH)/include/$(PLATFORM_INCLUDE_NAME)/$(@F) ]; then \ $(CP) $(HOTSPOT_IMPORT_PATH)/include/$(PLATFORM_INCLUDE_NAME)/$(@F) $@.IMPORT ; \ diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/docs/Makefile --- a/jdk/make/docs/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/docs/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -69,7 +69,7 @@ THIS_YEAR := $(shell $(DATE) | $(SED) -e 's/ / /g' | $(CUT) -d' ' -f6) TRADEMARK = &\#x2122; -IGNORED_TAGS = beaninfo revised since.unbundled spec Note ToDo +IGNORED_TAGS = beaninfo revised since.unbundled spec specdefault Note ToDo JLS3_URL = http://java.sun.com/docs/books/jls/ JLS3_CITE = \ diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/awt/Makefile --- a/jdk/make/java/awt/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/awt/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../.. +MODULE = awt PACKAGE = java.awt PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/fdlibm/Makefile --- a/jdk/make/java/fdlibm/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/fdlibm/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -31,6 +31,7 @@ # BUILDDIR = ../.. +MODULE = base LIBRARY = fdlibm PRODUCT = java diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/hpi/native/Makefile --- a/jdk/make/java/hpi/native/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/hpi/native/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../../.. +MODULE = base LIBRARY = hpi PRODUCT = java THREADDIR = native_threads diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/hpi/windows/Makefile --- a/jdk/make/java/hpi/windows/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/hpi/windows/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -26,8 +26,9 @@ # # Makefile for Windows HPI DLL # -BUILDDIR = ../../.. -LIBRARY = hpi +BUILDDIR = ../../.. +MODULE = base +LIBRARY = hpi PRODUCT = java THREADDIR = windows_threads LIB_LOCATION = $(BINDIR) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/instrument/Makefile --- a/jdk/make/java/instrument/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/instrument/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -27,6 +27,7 @@ # agent, supporting java.lang.instrument BUILDDIR = ../.. +MODULE = instrument PACKAGE = sun.instrument LIBRARY = instrument PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/java/Makefile --- a/jdk/make/java/java/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/java/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -29,6 +29,7 @@ # BUILDDIR = ../.. +MODULE = base PACKAGE = java.lang LIBRARY = java PRODUCT = java @@ -241,7 +242,7 @@ $(GENSRCDIR)/java/lang/UNIXProcess.java: \ $(PLATFORM_SRC)/classes/java/lang/UNIXProcess.java.$(PLATFORM) - $(install-file) + $(install-non-module-file) clean:: $(RM) $(GENSRCDIR)/java/lang/UNIXProcess.java @@ -285,7 +286,7 @@ $(TZMAP): $(TZMAPFILE) $(install-file) - $(CHMOD) 444 $@ + $(call chmod-file, 444) endif build: $(LIBDIR)/$(PROPS) $(LIBDIR)/$(CAL_PROPS) $(TZMAP) @@ -315,7 +316,8 @@ $(BOOT_JAVA_CMD) -jar $(GENERATECURRENCYDATA_JARFILE) -o $@.temp \ < $(SHARE_SRC)/classes/java/util/CurrencyData.properties $(MV) $@.temp $@ - $(CHMOD) 444 $@ + $(install-module-file) + $(call chmod-file, 444) clean:: $(RM) $(CURDATA) @@ -369,7 +371,7 @@ -usecharforbyte 11 4 1 $(GENSRCDIR)/java/lang/%.java : $(CHARACTERDATA)/%.java.template - $(install-file) + $(install-non-module-file) clean:: $(RM) $(GENSRCDIR)/java/lang/CharacterDataLatin1.java diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/java_crw_demo/Makefile --- a/jdk/make/java/java_crw_demo/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/java_crw_demo/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,8 @@ # BUILDDIR = ../.. + +MODULE = demos LIBRARY = java_crw_demo PRODUCT = sun LIBRARY_OUTPUT = java_crw_demo diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/java_hprof_demo/Makefile --- a/jdk/make/java/java_hprof_demo/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/java_hprof_demo/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../.. +MODULE = instrument LIBRARY = hprof PRODUCT = sun LIBRARY_OUTPUT = hprof_jvmti diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/jli/Makefile --- a/jdk/make/java/jli/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/jli/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -30,6 +30,7 @@ # its manifestations (java, javaw, javac, ...). # BUILDDIR = ../.. +MODULE = base LIBRARY = jli PRODUCT = java diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/jvm/Makefile --- a/jdk/make/java/jvm/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/jvm/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,8 @@ # BUILDDIR = ../.. +MODULE = base + include $(BUILDDIR)/common/Defs.gmk # @@ -36,15 +38,29 @@ $(INCLUDEDIR)/classfile_constants.h $(INCLUDEDIR)/%.h: $(SHARE_SRC)/javavm/export/%.h - $(install-file) + $(install-non-module-file) $(PLATFORM_INCLUDE)/%.h: $(PLATFORM_SRC)/javavm/export/%.h + $(install-non-module-file) + +JVMCFG = $(LIBDIR)/$(LIBARCH)/jvm.cfg + +# +# How to install jvm.cfg. +# +ifeq ($(ZERO_BUILD), true) +JVMCFG_ARCH = zero +else +JVMCFG_ARCH = $(ARCH) +endif + +$(JVMCFG): $(PLATFORM_SRC)/bin/$(JVMCFG_ARCH)/jvm.cfg $(install-file) all: build -build: $(FILES_h) +build: $(FILES_h) $(JVMCFG) clean clobber:: - $(RM) $(FILES_h) + $(RM) $(FILES_h) $(JVMCFG) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/logging/Makefile --- a/jdk/make/java/logging/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/logging/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../.. +MODULE = logging PACKAGE = java.util.logging PRODUCT = java include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/main/java/Makefile --- a/jdk/make/java/main/java/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/main/java/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../../.. +MODULE = base PROGRAM = java PRODUCT = java diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/main/javaw/Makefile --- a/jdk/make/java/main/javaw/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/main/javaw/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../../.. +MODULE = base PROGRAM = javaw PRODUCT = java diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/management/Makefile --- a/jdk/make/java/management/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/management/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../.. +MODULE = management PACKAGE = java.lang.management LIBRARY = management PRODUCT = java @@ -99,7 +100,7 @@ @$(java-vm-cleanup) $(TEMPDIR)/manifest: $(MANIFEST) - $(install-file) + $(install-manifest-file) build: $(AGENTJAR) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/net/Makefile --- a/jdk/make/java/net/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/net/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../.. +MODULE = base PACKAGE = java.net LIBRARY = net PRODUCT = sun @@ -111,8 +112,7 @@ MISC_FILES = $(LIBDIR) $(LIBDIR)/net.properties $(LIBDIR)/net.properties: $(SHARE_SRC)/lib/net.properties - @$(RM) $@ - $(CP) $< $@ + $(install-file) # # SDP configuration template diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/nio/Makefile --- a/jdk/make/java/nio/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/nio/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../.. +MODULE = nio PACKAGE = java.nio LIBRARY = nio PRODUCT = java @@ -816,7 +817,7 @@ $(NAWK) '/^.*Copyright.*Sun/ { print $$3 }') $(TEMPDIR)/$(GENSOR_SRC) : $(GENSOR_SRC) - $(install-file) + $(install-non-module-file) $(GENSOR_EXE) : $(TEMPDIR)/$(GENSOR_SRC) $(prep-target) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/npt/Makefile --- a/jdk/make/java/npt/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/npt/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,9 @@ # BUILDDIR = ../.. + +# It's currently used by jpda and hprof. Put it in base module for now. +MODULE = base LIBRARY = npt PRODUCT = sun LIBRARY_OUTPUT = npt diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/redist/FILES.gmk --- a/jdk/make/java/redist/FILES.gmk Thu Feb 04 15:50:59 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -# -# Copyright 1998-2003 Sun Microsystems, Inc. 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. Sun designates this -# particular file as subject to the "Classpath" exception as provided -# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -# CA 95054 USA or visit www.sun.com if you need additional information or -# have any questions. -# - -# -# List of lucida font files that we redistribute. -# - -SHARED_FONTFILES = \ - $(LIBDIR)/fonts/LucidaTypewriterRegular.ttf \ - $(LIBDIR)/fonts/LucidaTypewriterBold.ttf \ - $(LIBDIR)/fonts/LucidaBrightRegular.ttf \ - $(LIBDIR)/fonts/LucidaBrightDemiBold.ttf \ - $(LIBDIR)/fonts/LucidaBrightItalic.ttf \ - $(LIBDIR)/fonts/LucidaBrightDemiItalic.ttf \ - $(LIBDIR)/fonts/LucidaSansRegular.ttf \ - $(LIBDIR)/fonts/LucidaSansDemiBold.ttf \ - -ifeq ($(PLATFORM), linux) - -# The oblique versions of the font are derived from the base versions -# and since 2D can do this derivation on the fly at run time there is no -# need to redistribute the fonts. An exception to this is on Linux. -# The reason is that the Lucidas are specified in the font.properties files -# on Linux, and so AWT/Motif components expect to be able to ask the Xserver -# for these oblique fonts, but the Xserver cannot do the same derivation as -# 2D can. - -OBLIQUE_FONTFILES = \ - $(LIBDIR)/oblique-fonts/LucidaTypewriterOblique.ttf \ - $(LIBDIR)/oblique-fonts/LucidaTypewriterBoldOblique.ttf \ - $(LIBDIR)/oblique-fonts/LucidaSansOblique.ttf \ - $(LIBDIR)/oblique-fonts/LucidaSansDemiOblique.ttf \ - -endif diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/redist/Makefile --- a/jdk/make/java/redist/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/redist/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -35,6 +35,7 @@ # BUILDDIR = ../.. +MODULE = base PRODUCT = java include $(BUILDDIR)/common/Defs.gmk @@ -61,7 +62,11 @@ # Needed to do file copy ABS_BUILDDIR :=$(call FullPath,$(BUILDDIR)) -all: build +SUBDIRS = fonts sajdi +all clean clobber:: + $(SUBDIRS-loop) + +all:: build # List of files created here or coming from BUILDDIR area (this workspace) INTERNAL_IMPORT_LIST = $(LIBDIR)/classlist @@ -70,30 +75,6 @@ IMPORT_LIST = $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_NAME) \ $(LIB_LOCATION)/$(SERVER_LOCATION)/Xusage.txt -# INCLUDE_SA is false on platforms where SA is not supported. -# On platforms where it is supported, we want to allow it to -# not be present, at least temporarily. So, -# if the SA files (well, just sa-jdi.jar) do not exist -# in the HOTSPOT_IMPORT_PATH, then we won't build SA. -SA_EXISTS := $(shell if [ -r $(HOTSPOT_IMPORT_PATH)/lib/sa-jdi.jar ] ; then \ - $(ECHO) true; \ - else \ - $(ECHO) false; \ - fi) - -ifeq ($(SA_EXISTS), false) - INCLUDE_SA := false -endif - -ifeq ($(INCLUDE_SA), true) - IMPORT_LIST += $(LIBDIR)/sa-jdi.jar \ - $(LIB_LOCATION)/$(SALIB_NAME) - ifeq ($(PLATFORM), windows) - IMPORT_LIST += $(LIB_LOCATION)/$(SAMAP_NAME) \ - $(LIB_LOCATION)/$(SAPDB_NAME) - endif -endif # INCLUDE_SA - # Hotspot client is only available on 32-bit non-Zero builds ifneq ($(ZERO_BUILD), true) ifeq ($(ARCH_DATA_MODEL), 32) @@ -110,10 +91,10 @@ # NOTE: These might actually come from BUILDDIR, depends on the settings. $(BINDIR)/msvcrt.dll: $(MSVCRT_DLL_PATH)/msvcrt.dll $(install-import-file) - $(CHMOD) a+x $@ + $(call chmod-file, a+x) $(BINDIR)/$(MSVCRNN_DLL): $(MSVCRNN_DLL_PATH)/$(MSVCRNN_DLL) $(install-import-file) - $(CHMOD) a+x $@ + $(call chmod-file, a+x) # Get the hotspot .map and .pdb files for client and server IMPORT_LIST += \ @@ -140,26 +121,32 @@ $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMMAP_NAME): @$(prep-target) -$(CP) $(HOTSPOT_CLIENT_PATH)/$(JVMMAP_NAME) $@ + @$(install-module-file) $(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMMAP_NAME): @$(prep-target) -$(CP) $(HOTSPOT_KERNEL_PATH)/$(JVMMAP_NAME) $@ + @$(install-module-file) $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMMAP_NAME): @$(prep-target) -$(CP) $(HOTSPOT_SERVER_PATH)/$(JVMMAP_NAME) $@ + @$(install-module-file) $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMPDB_NAME): @$(prep-target) -$(CP) $(HOTSPOT_CLIENT_PATH)/$(JVMPDB_NAME) $@ + @$(install-module-file) $(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMPDB_NAME): @$(prep-target) -$(CP) $(HOTSPOT_KERNEL_PATH)/$(JVMPDB_NAME) $@ + @$(install-module-file) $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMPDB_NAME): @$(prep-target) -$(CP) $(HOTSPOT_SERVER_PATH)/$(JVMPDB_NAME) $@ + @$(install-module-file) # Windows ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Windows else # PLATFORM @@ -220,7 +207,7 @@ $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_NAME) \ $(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_NAME): @$(prep-target) - $(LN) -s ../$(LIBJSIG_NAME) $@ + $(call install-sym-link, ../$(LIBJSIG_NAME)) $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDB_NAME) $(install-import-file) @@ -246,28 +233,6 @@ $(LIB_LOCATION)/$(KERNEL_LOCATION)/Xusage.txt : $(HOTSPOT_KERNEL_PATH)/Xusage.txt $(install-file) -ifeq ($(INCLUDE_SA), true) -# The Serviceability Agent is built in the Hotspot workspace. -# It contains two files: -# - sa-jdi.jar: This goes into the same dir as tools.jar. -# - a shared library: sawindbg.dll on windows / libproc.sa on unix -# This goes into the same dir as the other -# shared libs, eg. libjdwp.so. -$(LIBDIR)/sa-jdi.jar: $(HOTSPOT_IMPORT_PATH)/lib/sa-jdi.jar - $(install-import-file) - -$(LIB_LOCATION)/$(SALIB_NAME): $(HOTSPOT_SALIB_PATH)/$(SALIB_NAME) - $(install-import-file) - -ifeq ($(PLATFORM), windows) -$(LIB_LOCATION)/$(SAPDB_NAME): $(HOTSPOT_SALIB_PATH)/$(SAPDB_NAME) - $(install-import-file) - -$(LIB_LOCATION)/$(SAMAP_NAME): $(HOTSPOT_SALIB_PATH)/$(SAMAP_NAME) - $(install-import-file) -endif # windows -endif # INCLUDE_SA - # # Specific to OpenJDK building # @@ -288,7 +253,7 @@ $(LIBDIR)/jce.jar: \ $(BUILDDIR)/closed/tools/crypto/jce/jce.jar - $(install-file) + $(install-non-module-file) $(LIBDIR)/security/US_export_policy.jar: \ $(BUILDDIR)/closed/tools/crypto/jce/US_export_policy.jar $(install-file) @@ -310,46 +275,6 @@ $(CLASSSHARINGDATA_DIR)/classlist.$(PLATFORM) $@.temp $(MV) $@.temp $@ -ifndef OPENJDK - -# Lucida font files are not included in the OpenJDK distribution. -# Get names of font files -include FILES.gmk - -# Copy font files into OUTPUTDIR area - -FONTFILES = $(SHARED_FONTFILES) -FONTSDIR = $(LIBDIR)/fonts -FONTSDIRFILE = $(FONTSDIR)/fonts.dir -INTERNAL_IMPORT_LIST += $(FONTFILES) - -ifneq ($(PLATFORM), windows) - INTERNAL_IMPORT_LIST += $(FONTSDIRFILE) -endif - -$(LIBDIR)/fonts/%.ttf: $(CLOSED_SRC)/share/lib/fonts/%.ttf - $(install-file) - -$(FONTSDIRFILE): $(PLATFORM_SRC)/classes/sun/awt/motif/java.fonts.dir - $(install-file) - -ifeq ($(PLATFORM), linux) - -# The oblique fonts are only needed/wanted on Linux. - -OBLFONTSDIR = $(LIBDIR)/oblique-fonts -OBLFONTSDIRFILE = $(OBLFONTSDIR)/fonts.dir -INTERNAL_IMPORT_LIST += $(OBLIQUE_FONTFILES) $(OBLFONTSDIRFILE) - -$(LIBDIR)/oblique-fonts/%.ttf: $(CLOSED_SRC)/share/lib/fonts/oblique/%.ttf - $(install-file) - -$(OBLFONTSDIRFILE): $(PLATFORM_SRC)/classes/sun/awt/motif/java.oblique-fonts.dir - $(install-file) - -endif # linux -endif # !OPENJDK - # Import internal files (ones that are stashed in this source tree) import_internal_files : $(INTERNAL_IMPORT_LIST) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/redist/fonts/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/make/java/redist/fonts/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -0,0 +1,111 @@ +# +# Copyright 2009 Sun Microsystems, Inc. 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. Sun designates this +# particular file as subject to the "Classpath" exception as provided +# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +# CA 95054 USA or visit www.sun.com if you need additional information or +# have any questions. +# + +BUILDDIR = ../../.. +MODULE = font +PRODUCT = java +include $(BUILDDIR)/common/Defs.gmk + + +# +# List of lucida font files that we redistribute. +# + +SHARED_FONTFILES = \ + $(LIBDIR)/fonts/LucidaTypewriterRegular.ttf \ + $(LIBDIR)/fonts/LucidaTypewriterBold.ttf \ + $(LIBDIR)/fonts/LucidaBrightRegular.ttf \ + $(LIBDIR)/fonts/LucidaBrightDemiBold.ttf \ + $(LIBDIR)/fonts/LucidaBrightItalic.ttf \ + $(LIBDIR)/fonts/LucidaBrightDemiItalic.ttf \ + $(LIBDIR)/fonts/LucidaSansRegular.ttf \ + $(LIBDIR)/fonts/LucidaSansDemiBold.ttf \ + +ifeq ($(PLATFORM), linux) + +# The oblique versions of the font are derived from the base versions +# and since 2D can do this derivation on the fly at run time there is no +# need to redistribute the fonts. An exception to this is on Linux. +# The reason is that the Lucidas are specified in the font.properties files +# on Linux, and so AWT/Motif components expect to be able to ask the Xserver +# for these oblique fonts, but the Xserver cannot do the same derivation as +# 2D can. + +OBLIQUE_FONTFILES = \ + $(LIBDIR)/oblique-fonts/LucidaTypewriterOblique.ttf \ + $(LIBDIR)/oblique-fonts/LucidaTypewriterBoldOblique.ttf \ + $(LIBDIR)/oblique-fonts/LucidaSansOblique.ttf \ + $(LIBDIR)/oblique-fonts/LucidaSansDemiOblique.ttf \ + +endif + +ifndef OPENJDK + +# Lucida font files are not included in the OpenJDK distribution. +# Get names of font files + +# Copy font files into OUTPUTDIR area + +FONTFILES = $(SHARED_FONTFILES) +FONTSDIR = $(LIBDIR)/fonts +FONTSDIRFILE = $(FONTSDIR)/fonts.dir +INTERNAL_IMPORT_LIST = $(FONTFILES) + +ifneq ($(PLATFORM), windows) + INTERNAL_IMPORT_LIST += $(FONTSDIRFILE) +endif + +$(LIBDIR)/fonts/%.ttf: $(CLOSED_SRC)/share/lib/fonts/%.ttf + $(install-file) + +$(FONTSDIRFILE): $(PLATFORM_SRC)/classes/sun/awt/motif/java.fonts.dir + $(install-file) + +ifeq ($(PLATFORM), linux) + +# The oblique fonts are only needed/wanted on Linux. + +OBLFONTSDIR = $(LIBDIR)/oblique-fonts +OBLFONTSDIRFILE = $(OBLFONTSDIR)/fonts.dir +INTERNAL_IMPORT_LIST += $(OBLIQUE_FONTFILES) $(OBLFONTSDIRFILE) + +$(LIBDIR)/oblique-fonts/%.ttf: $(CLOSED_SRC)/share/lib/fonts/oblique/%.ttf + $(install-file) + +$(OBLFONTSDIRFILE): $(PLATFORM_SRC)/classes/sun/awt/motif/java.oblique-fonts.dir + $(install-file) + +endif # linux + +all build : $(INTERNAL_IMPORT_LIST) + +clean clobber:: + $(RM) $(INTERNAL_IMPORT_LIST) + +else + +all build clean clobber : + +endif # !OPENJDK diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/redist/sajdi/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/make/java/redist/sajdi/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -0,0 +1,87 @@ +# +# Copyright 1997-2009 Sun Microsystems, Inc. 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. Sun designates this +# particular file as subject to the "Classpath" exception as provided +# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +# CA 95054 USA or visit www.sun.com if you need additional information or +# have any questions. +# + +BUILDDIR = ../../.. +MODULE = sajdi +PRODUCT = java +include $(BUILDDIR)/common/Defs.gmk + +ifeq ($(PLATFORM), windows) + LIB_LOCATION = $(BINDIR) +else + LIB_LOCATION = $(LIBDIR)/$(LIBARCH) +endif + +# INCLUDE_SA is false on platforms where SA is not supported. +# On platforms where it is supported, we want to allow it to +# not be present, at least temporarily. So, +# if the SA files (well, just sa-jdi.jar) do not exist +# in the HOTSPOT_IMPORT_PATH, then we won't build SA. +SA_EXISTS := $(shell if [ -r $(HOTSPOT_IMPORT_PATH)/lib/sa-jdi.jar ] ; then \ + $(ECHO) true; \ + else \ + $(ECHO) false; \ + fi) + +ifeq ($(SA_EXISTS), false) + INCLUDE_SA := false +endif + +IMPORT_LIST = +ifeq ($(INCLUDE_SA), true) + IMPORT_LIST += $(LIBDIR)/sa-jdi.jar \ + $(LIB_LOCATION)/$(SALIB_NAME) + ifeq ($(PLATFORM), windows) + IMPORT_LIST += $(LIB_LOCATION)/$(SAMAP_NAME) \ + $(LIB_LOCATION)/$(SAPDB_NAME) + endif +endif # INCLUDE_SA + + +ifeq ($(INCLUDE_SA), true) +# The Serviceability Agent is built in the Hotspot workspace. +# It contains two files: +# - sa-jdi.jar: This goes into the same dir as tools.jar. +# - a shared library: sawindbg.dll on windows / libproc.sa on unix +# This goes into the same dir as the other +# shared libs, eg. libjdwp.so. +$(LIBDIR)/sa-jdi.jar: $(HOTSPOT_IMPORT_PATH)/lib/sa-jdi.jar + $(install-importonly-file) + +$(LIB_LOCATION)/$(SALIB_NAME): $(HOTSPOT_SALIB_PATH)/$(SALIB_NAME) + $(install-import-file) + +ifeq ($(PLATFORM), windows) +$(LIB_LOCATION)/$(SAPDB_NAME): $(HOTSPOT_SALIB_PATH)/$(SAPDB_NAME) + $(install-import-file) + +$(LIB_LOCATION)/$(SAMAP_NAME): $(HOTSPOT_SALIB_PATH)/$(SAMAP_NAME) + $(install-import-file) +endif # windows +endif # INCLUDE_SA + +all: $(IMPORT_LIST) + +clean clobber:: diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/security/Makefile --- a/jdk/make/java/security/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/security/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../.. +MODULE = base PACKAGE = java.security PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk @@ -38,11 +39,9 @@ # PROPS_SRC = $(TOPDIR)/src/share/lib/security/java.security -SUNPKCS11 = ifeq ($(PLATFORM), solaris) PROPS_SRC = $(TOPDIR)/src/share/lib/security/java.security-solaris -SUNPKCS11 = sunpkcs11 else # PLATFORM @@ -57,9 +56,6 @@ PROPS_BUILD = $(LIBDIR)/security/java.security -SUNPKCS11_SRC = $(TOPDIR)/src/share/lib/security/sunpkcs11-solaris.cfg -SUNPKCS11_BUILD = $(LIBDIR)/security/sunpkcs11-solaris.cfg - POLICY_SRC = $(TOPDIR)/src/share/lib/security/java.policy POLICY_BUILD = $(LIBDIR)/security/java.policy @@ -73,14 +69,12 @@ # include $(BUILDDIR)/common/Rules.gmk -build: properties $(SUNPKCS11) policy cacerts +build: properties policy cacerts install: all properties: classes $(PROPS_BUILD) -sunpkcs11: classes $(SUNPKCS11_BUILD) - policy: classes $(POLICY_BUILD) cacerts: classes $(CACERTS_BUILD) @@ -88,9 +82,6 @@ $(PROPS_BUILD): $(PROPS_SRC) $(install-file) -$(SUNPKCS11_BUILD): $(SUNPKCS11_SRC) - $(install-file) - $(POLICY_BUILD): $(POLICY_SRC) $(install-file) @@ -99,7 +90,7 @@ clean clobber:: .delete.classlist $(RM) -r $(CLASSBINDIR)/java/security - $(RM) $(PROPS_BUILD) $(POLICY_BUILD) $(CACERTS_BUILD) $(SUNPKCS11_BUILD) + $(RM) $(PROPS_BUILD) $(POLICY_BUILD) $(CACERTS_BUILD) # Additional Rule for building sun.security.util $(CLASSBINDIR)/%.class: $(SHARE_SRC)/sun/%.java diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/sql/Makefile --- a/jdk/make/java/sql/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/sql/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../.. +MODULE = jdbc-base PACKAGE = java.sql PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/text/Makefile --- a/jdk/make/java/text/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/text/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,7 +24,7 @@ # BUILDDIR = ../.. - +MODULE = base PACKAGE = java.text PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/verify/Makefile --- a/jdk/make/java/verify/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/verify/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../.. +MODULE = base PRODUCT = java LIBRARY = verify include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/java/zip/Makefile --- a/jdk/make/java/zip/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/java/zip/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -25,6 +25,7 @@ BUILDDIR = ../.. +MODULE = base PACKAGE = java.util.zip LIBRARY = zip PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/javax/crypto/Makefile --- a/jdk/make/javax/crypto/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/javax/crypto/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -108,6 +108,7 @@ # BUILDDIR = ../.. +MODULE = base PACKAGE = javax.crypto PRODUCT = sun @@ -293,7 +294,7 @@ $(UNSIGNED_POLICY_BUILDDIR)/limited/US_export_policy.jar: \ $(UNSIGNED_POLICY_BUILDDIR)/unlimited/US_export_policy.jar - $(install-file) + $(install-non-module-file) $(UNSIGNED_POLICY_BUILDDIR)/limited/local_policy.jar: \ policy/limited/default_local.policy \ @@ -414,7 +415,7 @@ else $(JAR_DESTFILE): $(SIGNED_DIR)/jce.jar endif - $(install-file) + $(install-non-module-file) # # Install the appropriate policy file, depending on the type of build. @@ -425,7 +426,7 @@ INSTALL_POLICYDIR = $(SIGNED_POLICY_BUILDDIR) endif -install-limited: \ +install-limited-jars: \ $(INSTALL_POLICYDIR)/limited/US_export_policy.jar \ $(INSTALL_POLICYDIR)/limited/local_policy.jar $(MKDIR) -p $(POLICY_DESTDIR) @@ -433,24 +434,28 @@ $(POLICY_DESTDIR)/US_export_policy.jar \ $(POLICY_DESTDIR)/local_policy.jar $(CP) $^ $(POLICY_DESTDIR) + +install-limited: install-limited-jars install-module-files ifndef OPENJDK $(release-warning) endif -install-unlimited: \ +install-unlimited-jars: \ $(INSTALL_POLICYDIR)/unlimited/US_export_policy.jar \ - $(INSTALL_POLICYDIR)/unlimited/local_policy.jar + $(INSTALL_POLICYDIR)/unlimited/local_policy.jar $(MKDIR) -p $(POLICY_DESTDIR) $(RM) \ $(POLICY_DESTDIR)/US_export_policy.jar \ $(POLICY_DESTDIR)/local_policy.jar $(CP) $^ $(POLICY_DESTDIR) + +install-unlimited: install-unlimited-jars install-module-files ifndef OPENJDK $(release-warning) endif ifndef OPENJDK -install-prebuilt: +install-prebuilt-jars: @$(ECHO) "\n>>>Installing prebuilt JCE framework..." $(RM) $(JAR_DESTFILE) \ $(POLICY_DESTDIR)/US_export_policy.jar \ @@ -460,8 +465,16 @@ $(PREBUILT_DIR)/jce/US_export_policy.jar \ $(PREBUILT_DIR)/jce/local_policy.jar \ $(POLICY_DESTDIR) + +install-prebuilt: install-prebuilt-jars install-module-files endif +install-module-files: \ + $(POLICY_DESTDIR)/US_export_policy.jar \ + $(POLICY_DESTDIR)/local_policy.jar + +$(POLICY_DESTDIR)/%.jar : + $(install-module-file) # ===================================================== # Support routines. diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/javax/imageio/Makefile --- a/jdk/make/javax/imageio/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/javax/imageio/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../.. +MODULE = imageio PACKAGE = javax.imageio PRODUCT = jiio include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/javax/print/Makefile --- a/jdk/make/javax/print/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/javax/print/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../.. +MODULE = print PACKAGE = javax.print PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/javax/sound/Makefile --- a/jdk/make/javax/sound/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/javax/sound/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -26,6 +26,7 @@ # WARNING: Make sure the OPENJDK plugs are up-to-date, see make/common/internal/BinaryPlugs.gmk BUILDDIR = ../.. +MODULE = sound PACKAGE = javax.sound LIBRARY = jsound PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/javax/sound/jsoundalsa/Makefile --- a/jdk/make/javax/sound/jsoundalsa/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/javax/sound/jsoundalsa/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../../.. +MODULE = sound PACKAGE = javax.sound LIBRARY = jsoundalsa PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/javax/sound/jsoundds/Makefile --- a/jdk/make/javax/sound/jsoundds/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/javax/sound/jsoundds/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../../.. +MODULE = sound PACKAGE = javax.sound LIBRARY = jsoundds PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/javax/sql/Makefile --- a/jdk/make/javax/sql/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/javax/sql/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../.. +MODULE = jdbc-enterprise PACKAGE = javax.sql PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/javax/swing/Makefile --- a/jdk/make/javax/swing/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/javax/swing/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../.. +MODULE = swing PACKAGE = javax.swing PRODUCT = com SWING_SRC = $(SHARE_SRC)/classes/javax/swing diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/javax/swing/beaninfo/SwingBeans.gmk --- a/jdk/make/javax/swing/beaninfo/SwingBeans.gmk Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/javax/swing/beaninfo/SwingBeans.gmk Fri Feb 05 12:26:35 2010 -0800 @@ -25,7 +25,7 @@ # # Makefile to build the BeanInfo generation tool (ie, a doclet), and -# then the beaninfo itself. Swing versions prior to 1.2 is no longer +# then the beaninfo itself. Swing versions prior to 1.2 are no longer # built. # # This makefile could be a lot simpler if we made it more regular. @@ -44,13 +44,12 @@ $(MAKE) DEBUG_FLAG=true make-swing-beans -LOCAL_JAVADOC = $(JAVADOC_CMD) $(JAVADOCFLAGS) # get the absolute path to the jar command. PREFIX = 1.2 -JAVADOCFLAGS = $(NO_PROPRIETARY_API_WARNINGS) $(LANGUAGE_VERSION) +JAVADOCFLAGS += $(NO_PROPRIETARY_API_WARNINGS) $(LANGUAGE_VERSION) SWINGPKG = javax/swing LOCAL_JAVAC_FLAGS = $(OTHER_JAVACFLAGS) -# since LOCAL_JAVADOC runs on ALT_BOOTDIR, the doclet and all its classes must be compiled to match +# since JAVADOC_CMD runs on ALT_BOOTDIR, the doclet and all its classes must be compiled to match DOCLET_JAVAC_FLAGS = -source 6 -target 6 include FILES.gmk @@ -114,7 +113,7 @@ .javadoc.beanlist: if [ -s $(TEMPDIR)/.beans.list ]; \ - then $(LOCAL_JAVADOC) $(DOCLETFLAGS) -x $(DEBUG_FLAG) -d $(BEANSRCDIR) -t $(DOCLETSRC)/SwingBeanInfo.template -docletpath $(DOCLETDST) \ + then $(JAVADOC_CMD) $(DOCLETFLAGS) -x $(DEBUG_FLAG) -d $(BEANSRCDIR) -t $(DOCLETSRC)/SwingBeanInfo.template -docletpath $(DOCLETDST) \ $(shell if [ -s $(TEMPDIR)/.beans.list ]; then $(CAT) $(TEMPDIR)/.beans.list; fi); \ fi @$(java-vm-cleanup) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/javax/swing/plaf/Makefile --- a/jdk/make/javax/swing/plaf/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/javax/swing/plaf/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../../.. +MODULE = swing PACKAGE = javax.swing.plaf PRODUCT = com SWING_SRC = $(SHARE_SRC)/classes/javax/swing diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/jpda/back/Makefile --- a/jdk/make/jpda/back/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/jpda/back/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../.. +MODULE = debugging LIBRARY = jdwp PRODUCT = jpda diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/jpda/transport/Makefile --- a/jdk/make/jpda/transport/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/jpda/transport/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../.. +MODULE = debugging PRODUCT = jpda include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/jpda/transport/shmem/Makefile --- a/jdk/make/jpda/transport/shmem/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/jpda/transport/shmem/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../../.. +MODULE = debugging LIBRARY = dt_shmem PRODUCT = jbug diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/jpda/transport/socket/Makefile --- a/jdk/make/jpda/transport/socket/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/jpda/transport/socket/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../../.. +MODULE = debugging LIBRARY = dt_socket PRODUCT = jbug diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/jpda/tty/Makefile --- a/jdk/make/jpda/tty/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/jpda/tty/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../.. +MODULE = jdb PACKAGE = com.sun.tools.example.debug.tty PRODUCT = jpda PROGRAM = jdb diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/launchers/Makefile --- a/jdk/make/launchers/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/launchers/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,33 +28,23 @@ # BUILDDIR = .. +MODULE = tools PACKAGE = launchers PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk -# Run MAKE $@ for a launcher: +# Run MAKE $@ for a launcher for the corba module: # $(call make-launcher, name, mainclass, java-args, main-args) -define make-launcher +define make-corba-launcher +$(CD) $(BUILDDIR)/launchers && \ $(MAKE) -f Makefile.launcher \ - PROGRAM=$(strip $1) \ - MAIN_CLASS=$(strip $2) \ - MAIN_JAVA_ARGS="$(strip $3)" \ - MAIN_ARGS="$(strip $4)" $@ + MODULE=corba \ + PROGRAM=$(strip $1) \ + MAIN_CLASS=$(strip $2) \ + MAIN_JAVA_ARGS="$(strip $3)" \ + MAIN_ARGS="$(strip $4)" endef -# Run MAKE $@ for all launchers -ifeq ($(PLATFORM),windows) -# Run MAKE $@ for all platform specific launchers -define make-platform-specific-launchers -$(call make-launcher, kinit, sun.security.krb5.internal.tools.Kinit, , ) -$(call make-launcher, klist, sun.security.krb5.internal.tools.Klist, , ) -$(call make-launcher, ktab, sun.security.krb5.internal.tools.Ktab, , ) -endef -else -# Run MAKE $@ for all platform specific launchers -define make-platform-specific-launchers -endef -endif # Run MAKE $@ for all generic launchers define make-all-launchers $(call make-launcher, appletviewer, sun.applet.Main, , ) @@ -85,36 +75,29 @@ -J-Dsun.jvm.hotspot.debugger.useWindbgDebugger, ) $(call make-launcher, jstat, sun.tools.jstat.Jstat, , ) $(call make-launcher, jstatd, sun.tools.jstatd.Jstatd, , ) -$(call make-launcher, keytool, sun.security.tools.KeyTool, , ) $(call make-launcher, native2ascii, sun.tools.native2ascii.Main, , ) -$(call make-launcher, orbd, com.sun.corba.se.impl.activation.ORBD, \ +$(call make-launcher, rmic, sun.rmi.rmic.Main, , ) +$(call make-launcher, schemagen, com.sun.tools.internal.jxc.SchemaGenerator, , ) +$(call make-launcher, serialver, sun.tools.serialver.SerialVer, , ) +$(call make-launcher, xjc, com.sun.tools.internal.xjc.Driver, , ) +$(call make-launcher, wsgen, com.sun.tools.internal.ws.WsGen, , ) +$(call make-launcher, wsimport, com.sun.tools.internal.ws.WsImport, , ) +$(call make-corba-launcher, orbd, com.sun.corba.se.impl.activation.ORBD, \ -J-Dcom.sun.CORBA.activation.DbDir=./orb.db \ -J-Dcom.sun.CORBA.activation.Port=1049 \ -J-Dcom.sun.CORBA.POA.ORBServerId=1, ) -$(call make-launcher, pack200, com.sun.java.util.jar.pack.Driver, , --pack) -$(call make-launcher, policytool, sun.security.tools.PolicyTool, , ) -$(call make-launcher, rmic, sun.rmi.rmic.Main, , ) -$(call make-launcher, rmid, sun.rmi.server.Activation, , ) -$(call make-launcher, rmiregistry, sun.rmi.registry.RegistryImpl, , ) -$(call make-launcher, schemagen, com.sun.tools.internal.jxc.SchemaGenerator, , ) -$(call make-launcher, serialver, sun.tools.serialver.SerialVer, , ) -$(call make-launcher, servertool, com.sun.corba.se.impl.activation.ServerTool, , ) -$(call make-launcher, tnameserv, com.sun.corba.se.impl.naming.cosnaming.TransientNameServer, \ +$(call make-corba-launcher, servertool, com.sun.corba.se.impl.activation.ServerTool, , ) +$(call make-corba-launcher, tnameserv, com.sun.corba.se.impl.naming.cosnaming.TransientNameServer, \ -J-Dcom.sun.CORBA.activation.DbDir=./orb.db \ -J-Djava.util.logging.LoggingPermission=contol \ -J-Dcom.sun.CORBA.POA.ORBServerId=1, ) -$(call make-launcher, wsgen, com.sun.tools.internal.ws.WsGen, , ) -$(call make-launcher, wsimport, com.sun.tools.internal.ws.WsImport, , ) -$(call make-launcher, xjc, com.sun.tools.internal.xjc.Driver, , ) endef build: $(make-all-launchers) - $(make-platform-specific-launchers) clean clobber:: $(make-all-launchers) - $(make-platform-specific-launchers) include $(BUILDDIR)/common/Rules.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/mkdemo/jvmti/Makefile --- a/jdk/make/mkdemo/jvmti/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/mkdemo/jvmti/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../.. +MODULE = demos PRODUCT = demos include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/mkdemo/management/Makefile --- a/jdk/make/mkdemo/management/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/mkdemo/management/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../.. +MODULE = demos PRODUCT = demos include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/mksample/dtrace/Makefile --- a/jdk/make/mksample/dtrace/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/mksample/dtrace/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -29,6 +29,7 @@ BUILDDIR = ../.. +MODULE = samples PRODUCT = java include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/mksample/jmx/jmx-scandir/Makefile --- a/jdk/make/mksample/jmx/jmx-scandir/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/mksample/jmx/jmx-scandir/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -29,6 +29,7 @@ BUILDDIR = ../../.. +MODULE = samples PRODUCT = java include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/mksample/nbproject/Makefile --- a/jdk/make/mksample/nbproject/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/mksample/nbproject/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -29,6 +29,7 @@ BUILDDIR = ../.. +MODULE = samples PRODUCT = java include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/mksample/nio/file/Makefile --- a/jdk/make/mksample/nio/file/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/mksample/nio/file/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -29,6 +29,7 @@ BUILDDIR = ../../.. +MODULE = samples PRODUCT = java include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/mksample/nio/multicast/Makefile --- a/jdk/make/mksample/nio/multicast/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/mksample/nio/multicast/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -29,6 +29,7 @@ BUILDDIR = ../../.. +MODULE = samples PRODUCT = java include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/mksample/nio/server/Makefile --- a/jdk/make/mksample/nio/server/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/mksample/nio/server/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -29,6 +29,7 @@ BUILDDIR = ../../.. +MODULE = samples PRODUCT = java include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/mksample/scripting/scriptpad/Makefile --- a/jdk/make/mksample/scripting/scriptpad/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/mksample/scripting/scriptpad/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -29,6 +29,7 @@ BUILDDIR = ../../.. +MODULE = samples PRODUCT = java include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/mksample/webservices/EbayClient/Makefile --- a/jdk/make/mksample/webservices/EbayClient/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/mksample/webservices/EbayClient/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -29,6 +29,7 @@ BUILDDIR = ../../.. +MODULE = samples PRODUCT = java include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/mksample/webservices/EbayServer/Makefile --- a/jdk/make/mksample/webservices/EbayServer/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/mksample/webservices/EbayServer/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -29,6 +29,7 @@ BUILDDIR = ../../.. +MODULE = samples PRODUCT = java include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/modules/Makefile --- a/jdk/make/modules/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/modules/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -23,115 +23,106 @@ # have any questions. # -# -# Modularizing the JDK -# - BUILDDIR = .. include $(BUILDDIR)/common/Defs.gmk -CLASSANALYZER_JAR=$(BUILDTOOLJARDIR)/classanalyzer.jar -JAVA_FLAGS=$(JAVA_TOOLS_FLAGS) -Xbootclasspath:$(CLASSBINDIR) +# +# Modularizing the JDK +# - Post jdk build process until the source tree is restructured +# for modules build +# - /modules/ will be created for each module. +# +# Steps: +# 0. During jdk build before this makefile is invoked, classes, +# resource files, and other non-class files such as native libraries, +# properties file, images, etc are created. +# +# Non-class files are copied to /tmp/modules/ +# directory in this step to prepare for the post-build modularization. +# +# The MODULE variable defined in other makefiles specifies +# the lowest-level module that the non-class files belong to. +# The name might or might not be the same as the name of the modules +# in the resulting /modules directory. +# +# 1. Unpack all jars in the /lib directory to a temporary +# location (/tmp/modules/classes) to prepare for modules +# creation. +# +# 2. Run ClassAnalyzer tool to analyze all jdk classes and generate +# class list for all modules and also perform dependency analysis. +# +# Input configuration files :- +# +# modules.config : defines the low-level modules and specifies +# what classes and resource files each module includes. +# modules.group : defines the module groups and its members. +# jdk7.depconfig : lists the dynamic dependencies including +# use of reflection Class.forName and JNI FindClass and +# service provider. +# optional.depconfig : lists the optional dependencies +# +# 3. Create one directory for each module (/modules/) +# based on the output files from (2). +# +# modules.list lists the modules to be created for the modules +# build and its members. For each module (m) in modules.list, +# a. create $m/lib/$m.jar with all classes and resource files +# listed in $m.classlist and $m.resources respectively. +# b. copy all non-class files from its members to +# /modules/$m. -MODULE_LIB = $(ABS_OUTPUTDIR)/modules + MAINMANIFEST=$(JDK_TOPDIR)/make/tools/manifest.mf MODULE_JAR_MANIFEST_FILE=$(ABS_TEMPDIR)/manifest.tmp -TMP=$(ABS_TEMPDIR)/modules -MODULE_CLASSLIST = $(TMP)/classlist -MODULE_CLASSES = $(TMP)/classes -MODULE_LIST = $(MODULE_CLASSLIST)/modules.list - -# Modules in the modules/ext directory -EXT_MODULES = localedata security-sunec security-sunjce - -# Build PKCS#11 on all platforms except 64-bit Windows. -# We exclude windows-amd64 because we don't have any -# 64-bit PKCS#11 implementations to test with on that platform. -PKCS11 = security-sunpkcs11 -ifeq ($(ARCH_DATA_MODEL), 64) - ifeq ($(PLATFORM), windows) - PKCS11 = - endif -endif - -EXT_MODULES += $(PKCS11) - -# Build Microsoft CryptoAPI provider only on (non-64-bit) Windows platform. -ifeq ($(PLATFORM), windows) - ifneq ($(ARCH_DATA_MODEL), 64) - EXT_MODULES += security-sunmscapi - endif -endif - - -JDK_MODULES = tools - -SUBDIRS = tools -all build clean clobber:: - $(SUBDIRS-loop) +TMP = $(ABS_MODULES_TEMPDIR) +MODULE_CLASSLIST = $(ABS_MODULES_TEMPDIR)/classlist +MODULE_CLASSES = $(ABS_MODULES_TEMPDIR)/classes +MODULES_LIST = $(MODULE_CLASSLIST)/modules.list all:: unpack-jars gen-classlist modularize -$(CLASSANALYZER_JAR): - $(CD) tools && $(MAKE) all - -JAR_LIST := $(shell $(FIND) $(ABS_OUTPUTDIR)/lib -name \*.jar -depth) +JAR_LIST := $(shell $(FIND) $(ABS_OUTPUTDIR)/lib -name \*.jar -print) unpack-jars: + @$(ECHO) ">>>Making "$@" @ `$(DATE)` ..." $(RM) -rf $(MODULE_CLASSES) $(MKDIR) -p $(MODULE_CLASSES) $(CP) -rf $(CLASSBINDIR)/* $(MODULE_CLASSES) - for jf in $(JAR_LIST) ; do \ + @for jf in $(JAR_LIST) ; do \ $(CD) $(MODULE_CLASSES) && $(BOOT_JAR_CMD) xf $$jf $(BOOT_JAR_JFLAGS);\ done - -gen-classlist: $(CLASSANALYZER_JAR) - @$(ECHO) ">>>Making "$@" @ `$(DATE)` ..." - @$(RM) -rf $(MODULE_CLASSLIST) - @$(MKDIR) -p $(MODULE_CLASSLIST) + @$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..." - @# Use java in the default tool directory. - @# OUTPUTDIR for solaris 64-bit doesn't have the tools. - $(JAVA_TOOLS_DIR)/java $(JAVA_FLAGS) \ - -Dclassanalyzer.debug \ - -jar $(CLASSANALYZER_JAR) \ - -jdkhome $(OUTPUTDIR) \ - -config modules.config \ - -config modules.group \ - -depconfig jdk7.depconfig \ - -depconfig optional.depconfig \ - -showdynamic \ - -output $(MODULE_CLASSLIST) - @$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..." +gen-classlist: + $(CD) tools && $(MAKE) all modularize: $(MODULE_JAR_MANIFEST_FILE) @$(ECHO) ">>>Making "$@" @ `$(DATE)` ..." - @$(RM) -rf $(MODULE_LIB) - @$(MKDIR) -p $(MODULE_LIB)/lib - @$(MKDIR) -p $(MODULE_LIB)/jre/lib/ext + @$(RM) -rf $(MODULES_DIR) - @# create modules - for m in `$(NAWK) '{print $$1}' $(MODULE_LIST)` ; do \ + @# create jar file for modules and + @# copy other files from all members of this module + for m in `$(NAWK) '{print $$1}' $(MODULES_LIST)` ; do \ $(ECHO) "Creating module $$m" ; \ $(SED) -e 's%\\%\/%g' < $(MODULE_CLASSLIST)/$$m.classlist > $(TMP)/tmp.cf ; \ if [ -f $(MODULE_CLASSLIST)/$$m.resources ] ; then \ $(SED) -e 's%\\%\/%g' < $(MODULE_CLASSLIST)/$$m.resources >> $(TMP)/tmp.cf ; \ fi ; \ + $(MKDIR) -p $(ABS_MODULES_DIR)/$$m/lib; \ $(CD) $(MODULE_CLASSES) && \ $(BOOT_JAR_CMD) c0mf $(MODULE_JAR_MANIFEST_FILE) \ - $(MODULE_LIB)/$$m.jar \ - @$(TMP)/tmp.cf \ - $(BOOT_JAR_JFLAGS) ; \ - done + $(ABS_MODULES_DIR)/$$m/lib/$$m.jar \ + @$(TMP)/tmp.cf \ + $(BOOT_JAR_JFLAGS); \ + for s in `$(GREP) "^$$m" $(MODULES_LIST)` ; do \ + if [ -d $(TMP)/$$s ] ; then \ + $(CP) -rf $(TMP)/$$s/* $(ABS_MODULES_DIR)/$$m; \ + $(RM) -rf $(ABS_MODULES_DIR)/$$m/classes; \ + fi \ + done \ + done @$(CD) $(MODULE_CLASSES) && $(java-vm-cleanup) - @# move modules to lib, jre/lib, or jre/lib/ext - for m in $(EXT_MODULES) ; do \ - $(MV) $(MODULE_LIB)/$$m.jar $(MODULE_LIB)/jre/lib/ext ; \ - done - for m in $(JDK_MODULES) ; do \ - $(MV) $(MODULE_LIB)/$$m.jar $(MODULE_LIB)/lib ; \ - done - $(MV) $(MODULE_LIB)/*.jar $(MODULE_LIB)/jre/lib @$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..." $(MODULE_JAR_MANIFEST_FILE): @@ -139,7 +130,5 @@ clean clobber:: $(RM) -rf $(MODULE_CLASSLIST) - $(RM) -rf $(MODULE_LIB) - $(RM) -f $(MODULE_JAR_MANIFEST_FILE) - $(RM) -f $(CLASSANALYZER_JAR) - + $(RM) -rf $(MODULES_DIR) + $(RM) $(MODULE_JAR_MANIFEST_FILE) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/modules/modules.config --- a/jdk/make/modules/modules.config Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/modules/modules.config Fri Feb 05 12:26:35 2010 -0800 @@ -372,15 +372,19 @@ /**************************************************************************/ +module tracing { + // tracing + include com.sun.tracing.**, sun.tracing.**; +} + module instrument { // java.lang.instrument include java.lang.instrument.*, sun.instrument.*; - // tracing - include com.sun.tracing.**, sun.tracing.**; - // HPROF support include com.sun.demo.jvmti.hprof.*; + + include tracing; } /**************************************************************************/ @@ -391,15 +395,17 @@ sun.rmi.server.InactiveGroupException; } +module rmic { + // rmic is included in tools + include sun.rmi.rmic.**; +} + module rmi { include java.rmi.**, sun.rmi.**, com.sun.rmi.**; // SSL factories are in rmi include javax.rmi.ssl.**; - // rmic is in tools - exclude sun.rmi.rmic.**; - // supporting classes in sun.misc and dependencies include sun.misc.GC; } @@ -468,9 +474,14 @@ include javax.smartcardio.**, sun.security.smartcardio.**; } +module security-auth { + include com.sun.security.auth.**, sun.security.util.AuthResources_*; +} + module security-misc { - include com.sun.security.auth.**, sun.security.util.AuthResources_*, - sun.security.pkcs.*, + include security-auth; + + include sun.security.pkcs.*, sun.security.pkcs12.*; // this class is a candidate to be removed. @@ -500,9 +511,8 @@ } module jndi-dns { + include net-dns; include com.sun.jndi.dns.**, com.sun.jndi.url.dns.**; - include sun.net.dns.**; // to access DNS config. - include sun.net.spi.nameservice.dns.**; // for DNS-only name service. } module jndi-cosnaming { @@ -677,31 +687,69 @@ /**************************************************************************/ -module client { +module applet { include java.applet.**, - java.awt.**, - javax.accessibility.*, - javax.imageio.**, - javax.print.**, - javax.sound.**, - javax.swing.**, - sun.applet.**, - sun.audio.**, + sun.applet.**; +} + +module awt { + include java.awt.**, sun.awt.**, - sun.dc.**, - sun.font.**, + com.sun.awt.**; +} + +module font { + include sun.font.**; +} + +module imageio { + include javax.imageio.**, + com.sun.imageio.**; +} + +module java2d { + include sun.dc.**, sun.java2d.**, - sun.print.**, + com.sun.image.**; +} + +module media { + include com.sun.media.**; +} + +module print { + include javax.print.**, + sun.print.**; +} + +module sound { + include javax.sound.**; +} + +module swing { + include javax.swing.**, sun.swing.**, - com.sun.accessibility.**, - com.sun.awt.**, - com.sun.image.**, - com.sun.imageio.**, - com.sun.java.swing.*, // sajdi also contains classes in a subpackage; - // so use '*' instead of '**' + // sajdi also contains classes in subpackages of com.sun.java.swing; + // so use '*' instead of '**' + com.sun.java.swing.*, com.sun.java.swing.plaf.**, - com.sun.media.**, com.sun.swing.**; +} + +module client { + include applet, + awt, + font, + imageio, + java2d, + media, + print, + sound, + swing; + + include javax.accessibility.*, + sun.audio.**, + com.sun.accessibility.**; // Bidi class in client module for now include java.text.Bidi, sun.text.bidi.*; @@ -723,7 +771,13 @@ /**************************************************************************/ +module jkernel { + include sun.jkernel.*; +} + module deploy { + include jkernel; + // For now, all plugin and JNLP include com.sun.java.browser.**, netscape.**, @@ -732,8 +786,7 @@ com.sun.deploy.**, com.sun.javaws.**, javax.jnlp.*, - com.sun.jnlp.*, - sun.jkernel.*; + com.sun.jnlp.*; // Hook for http authentication include sun.net.www.protocol.http.AuthCacheBridge; @@ -741,6 +794,11 @@ /**************************************************************************/ +module net-dns { + include sun.net.dns.**; // to access DNS config. + include sun.net.spi.nameservice.dns.**; // for DNS-only name service. +} + module net-compat { // NTLM authentication support include sun.net.www.protocol.http.ntlm.*; @@ -824,6 +882,7 @@ debugging, jaxws-tools, jdb, + rmic, sajdi; // include gui-tools in tools module unless the tool binaries @@ -834,8 +893,7 @@ com.sun.jarsigner.**, com.sun.javac.**, com.sun.javadoc.**, com.sun.source.**, - sun.jvmstat.**, - sun.rmi.rmic.**; + sun.jvmstat.**; } /**************************************************************************/ @@ -853,6 +911,19 @@ /**************************************************************************/ +// Workaround for US export and local policy files +// They are currently in signed jars under the jre/lib/security directory +module US_export_policy { + include default_US_export.policy; +} + +module local_policy { + include default_local.policy, + exempt_local.policy; +} + +/**************************************************************************/ + module other { include **; } diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/modules/optional.depconfig --- a/jdk/make/modules/optional.depconfig Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/modules/optional.depconfig Fri Feb 05 12:26:35 2010 -0800 @@ -1,3 +1,28 @@ +# +# Copyright 2009 Sun Microsystems, Inc. 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. Sun designates this +# particular file as subject to the "Classpath" exception as provided +# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +# CA 95054 USA or visit www.sun.com if you need additional information or +# have any questions. +# + # public final java.nio.channels.SocketChannel getChannel() @Optional sun.security.ssl.BaseSSLSocketImpl -> java.nio.channels.SocketChannel diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/modules/tools/Makefile --- a/jdk/make/modules/tools/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/modules/tools/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,58 +28,128 @@ # BUILDDIR = ../.. -PACKAGE = com.sun.classanalyzer -PRODUCT = tools -PROGRAM = classanalyzer include $(BUILDDIR)/common/Defs.gmk +PKGDIR = com/sun/classanalyzer BUILDTOOL_SOURCE_ROOT = src BUILDTOOL_MAIN = $(PKGDIR)/ClassAnalyzer.java BUILTTOOL_MAINCLASS = $(subst /,.,$(BUILDTOOL_MAIN:%.java=%)) BUILDTOOL_MAIN_SOURCE_FILE = $(BUILDTOOL_SOURCE_ROOT)/$(BUILDTOOL_MAIN) -BUILDTOOL_MANIFEST_FILE = $(BUILDTOOLCLASSDIR)/$(PROGRAM)_manifest.mf -BUILDTOOL_JAR_FILE = $(BUILDTOOLJARDIR)/$(PROGRAM).jar +BUILDTOOL_MANIFEST_FILE = $(BUILDTOOLCLASSDIR)/classanalyzer_manifest.mf FILES_java := $(shell $(CD) $(BUILDTOOL_SOURCE_ROOT) \ - && $(FIND) $(PKGDIR) $(SCM_DIRS_prune) -o -type f -print) + && $(FIND) $(PKGDIR) -type f -print) + FILES_class = $(FILES_java:%.java=$(BUILDTOOLCLASSDIR)/%.class) -all build: $(BUILDTOOL_JAR_FILE) tool_info +CLASSANALYZER_JAR_FILE = $(BUILDTOOLJARDIR)/classanalyzer.jar + +# +# ClassAnalyzer depends on the com.sun.tools.classfile API. +# The tool is compiled with the latest version of the classfile +# library in the langtools repo to make sure that synchronized +# change is made if the classfile API is changed. +# +# If langtools repo exists, build its own copy of the +# classfile library and use it for compile time and runtime. +# If not exist (the top level repo is not a forest), use +# the built jdk tools that imports tools.jar from the latest +# promoted build. +# +# If the classfile API is changed but not yet in a promoted build, +# the build might fail and the tool would need the langtools repo +# to build in that case. +# +ifndef LANGTOOLS_TOPDIR + LANGTOOLS_TOPDIR=$(JDK_TOPDIR)/../langtools +endif + +LANGTOOLS_TOPDIR_EXISTS := $(shell \ + if [ -d $(LANGTOOLS_TOPDIR) ] ; then \ + echo true; \ + else \ + echo false; \ + fi) + +CLASSFILE_SRC = $(LANGTOOLS_TOPDIR)/src/share/classes +CLASSFILE_PKGDIR = com/sun/tools/classfile + +ifeq ($(LANGTOOLS_TOPDIR_EXISTS), true) + FILES_classfile_java := $(shell \ + $(CD) $(CLASSFILE_SRC) && \ + $(FIND) $(CLASSFILE_PKGDIR) -name '*.java' -print) + FILES_classfile_class = $(FILES_classfile_java:%.java=$(BUILDTOOLCLASSDIR)/%.class) + CLASSFILE_JAR_FILE = $(BUILDTOOLJARDIR)/classfile.jar + BUILDTOOL_JAVAC = $(BOOT_JAVAC_CMD) $(JAVAC_JVM_FLAGS) \ + $(BOOT_JAVACFLAGS) -classpath $(CLASSFILE_JAR_FILE) + BUILDTOOL_JAVA = $(BOOT_JAVA_CMD) $(JAVA_TOOLS_FLAGS) \ + -Xbootclasspath/p:$(CLASSFILE_JAR_FILE) +else + # if langtools doesn't exist, use tools from the built jdk + BUILDTOOL_JAVAC = $(BINDIR)/javac $(JAVAC_JVM_FLAGS) \ + $(BOOT_JAVACFLAGS) + BUILDTOOL_JAVA = $(BINDIR)/java $(JAVA_TOOLS_FLAGS) +endif + +# Location of the output modules.list, .classlist +# and other output files generated by the class analyzer tool. +# +MODULE_CLASSLIST = $(MODULES_TEMPDIR)/classlist + +all build: classanalyzer gen-classlist + +classanalyzer: $(CLASSFILE_JAR_FILE) $(CLASSANALYZER_JAR_FILE) + +gen-classlist: + @$(ECHO) ">>>Making "$@" @ `$(DATE)` ..." + @$(RM) -rf $(MODULE_CLASSLIST) + @$(MKDIR) -p $(MODULE_CLASSLIST) + $(BUILDTOOL_JAVA) \ + -Dclassanalyzer.debug \ + -jar $(CLASSANALYZER_JAR_FILE) \ + -jdkhome $(OUTPUTDIR) \ + -config ../modules.config \ + -config ../modules.group \ + -depconfig ../jdk7.depconfig \ + -depconfig ../optional.depconfig \ + -showdynamic \ + -output $(MODULE_CLASSLIST) + @$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..." $(BUILDTOOL_MANIFEST_FILE): $(BUILDTOOL_MAIN_SOURCE_FILE) @$(prep-target) $(ECHO) "Main-Class: $(BUILTTOOL_MAINCLASS)" > $@ +$(BUILDTOOLCLASSDIR)/$(CLASSFILE_PKGDIR)/%.class : $(CLASSFILE_SRC)/$(CLASSFILE_PKGDIR)/%.java + @$(prep-target) + @$(BUILDTOOL_JAVAC) \ + -sourcepath $(CLASSFILE_SRC) \ + -d $(BUILDTOOLCLASSDIR) $< + $(BUILDTOOLCLASSDIR)/%.class : $(BUILDTOOL_SOURCE_ROOT)/%.java @$(prep-target) - $(JAVAC_CMD) \ + $(BUILDTOOL_JAVAC) \ -sourcepath $(BUILDTOOL_SOURCE_ROOT) \ -d $(BUILDTOOLCLASSDIR) $< -$(BUILDTOOL_JAR_FILE): $(BUILDTOOL_MANIFEST_FILE) $(FILES_class) +$(CLASSANALYZER_JAR_FILE): $(BUILDTOOL_MANIFEST_FILE) $(FILES_class) @$(prep-target) - $(BOOT_JAR_CMD) cfm $@ $(BUILDTOOL_MANIFEST_FILE) \ - -C $(BUILDTOOLCLASSDIR) $(PKGDIR) \ - $(BOOT_JAR_JFLAGS) || $(RM) $@ - $(java-vm-cleanup) + $(CD) $(BUILDTOOLCLASSDIR) && \ + $(BOOT_JAR_CMD) cfm $@ $(BUILDTOOL_MANIFEST_FILE) \ + $(PKGDIR) $(BOOT_JAR_JFLAGS) || $(RM) $@ + @$(java-vm-cleanup) -# Printing out a build tool information line -define printBuildToolSetting -if [ "$2" != "" ] ; then $(PRINTF) "%-25s %s\n" "$1:" "$2"; fi -endef - -# Print out the build tool information -tool_info: - @$(ECHO) "=========================================================" - @$(call printBuildToolSetting,BUILDTOOL,$(PROGRAM)) - @$(call printBuildToolSetting,PACKAGE,$(PACKAGE)) - @$(call printBuildToolSetting,BUILDTOOL_SOURCE_ROOT,$(BUILDTOOL_SOURCE_ROOT)) - @$(call printBuildToolSetting,BUILTTOOL_MAINCLASS,$(BUILTTOOL_MAINCLASS)) - @$(call printBuildToolSetting,BUILDTOOL_JAR_FILE,$(BUILDTOOL_JAR_FILE)) - @$(ECHO) "=========================================================" +$(BUILDTOOLJARDIR)/classfile.jar: $(FILES_classfile_class) + @$(prep-target) + $(CD) $(BUILDTOOLCLASSDIR) && \ + $(BOOT_JAR_CMD) cf $@ \ + $(CLASSFILE_PKGDIR) $(BOOT_JAR_JFLAGS) || $(RM) $@ + @$(java-vm-cleanup) clean clobber:: @$(RM) -rf $(BUILDTOOLCLASSDIR)/$(PKGDIR) + @$(RM) -rf $(BUILDTOOLCLASSDIR)/$(CLASSFILE_PKGDIR) @$(RM) $(BUILDTOOL_MANIFEST_FILE) - @$(RM) $(BUILDTOOL_JAR_FILE) + @$(RM) $(CLASSANALYZER_JAR_FILE) + @$(RM) $(CLASSFILE_JAR_FILE) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/modules/tools/build.xml --- a/jdk/make/modules/tools/build.xml Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/modules/tools/build.xml Fri Feb 05 12:26:35 2010 -0800 @@ -1,32 +1,28 @@ - diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/modules/tools/nbproject/project.properties --- a/jdk/make/modules/tools/nbproject/project.properties Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/modules/tools/nbproject/project.properties Fri Feb 05 12:26:35 2010 -0800 @@ -1,32 +1,26 @@ # # Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # -# - Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# - Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. +# 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. Sun designates this +# particular file as subject to the "Classpath" exception as provided +# by Sun in the LICENSE file that accompanied this code. # -# - Neither the name of Sun Microsystems nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. +# 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). # -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +# CA 95054 USA or visit www.sun.com if you need additional information or +# have any questions. # application.title=classanalyzer diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/modules/tools/nbproject/project.xml --- a/jdk/make/modules/tools/nbproject/project.xml Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/modules/tools/nbproject/project.xml Fri Feb 05 12:26:35 2010 -0800 @@ -1,35 +1,29 @@ + - org.netbeans.modules.java.j2seproject diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/modules/tools/src/com/sun/classanalyzer/Module.java --- a/jdk/make/modules/tools/src/com/sun/classanalyzer/Module.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/modules/tools/src/com/sun/classanalyzer/Module.java Fri Feb 05 12:26:35 2010 -0800 @@ -444,8 +444,8 @@ } void printClassListTo(String output) throws IOException { - // no file created if the module doesn't have any class - if (classes.isEmpty()) { + // no file created if the module doesn't have any class nor resource + if (isEmpty()) { return; } @@ -482,7 +482,7 @@ void printDependenciesTo(String output, boolean showDynamic) throws IOException { // no file created if the module doesn't have any class - if (classes.isEmpty()) { + if (isEmpty()) { return; } diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/applet/Makefile --- a/jdk/make/sun/applet/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/applet/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../.. +MODULE = applet PACKAGE = sun.applet PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/awt/Makefile --- a/jdk/make/sun/awt/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/awt/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../.. +MODULE = awt PACKAGE = sun.awt LIBRARY = awt PRODUCT = sun @@ -312,15 +313,15 @@ $(LIBDIR)/$(LIBARCH)/libxinerama.so: $(CLOSED_SRC)/solaris/lib/$(ARCH)/libxinerama.so $(install-file) - $(CHMOD) a+x $@ + $(call chmod-file, a+x) $(LIBDIR)/$(LIBARCH)/libjdgaSUNW%.so: $(CLOSED_SRC)/solaris/lib/$(ARCH)/libjdgaSUNW%.so $(install-file) - $(CHMOD) a+x $@ + $(call chmod-file, a+x) $(LIBDIR)/$(LIBARCH)/libjdgaSUNWafb.so: $(LIBDIR)/$(LIBARCH)/libjdgaSUNWffb.so $(prep-target) - $(LN) -s libjdgaSUNWffb.so $(LIBDIR)/$(LIBARCH)/libjdgaSUNWafb.so + $(call install-sym-link, libjdgaSUNWffb.so) clean:: dgalib.clean @@ -404,7 +405,8 @@ $(COMPILEFONTCONFIG_JARFILE) $(prep-target) $(BOOT_JAVA_CMD) -jar $(COMPILEFONTCONFIG_JARFILE) $< $@ - $(CHMOD) 444 $(@) + $(install-module-file) + $(call chmod-file, 444) @$(java-vm-cleanup) fontconfigs.clean : diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/cmm/Makefile --- a/jdk/make/sun/cmm/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/cmm/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../.. +MODULE = java2d PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk @@ -45,34 +46,24 @@ $(ICCPROFILE_DEST_DIR)/LINEAR_RGB.pf $(ICCPROFILE_DEST_DIR)/sRGB.pf: $(ICCPROFILE_SRC_DIR)/sRGB.pf - $(RM) $(ICCPROFILE_DEST_DIR)/sRGB.pf - -$(MKDIR) -p $(ICCPROFILE_DEST_DIR) - $(CP) $(ICCPROFILE_SRC_DIR)/sRGB.pf $(ICCPROFILE_DEST_DIR) - $(CHMOD) 444 $(ICCPROFILE_DEST_DIR)/sRGB.pf + $(install-file) + $(call chmod-file, 444) $(ICCPROFILE_DEST_DIR)/GRAY.pf: $(ICCPROFILE_SRC_DIR)/GRAY.pf - $(RM) $(ICCPROFILE_DEST_DIR)/GRAY.pf - -$(MKDIR) -p $(ICCPROFILE_DEST_DIR) - $(CP) $(ICCPROFILE_SRC_DIR)/GRAY.pf $(ICCPROFILE_DEST_DIR) - $(CHMOD) 444 $(ICCPROFILE_DEST_DIR)/GRAY.pf + $(install-file) + $(call chmod-file, 444) $(ICCPROFILE_DEST_DIR)/CIEXYZ.pf: $(ICCPROFILE_SRC_DIR)/CIEXYZ.pf - $(RM) $(ICCPROFILE_DEST_DIR)/CIEXYZ.pf - -$(MKDIR) -p $(ICCPROFILE_DEST_DIR) - $(CP) $(ICCPROFILE_SRC_DIR)/CIEXYZ.pf $(ICCPROFILE_DEST_DIR) - $(CHMOD) 444 $(ICCPROFILE_DEST_DIR)/CIEXYZ.pf + $(install-file) + $(call chmod-file, 444) $(ICCPROFILE_DEST_DIR)/PYCC.pf: $(ICCPROFILE_SRC_DIR)/PYCC.pf - $(RM) $(ICCPROFILE_DEST_DIR)/PYCC.pf - -$(MKDIR) -p $(ICCPROFILE_DEST_DIR) - $(CP) $(ICCPROFILE_SRC_DIR)/PYCC.pf $(ICCPROFILE_DEST_DIR) - $(CHMOD) 444 $(ICCPROFILE_DEST_DIR)/PYCC.pf + $(install-file) + $(call chmod-file, 444) $(ICCPROFILE_DEST_DIR)/LINEAR_RGB.pf: $(ICCPROFILE_SRC_DIR)/LINEAR_RGB.pf - $(RM) $(ICCPROFILE_DEST_DIR)/LINEAR_RGB.pf - -$(MKDIR) -p $(ICCPROFILE_DEST_DIR) - $(CP) $(ICCPROFILE_SRC_DIR)/LINEAR_RGB.pf $(ICCPROFILE_DEST_DIR) - $(CHMOD) 444 $(ICCPROFILE_DEST_DIR)/LINEAR_RGB.pf + $(install-file) + $(call chmod-file, 444) iccprofiles.clean: $(RM) -r $(ICCPROFILE_DEST_DIR) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/cmm/kcms/Makefile --- a/jdk/make/sun/cmm/kcms/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/cmm/kcms/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../../.. +MODULE = java2d PACKAGE = sun.java2d.cmm.kcms LIBRARY = kcms PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/cmm/lcms/Makefile --- a/jdk/make/sun/cmm/lcms/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/cmm/lcms/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../../.. +MODULE = java2d PACKAGE = sun.java2d.cmm.lcms LIBRARY = lcms PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/dcpr/Makefile --- a/jdk/make/sun/dcpr/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/dcpr/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -26,6 +26,7 @@ # WARNING: Make sure the OPENJDK plugs are up-to-date, see make/common/internal/BinaryPlugs.gmk BUILDDIR = ../.. +MODULE = java2d PACKAGE = sun.dc LIBRARY = dcpr PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/font/Makefile --- a/jdk/make/sun/font/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/font/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../.. +MODULE = font PACKAGE = sun.font LIBRARY = fontmanager PRODUCT = sun @@ -121,16 +122,21 @@ # #TODO: rework this to avoid hardcoding library name in the makefile # -library:: $(LIB_LOCATION)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX) - -$(LIB_LOCATION)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX): ifeq ($(PLATFORM), windows) - $(CP) $(FREETYPE_LIB_PATH)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX) $@ + FREETYPE_LIB = $(LIB_LOCATION)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX) + OTHER_LDLIBS += $(FREETYPE_LIB_PATH)/freetype.lib else ifeq ($(USING_SYSTEM_FT_LIB), false) - $(CP) $(FREETYPE_LIB_PATH)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX) $@.6 + FREETYPE_LIB = $(LIB_LOCATION)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX).6 endif + OTHER_LDLIBS += -L$(FREETYPE_LIB_PATH) -lfreetype endif + +library:: $(FREETYPE_LIB) + +$(FREETYPE_LIB): + $(CP) $(FREETYPE_LIB_PATH)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX) $@ + $(install-module-file) endif #ifeq ($(PLATFORM), solaris) @@ -158,7 +164,6 @@ CPPFLAGS += -I$(CLOSED_SRC)/share/native/$(PKGDIR)/t2k else CPPFLAGS += -I$(FREETYPE_HEADERS_PATH) -I$(FREETYPE_HEADERS_PATH)/freetype2 - OTHER_LDLIBS += $(FREETYPE_LIB) endif ifeq ($(PLATFORM), windows) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/font/t2k/Makefile --- a/jdk/make/sun/font/t2k/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/font/t2k/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -30,6 +30,7 @@ # BUILDDIR = ../../.. +MODULE = font PACKAGE = sun.font LIBRARY = t2k PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/headless/Makefile --- a/jdk/make/sun/headless/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/headless/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -30,6 +30,7 @@ MOTIF_VERSION_STRING=none LIB_LOCATION = $(LIBDIR)/$(LIBARCH)/headless +MODULE = awt PACKAGE = sun.awt LIBRARY = mawt LIBRARY_OUTPUT = headless diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/image/generic/Makefile --- a/jdk/make/sun/image/generic/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/image/generic/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../../.. +MODULE = media PACKAGE = sun.awt.medialib LIBRARY = mlib_image PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/image/vis/Makefile --- a/jdk/make/sun/image/vis/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/image/vis/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -27,6 +27,7 @@ # Makefile for building the VIS (solaris-only) version of medialib # BUILDDIR = ../../.. +MODULE = media PACKAGE = sun.awt.medialib LIBRARY = mlib_image_v PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/jar/Makefile --- a/jdk/make/sun/jar/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/jar/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../.. +MODULE = jar-tool PACKAGE = sun.tools PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/javazic/Makefile --- a/jdk/make/sun/javazic/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/javazic/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -27,6 +27,7 @@ BUILDDIR = ../.. +MODULE = base PACKAGE = sun.javazic PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk @@ -69,6 +70,7 @@ $(RM) -r $(@D) $(prep-target) $(CP) -r $(WORKDIR)/* $(@D) + $(install-module-dir) clean clobber:: $(RM) -r $(TEMPDIR) $(INSTALLDIR) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/jawt/Makefile --- a/jdk/make/sun/jawt/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/jawt/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../.. +MODULE = awt PACKAGE = sun.awt LIBRARY = jawt PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/jconsole/Makefile --- a/jdk/make/sun/jconsole/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/jconsole/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../.. +MODULE = jconsole PACKAGE = sun.tools.jconsole PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk @@ -79,7 +80,7 @@ $(install-file) $(TEMPDIR)/manifest: $(SHARE_SRC)/classes/$(PKGDIR)/manifest - $(install-file) + $(install-manifest-file) # # Extra rule to build jconsole.jar diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/jdbc/Makefile --- a/jdk/make/sun/jdbc/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/jdbc/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -33,6 +33,7 @@ # BUILDDIR = ../.. +MODULE = jdbc-odbc PACKAGE = sun.jdbc.odbc LIBRARY = JdbcOdbc PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/jdga/Makefile --- a/jdk/make/sun/jdga/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/jdga/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -25,6 +25,7 @@ BUILDDIR = ../.. +MODULE = java2d PACKAGE = sun.jdga LIBRARY = sunwjdga PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/jkernel/Makefile --- a/jdk/make/sun/jkernel/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/jkernel/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../.. +MODULE = jkernel PACKAGE = sun.jkernel LIBRARY = jkernel PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/jpeg/Makefile --- a/jdk/make/sun/jpeg/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/jpeg/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../.. +MODULE = java2d PACKAGE = sun.awt LIBRARY = jpeg PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/launcher/Makefile --- a/jdk/make/sun/launcher/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/launcher/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../.. +MODULE = base PACKAGE = sun.launcher PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/management/Makefile --- a/jdk/make/sun/management/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/management/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,8 @@ # BUILDDIR = ../.. +MODULE = management + include $(BUILDDIR)/common/Defs.gmk MGMT_LIBDIR = $(LIBDIR)/management @@ -56,17 +58,17 @@ $(MGMT_LIBDIR)/management.properties: $(MGMT_LIB_SRC)/management.properties $(install-file) - $(CHMOD) 644 $@ + $(call chmod-file, 644) $(MGMT_LIBDIR)/snmp.acl.template: $(MGMT_LIB_SRC)/snmp.acl.template $(install-file) - $(CHMOD) 444 $@ + $(call chmod-file, 444) $(MGMT_LIBDIR)/jmxremote.password.template: $(MGMT_LIB_SRC)/jmxremote.password.template $(install-file) - $(CHMOD) 444 $@ + $(call chmod-file, 444) $(MGMT_LIBDIR)/jmxremote.access: $(MGMT_LIB_SRC)/jmxremote.access $(install-file) - $(CHMOD) 644 $@ + $(call chmod-file, 644) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/native2ascii/Makefile --- a/jdk/make/sun/native2ascii/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/native2ascii/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../.. +MODULE = tools PACKAGE = sun.tools.native2ascii PRODUCT = sun OTHER_JAVACFLAGS += -Xlint:serial -Werror diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/net/others/Makefile --- a/jdk/make/sun/net/others/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/net/others/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../../.. +MODULE = base PACKAGE = sun.net PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/net/spi/nameservice/dns/Makefile --- a/jdk/make/sun/net/spi/nameservice/dns/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/net/spi/nameservice/dns/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,9 @@ # BUILDDIR = ../../../../.. + +# dns should probably be its own module +MODULE = net-dns PACKAGE = sun.net.spi.nameservice.dns PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/nio/FILES_java.gmk --- a/jdk/make/sun/nio/FILES_java.gmk Thu Feb 04 15:50:59 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,400 +0,0 @@ -# -# Copyright 2005-2006 Sun Microsystems, Inc. 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. Sun designates this -# particular file as subject to the "Classpath" exception as provided -# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -# CA 95054 USA or visit www.sun.com if you need additional information or -# have any questions. -# - -# -# Character converters for lib/charsets.jar -# -# Core character converters are built from make/java/java. -# - -FILES_src = \ - sun/io/ByteToCharDoubleByte.java \ - sun/io/ByteToCharDBCS_ASCII.java \ - sun/io/ByteToCharDBCS_EBCDIC.java \ - sun/io/ByteToCharEUC.java \ - sun/io/CharToByteDoubleByte.java \ - sun/io/CharToByteDBCS_ASCII.java \ - sun/io/CharToByteDBCS_EBCDIC.java \ - sun/io/CharToByteEUC.java \ - sun/io/ByteToCharBig5.java \ - sun/io/ByteToCharBig5_Solaris.java \ - sun/io/ByteToCharBig5_HKSCS.java \ - sun/io/ByteToCharMS950_HKSCS.java \ - sun/io/ByteToCharHKSCS.java \ - sun/io/ByteToCharHKSCS_2001.java \ - sun/io/ByteToCharGB18030.java \ - sun/io/ByteToCharGB18030DB.java \ - sun/io/ByteToCharCp037.java \ - sun/io/ByteToCharCp1006.java \ - sun/io/ByteToCharCp1025.java \ - sun/io/ByteToCharCp1026.java \ - sun/io/ByteToCharCp1046.java \ - sun/io/ByteToCharCp1047.java \ - sun/io/ByteToCharCp1097.java \ - sun/io/ByteToCharCp1098.java \ - sun/io/ByteToCharCp1112.java \ - sun/io/ByteToCharCp1122.java \ - sun/io/ByteToCharCp1123.java \ - sun/io/ByteToCharCp1124.java \ - sun/io/ByteToCharCp1140.java \ - sun/io/ByteToCharCp1141.java \ - sun/io/ByteToCharCp1142.java \ - sun/io/ByteToCharCp1143.java \ - sun/io/ByteToCharCp1144.java \ - sun/io/ByteToCharCp1145.java \ - sun/io/ByteToCharCp1146.java \ - sun/io/ByteToCharCp1147.java \ - sun/io/ByteToCharCp1148.java \ - sun/io/ByteToCharCp1149.java \ - sun/io/ByteToCharCp1255.java \ - sun/io/ByteToCharCp1256.java \ - sun/io/ByteToCharCp1258.java \ - sun/io/ByteToCharCp1381.java \ - sun/io/ByteToCharCp1383.java \ - sun/io/ByteToCharCp273.java \ - sun/io/ByteToCharCp277.java \ - sun/io/ByteToCharCp278.java \ - sun/io/ByteToCharCp280.java \ - sun/io/ByteToCharCp284.java \ - sun/io/ByteToCharCp285.java \ - sun/io/ByteToCharCp297.java \ - sun/io/ByteToCharCp33722.java \ - sun/io/ByteToCharCp420.java \ - sun/io/ByteToCharCp424.java \ - sun/io/ByteToCharCp437.java \ - sun/io/ByteToCharCp500.java \ - sun/io/ByteToCharCp737.java \ - sun/io/ByteToCharCp775.java \ - sun/io/ByteToCharCp834.java \ - sun/io/ByteToCharCp838.java \ - sun/io/ByteToCharCp850.java \ - sun/io/ByteToCharCp852.java \ - sun/io/ByteToCharCp855.java \ - sun/io/ByteToCharCp856.java \ - sun/io/ByteToCharCp857.java \ - sun/io/ByteToCharCp858.java \ - sun/io/ByteToCharCp860.java \ - sun/io/ByteToCharCp861.java \ - sun/io/ByteToCharCp862.java \ - sun/io/ByteToCharCp863.java \ - sun/io/ByteToCharCp864.java \ - sun/io/ByteToCharCp865.java \ - sun/io/ByteToCharCp866.java \ - sun/io/ByteToCharCp868.java \ - sun/io/ByteToCharCp869.java \ - sun/io/ByteToCharCp870.java \ - sun/io/ByteToCharCp871.java \ - sun/io/ByteToCharCp874.java \ - sun/io/ByteToCharCp875.java \ - sun/io/ByteToCharCp918.java \ - sun/io/ByteToCharCp921.java \ - sun/io/ByteToCharCp922.java \ - sun/io/ByteToCharCp930.java \ - sun/io/ByteToCharCp933.java \ - sun/io/ByteToCharCp935.java \ - sun/io/ByteToCharCp937.java \ - sun/io/ByteToCharCp939.java \ - sun/io/ByteToCharCp942.java \ - sun/io/ByteToCharCp942C.java \ - sun/io/ByteToCharCp943.java \ - sun/io/ByteToCharCp943C.java \ - sun/io/ByteToCharCp948.java \ - sun/io/ByteToCharCp949.java \ - sun/io/ByteToCharCp949C.java \ - sun/io/ByteToCharCp950.java \ - sun/io/ByteToCharCp964.java \ - sun/io/ByteToCharCp970.java \ - sun/io/ByteToCharJIS0201.java \ - sun/io/ByteToCharJIS0208.java \ - sun/io/ByteToCharJIS0208_Solaris.java \ - sun/io/ByteToCharJIS0212.java \ - sun/io/ByteToCharJIS0212_Solaris.java \ - sun/io/ByteToCharEUC_CN.java \ - sun/io/ByteToCharEUC_JP.java \ - sun/io/ByteToCharEUC_JP_LINUX.java \ - sun/io/ByteToCharEUC_JP_Solaris.java \ - sun/io/ByteToCharEUC_KR.java \ - sun/io/ByteToCharEUC_TW.java \ - sun/io/ByteToCharSJIS.java \ - sun/io/ByteToCharPCK.java \ - sun/io/ByteToCharGBK.java \ - sun/io/ByteToCharISCII91.java \ - sun/io/ByteToCharISO2022.java \ - sun/io/ByteToCharISO2022CN.java \ - sun/io/ByteToCharISO2022JP.java \ - sun/io/ByteToCharISO2022KR.java \ - sun/io/ByteToCharISO8859_3.java \ - sun/io/ByteToCharISO8859_6.java \ - sun/io/ByteToCharISO8859_8.java \ - sun/io/ByteToCharJISAutoDetect.java \ - sun/io/ByteToCharJohab.java \ - sun/io/ByteToCharMS874.java \ - sun/io/ByteToCharMS932.java \ - sun/io/ByteToCharMS936.java \ - sun/io/ByteToCharMS949.java \ - sun/io/ByteToCharMS950.java \ - sun/io/ByteToCharMacArabic.java \ - sun/io/ByteToCharMacCentralEurope.java \ - sun/io/ByteToCharMacCroatian.java \ - sun/io/ByteToCharMacCyrillic.java \ - sun/io/ByteToCharMacDingbat.java \ - sun/io/ByteToCharMacGreek.java \ - sun/io/ByteToCharMacHebrew.java \ - sun/io/ByteToCharMacIceland.java \ - sun/io/ByteToCharMacRoman.java \ - sun/io/ByteToCharMacRomania.java \ - sun/io/ByteToCharMacSymbol.java \ - sun/io/ByteToCharMacThai.java \ - sun/io/ByteToCharMacTurkish.java \ - sun/io/ByteToCharMacUkraine.java \ - sun/io/ByteToCharTIS620.java \ - sun/io/CharToByteBig5.java \ - sun/io/CharToByteBig5_Solaris.java \ - sun/io/CharToByteBig5_HKSCS.java \ - sun/io/CharToByteHKSCS.java \ - sun/io/CharToByteHKSCS_2001.java \ - sun/io/CharToByteMS950_HKSCS.java \ - sun/io/CharToByteGB18030.java \ - sun/io/CharToByteCp037.java \ - sun/io/CharToByteCp1006.java \ - sun/io/CharToByteCp1025.java \ - sun/io/CharToByteCp1026.java \ - sun/io/CharToByteCp1046.java \ - sun/io/CharToByteCp1047.java \ - sun/io/CharToByteCp1097.java \ - sun/io/CharToByteCp1098.java \ - sun/io/CharToByteCp1112.java \ - sun/io/CharToByteCp1122.java \ - sun/io/CharToByteCp1123.java \ - sun/io/CharToByteCp1124.java \ - sun/io/CharToByteCp1140.java \ - sun/io/CharToByteCp1141.java \ - sun/io/CharToByteCp1142.java \ - sun/io/CharToByteCp1143.java \ - sun/io/CharToByteCp1144.java \ - sun/io/CharToByteCp1145.java \ - sun/io/CharToByteCp1146.java \ - sun/io/CharToByteCp1147.java \ - sun/io/CharToByteCp1148.java \ - sun/io/CharToByteCp1149.java \ - sun/io/CharToByteCp1255.java \ - sun/io/CharToByteCp1256.java \ - sun/io/CharToByteCp1258.java \ - sun/io/CharToByteCp1381.java \ - sun/io/CharToByteCp1383.java \ - sun/io/CharToByteCp273.java \ - sun/io/CharToByteCp277.java \ - sun/io/CharToByteCp278.java \ - sun/io/CharToByteCp280.java \ - sun/io/CharToByteCp284.java \ - sun/io/CharToByteCp285.java \ - sun/io/CharToByteCp297.java \ - sun/io/CharToByteCp33722.java \ - sun/io/CharToByteCp420.java \ - sun/io/CharToByteCp424.java \ - sun/io/CharToByteCp437.java \ - sun/io/CharToByteCp500.java \ - sun/io/CharToByteCp737.java \ - sun/io/CharToByteCp775.java \ - sun/io/CharToByteCp834.java \ - sun/io/CharToByteCp838.java \ - sun/io/CharToByteCp850.java \ - sun/io/CharToByteCp852.java \ - sun/io/CharToByteCp855.java \ - sun/io/CharToByteCp856.java \ - sun/io/CharToByteCp857.java \ - sun/io/CharToByteCp858.java \ - sun/io/CharToByteCp860.java \ - sun/io/CharToByteCp861.java \ - sun/io/CharToByteCp862.java \ - sun/io/CharToByteCp863.java \ - sun/io/CharToByteCp864.java \ - sun/io/CharToByteCp865.java \ - sun/io/CharToByteCp866.java \ - sun/io/CharToByteCp868.java \ - sun/io/CharToByteCp869.java \ - sun/io/CharToByteCp870.java \ - sun/io/CharToByteCp871.java \ - sun/io/CharToByteCp874.java \ - sun/io/CharToByteCp875.java \ - sun/io/CharToByteCp918.java \ - sun/io/CharToByteCp921.java \ - sun/io/CharToByteCp922.java \ - sun/io/CharToByteCp930.java \ - sun/io/CharToByteCp933.java \ - sun/io/CharToByteCp935.java \ - sun/io/CharToByteCp937.java \ - sun/io/CharToByteCp939.java \ - sun/io/CharToByteCp942.java \ - sun/io/CharToByteCp942C.java \ - sun/io/CharToByteCp943.java \ - sun/io/CharToByteCp943C.java \ - sun/io/CharToByteCp948.java \ - sun/io/CharToByteCp949.java \ - sun/io/CharToByteCp949C.java \ - sun/io/CharToByteCp950.java \ - sun/io/CharToByteCp964.java \ - sun/io/CharToByteCp970.java \ - sun/io/CharToByteJIS0201.java \ - sun/io/CharToByteJIS0208.java \ - sun/io/CharToByteJIS0208_Solaris.java \ - sun/io/CharToByteJIS0212.java \ - sun/io/CharToByteJIS0212_Solaris.java \ - sun/io/CharToByteEUC_CN.java \ - sun/io/CharToByteEUC_JP.java \ - sun/io/CharToByteEUC_JP_LINUX.java \ - sun/io/CharToByteEUC_JP_Solaris.java \ - sun/io/CharToByteEUC_KR.java \ - sun/io/CharToByteEUC_TW.java \ - sun/io/CharToByteSJIS.java \ - sun/io/CharToBytePCK.java \ - sun/io/CharToByteGBK.java \ - sun/io/CharToByteISCII91.java \ - sun/io/CharToByteISO2022.java \ - sun/io/CharToByteISO2022CN_CNS.java \ - sun/io/CharToByteISO2022CN_GB.java \ - sun/io/CharToByteISO2022JP.java \ - sun/io/CharToByteISO2022KR.java \ - sun/io/CharToByteISO8859_3.java \ - sun/io/CharToByteISO8859_6.java \ - sun/io/CharToByteISO8859_8.java \ - sun/io/CharToByteJohab.java \ - sun/io/CharToByteMS874.java \ - sun/io/CharToByteMS932.java \ - sun/io/CharToByteMS936.java \ - sun/io/CharToByteMS949.java \ - sun/io/CharToByteMS950.java \ - sun/io/CharToByteMacArabic.java \ - sun/io/CharToByteMacCentralEurope.java \ - sun/io/CharToByteMacCroatian.java \ - sun/io/CharToByteMacCyrillic.java \ - sun/io/CharToByteMacDingbat.java \ - sun/io/CharToByteMacGreek.java \ - sun/io/CharToByteMacHebrew.java \ - sun/io/CharToByteMacIceland.java \ - sun/io/CharToByteMacRoman.java \ - sun/io/CharToByteMacRomania.java \ - sun/io/CharToByteMacSymbol.java \ - sun/io/CharToByteMacThai.java \ - sun/io/CharToByteMacTurkish.java \ - sun/io/CharToByteMacUkraine.java \ - sun/io/CharToByteTIS620.java - -FILES_gen_extcs = \ - sun/nio/cs/ext/IBM037.java \ - sun/nio/cs/ext/IBM1006.java \ - sun/nio/cs/ext/IBM1025.java \ - sun/nio/cs/ext/IBM1026.java \ - sun/nio/cs/ext/IBM1046.java \ - sun/nio/cs/ext/IBM1047.java \ - sun/nio/cs/ext/IBM1097.java \ - sun/nio/cs/ext/IBM1098.java \ - sun/nio/cs/ext/IBM1112.java \ - sun/nio/cs/ext/IBM1122.java \ - sun/nio/cs/ext/IBM1123.java \ - sun/nio/cs/ext/IBM1124.java \ - sun/nio/cs/ext/IBM1140.java \ - sun/nio/cs/ext/IBM1141.java \ - sun/nio/cs/ext/IBM1142.java \ - sun/nio/cs/ext/IBM1143.java \ - sun/nio/cs/ext/IBM1144.java \ - sun/nio/cs/ext/IBM1145.java \ - sun/nio/cs/ext/IBM1146.java \ - sun/nio/cs/ext/IBM1147.java \ - sun/nio/cs/ext/IBM1148.java \ - sun/nio/cs/ext/IBM1149.java \ - sun/nio/cs/ext/IBM273.java \ - sun/nio/cs/ext/IBM277.java \ - sun/nio/cs/ext/IBM278.java \ - sun/nio/cs/ext/IBM280.java \ - sun/nio/cs/ext/IBM284.java \ - sun/nio/cs/ext/IBM285.java \ - sun/nio/cs/ext/IBM297.java \ - sun/nio/cs/ext/IBM420.java \ - sun/nio/cs/ext/IBM424.java \ - sun/nio/cs/ext/IBM500.java \ - sun/nio/cs/ext/IBM838.java \ - sun/nio/cs/ext/IBM856.java \ - sun/nio/cs/ext/IBM860.java \ - sun/nio/cs/ext/IBM861.java \ - sun/nio/cs/ext/IBM863.java \ - sun/nio/cs/ext/IBM864.java \ - sun/nio/cs/ext/IBM865.java \ - sun/nio/cs/ext/IBM868.java \ - sun/nio/cs/ext/IBM869.java \ - sun/nio/cs/ext/IBM870.java \ - sun/nio/cs/ext/IBM871.java \ - sun/nio/cs/ext/IBM875.java \ - sun/nio/cs/ext/IBM918.java \ - sun/nio/cs/ext/IBM921.java \ - sun/nio/cs/ext/IBM922.java \ - sun/nio/cs/ext/ISO_8859_11.java \ - sun/nio/cs/ext/ISO_8859_3.java \ - sun/nio/cs/ext/ISO_8859_6.java \ - sun/nio/cs/ext/ISO_8859_8.java \ - sun/nio/cs/ext/MS1255.java \ - sun/nio/cs/ext/MS1256.java \ - sun/nio/cs/ext/MS1258.java \ - sun/nio/cs/ext/MS874.java \ - sun/nio/cs/ext/MacArabic.java \ - sun/nio/cs/ext/MacCentralEurope.java \ - sun/nio/cs/ext/MacCroatian.java \ - sun/nio/cs/ext/MacCyrillic.java \ - sun/nio/cs/ext/MacDingbat.java \ - sun/nio/cs/ext/MacGreek.java \ - sun/nio/cs/ext/MacHebrew.java \ - sun/nio/cs/ext/MacIceland.java \ - sun/nio/cs/ext/MacRoman.java \ - sun/nio/cs/ext/MacRomania.java \ - sun/nio/cs/ext/MacSymbol.java \ - sun/nio/cs/ext/MacThai.java \ - sun/nio/cs/ext/MacTurkish.java \ - sun/nio/cs/ext/MacUkraine.java \ - sun/nio/cs/ext/TIS_620.java \ - sun/nio/cs/ext/EUC_TWMapping.java \ - sun/nio/cs/ext/IBM1381.java \ - sun/nio/cs/ext/IBM1383.java \ - sun/nio/cs/ext/IBM930.java \ - sun/nio/cs/ext/IBM933.java \ - sun/nio/cs/ext/IBM935.java \ - sun/nio/cs/ext/IBM937.java \ - sun/nio/cs/ext/IBM939.java \ - sun/nio/cs/ext/IBM942.java \ - sun/nio/cs/ext/IBM943.java \ - sun/nio/cs/ext/IBM948.java \ - sun/nio/cs/ext/IBM949.java \ - sun/nio/cs/ext/IBM950.java \ - sun/nio/cs/ext/IBM970.java \ - sun/nio/cs/ext/EUC_CN.java \ - sun/nio/cs/ext/EUC_KR.java \ - sun/nio/cs/ext/Johab.java \ - sun/nio/cs/ext/MS932.java \ - sun/nio/cs/ext/MS936.java \ - sun/nio/cs/ext/MS949.java \ - sun/nio/cs/ext/MS950.java \ - sun/nio/cs/ext/GBK.java - -FILES_java = $(FILES_src) $(FILES_gen_extcs) - diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/nio/Makefile --- a/jdk/make/sun/nio/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/nio/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -1,5 +1,5 @@ # -# Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2009 Sun Microsystems, Inc. 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 @@ -23,88 +23,12 @@ # have any questions. # -# -# Makefile for character converters. -# - BUILDDIR = ../.. - PACKAGE = sun.nio PRODUCT = sun - -# This re-directs all the class files to a separate location -CLASSDESTDIR = $(TEMPDIR)/classes - -OTHER_JAVACFLAGS += -Xlint:serial -Werror include $(BUILDDIR)/common/Defs.gmk -# -# Files -# -include FILES_java.gmk -AUTO_FILES_JAVA_DIRS = sun/nio/cs/ext - -# For Cygwin, command line arguments that are paths must be converted to -# windows style paths. These paths cannot be used as targets, however, because -# the ":" in them will interfere with GNU Make rules, generating "multiple -# target pattern" errors. - -# this define is for the rule: -CHARSETS_JAR = $(LIBDIR)/charsets.jar - -# extcs -FILES_genout_extcs = $(FILES_gen_extcs:%.java=$(GENSRCDIR)/%.java) - -# -# Rules -# -include $(BUILDDIR)/common/Classes.gmk - -build: $(FILES_genout_extcs) $(CHARSETS_JAR) - -# -# Extra rules to build character converters. - -SERVICE_DESCRIPTION = java.nio.charset.spi.CharsetProvider -SERVICE_DESCRIPTION_PATH = META-INF/services/$(SERVICE_DESCRIPTION) - -GENCSDATASRC = $(BUILDDIR)/tools/CharsetMapping -GENCSSRCDIR = $(BUILDDIR)/tools/src/build/tools/charsetmapping -GENCSEXT = $(GENSRCDIR)/sun/nio/cs/ext +SUBDIRS = cs +all build clean clobber:: + $(SUBDIRS-loop) -FILES_MAP = $(GENCSDATASRC)/sjis0213.map -FILES_DAT = $(CLASSDESTDIR)/sun/nio/cs/ext/sjis0213.dat -CHARSETMAPPING_JARFILE = $(BUILDTOOLJARDIR)/charsetmapping.jar - -$(FILES_DAT): $(FILES_MAP) - @$(prep-target) - $(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) \ - $(FILES_MAP) $(FILES_DAT) sjis0213 - - -$(FILES_genout_extcs): \ - $(GENCSDATASRC)/SingleByte-X.java.template \ - $(GENCSDATASRC)/DoubleByte-X.java.template \ - $(GENCSDATASRC)/extsbcs $(GENCSDATASRC)/dbcs - @$(prep-target) - $(RM) -r $(GENCSEXT) - $(MKDIR) -p $(GENCSEXT) - $(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) $(GENCSDATASRC) $(GENCSEXT) extsbcs - $(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) $(GENCSDATASRC) $(GENCSEXT) euctw \ - $(GENCSSRCDIR)/GenerateEUC_TW.java - $(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) $(GENCSDATASRC) $(GENCSEXT) dbcs - -$(CLASSDESTDIR)/$(SERVICE_DESCRIPTION_PATH): \ - $(SHARE_SRC)/classes/sun/nio/cs/ext/$(SERVICE_DESCRIPTION_PATH) - $(install-file) - -$(CHARSETS_JAR): $(FILES_class) $(CLASSDESTDIR)/$(SERVICE_DESCRIPTION_PATH) $(FILES_DAT) - $(BOOT_JAR_CMD) cf0 $(CHARSETS_JAR) \ - -C $(CLASSDESTDIR) sun \ - -C $(CLASSDESTDIR) $(SERVICE_DESCRIPTION_PATH) \ - $(BOOT_JAR_JFLAGS) - @$(java-vm-cleanup) - -clean:: - $(RM) -r $(CLASSDESTDIR) - $(RM) $(CHARSETS_JAR) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/nio/cs/FILES_java.gmk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/make/sun/nio/cs/FILES_java.gmk Fri Feb 05 12:26:35 2010 -0800 @@ -0,0 +1,400 @@ +# +# Copyright 2005-2006 Sun Microsystems, Inc. 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. Sun designates this +# particular file as subject to the "Classpath" exception as provided +# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +# CA 95054 USA or visit www.sun.com if you need additional information or +# have any questions. +# + +# +# Character converters for lib/charsets.jar +# +# Core character converters are built from make/java/java. +# + +FILES_src = \ + sun/io/ByteToCharDoubleByte.java \ + sun/io/ByteToCharDBCS_ASCII.java \ + sun/io/ByteToCharDBCS_EBCDIC.java \ + sun/io/ByteToCharEUC.java \ + sun/io/CharToByteDoubleByte.java \ + sun/io/CharToByteDBCS_ASCII.java \ + sun/io/CharToByteDBCS_EBCDIC.java \ + sun/io/CharToByteEUC.java \ + sun/io/ByteToCharBig5.java \ + sun/io/ByteToCharBig5_Solaris.java \ + sun/io/ByteToCharBig5_HKSCS.java \ + sun/io/ByteToCharMS950_HKSCS.java \ + sun/io/ByteToCharHKSCS.java \ + sun/io/ByteToCharHKSCS_2001.java \ + sun/io/ByteToCharGB18030.java \ + sun/io/ByteToCharGB18030DB.java \ + sun/io/ByteToCharCp037.java \ + sun/io/ByteToCharCp1006.java \ + sun/io/ByteToCharCp1025.java \ + sun/io/ByteToCharCp1026.java \ + sun/io/ByteToCharCp1046.java \ + sun/io/ByteToCharCp1047.java \ + sun/io/ByteToCharCp1097.java \ + sun/io/ByteToCharCp1098.java \ + sun/io/ByteToCharCp1112.java \ + sun/io/ByteToCharCp1122.java \ + sun/io/ByteToCharCp1123.java \ + sun/io/ByteToCharCp1124.java \ + sun/io/ByteToCharCp1140.java \ + sun/io/ByteToCharCp1141.java \ + sun/io/ByteToCharCp1142.java \ + sun/io/ByteToCharCp1143.java \ + sun/io/ByteToCharCp1144.java \ + sun/io/ByteToCharCp1145.java \ + sun/io/ByteToCharCp1146.java \ + sun/io/ByteToCharCp1147.java \ + sun/io/ByteToCharCp1148.java \ + sun/io/ByteToCharCp1149.java \ + sun/io/ByteToCharCp1255.java \ + sun/io/ByteToCharCp1256.java \ + sun/io/ByteToCharCp1258.java \ + sun/io/ByteToCharCp1381.java \ + sun/io/ByteToCharCp1383.java \ + sun/io/ByteToCharCp273.java \ + sun/io/ByteToCharCp277.java \ + sun/io/ByteToCharCp278.java \ + sun/io/ByteToCharCp280.java \ + sun/io/ByteToCharCp284.java \ + sun/io/ByteToCharCp285.java \ + sun/io/ByteToCharCp297.java \ + sun/io/ByteToCharCp33722.java \ + sun/io/ByteToCharCp420.java \ + sun/io/ByteToCharCp424.java \ + sun/io/ByteToCharCp437.java \ + sun/io/ByteToCharCp500.java \ + sun/io/ByteToCharCp737.java \ + sun/io/ByteToCharCp775.java \ + sun/io/ByteToCharCp834.java \ + sun/io/ByteToCharCp838.java \ + sun/io/ByteToCharCp850.java \ + sun/io/ByteToCharCp852.java \ + sun/io/ByteToCharCp855.java \ + sun/io/ByteToCharCp856.java \ + sun/io/ByteToCharCp857.java \ + sun/io/ByteToCharCp858.java \ + sun/io/ByteToCharCp860.java \ + sun/io/ByteToCharCp861.java \ + sun/io/ByteToCharCp862.java \ + sun/io/ByteToCharCp863.java \ + sun/io/ByteToCharCp864.java \ + sun/io/ByteToCharCp865.java \ + sun/io/ByteToCharCp866.java \ + sun/io/ByteToCharCp868.java \ + sun/io/ByteToCharCp869.java \ + sun/io/ByteToCharCp870.java \ + sun/io/ByteToCharCp871.java \ + sun/io/ByteToCharCp874.java \ + sun/io/ByteToCharCp875.java \ + sun/io/ByteToCharCp918.java \ + sun/io/ByteToCharCp921.java \ + sun/io/ByteToCharCp922.java \ + sun/io/ByteToCharCp930.java \ + sun/io/ByteToCharCp933.java \ + sun/io/ByteToCharCp935.java \ + sun/io/ByteToCharCp937.java \ + sun/io/ByteToCharCp939.java \ + sun/io/ByteToCharCp942.java \ + sun/io/ByteToCharCp942C.java \ + sun/io/ByteToCharCp943.java \ + sun/io/ByteToCharCp943C.java \ + sun/io/ByteToCharCp948.java \ + sun/io/ByteToCharCp949.java \ + sun/io/ByteToCharCp949C.java \ + sun/io/ByteToCharCp950.java \ + sun/io/ByteToCharCp964.java \ + sun/io/ByteToCharCp970.java \ + sun/io/ByteToCharJIS0201.java \ + sun/io/ByteToCharJIS0208.java \ + sun/io/ByteToCharJIS0208_Solaris.java \ + sun/io/ByteToCharJIS0212.java \ + sun/io/ByteToCharJIS0212_Solaris.java \ + sun/io/ByteToCharEUC_CN.java \ + sun/io/ByteToCharEUC_JP.java \ + sun/io/ByteToCharEUC_JP_LINUX.java \ + sun/io/ByteToCharEUC_JP_Solaris.java \ + sun/io/ByteToCharEUC_KR.java \ + sun/io/ByteToCharEUC_TW.java \ + sun/io/ByteToCharSJIS.java \ + sun/io/ByteToCharPCK.java \ + sun/io/ByteToCharGBK.java \ + sun/io/ByteToCharISCII91.java \ + sun/io/ByteToCharISO2022.java \ + sun/io/ByteToCharISO2022CN.java \ + sun/io/ByteToCharISO2022JP.java \ + sun/io/ByteToCharISO2022KR.java \ + sun/io/ByteToCharISO8859_3.java \ + sun/io/ByteToCharISO8859_6.java \ + sun/io/ByteToCharISO8859_8.java \ + sun/io/ByteToCharJISAutoDetect.java \ + sun/io/ByteToCharJohab.java \ + sun/io/ByteToCharMS874.java \ + sun/io/ByteToCharMS932.java \ + sun/io/ByteToCharMS936.java \ + sun/io/ByteToCharMS949.java \ + sun/io/ByteToCharMS950.java \ + sun/io/ByteToCharMacArabic.java \ + sun/io/ByteToCharMacCentralEurope.java \ + sun/io/ByteToCharMacCroatian.java \ + sun/io/ByteToCharMacCyrillic.java \ + sun/io/ByteToCharMacDingbat.java \ + sun/io/ByteToCharMacGreek.java \ + sun/io/ByteToCharMacHebrew.java \ + sun/io/ByteToCharMacIceland.java \ + sun/io/ByteToCharMacRoman.java \ + sun/io/ByteToCharMacRomania.java \ + sun/io/ByteToCharMacSymbol.java \ + sun/io/ByteToCharMacThai.java \ + sun/io/ByteToCharMacTurkish.java \ + sun/io/ByteToCharMacUkraine.java \ + sun/io/ByteToCharTIS620.java \ + sun/io/CharToByteBig5.java \ + sun/io/CharToByteBig5_Solaris.java \ + sun/io/CharToByteBig5_HKSCS.java \ + sun/io/CharToByteHKSCS.java \ + sun/io/CharToByteHKSCS_2001.java \ + sun/io/CharToByteMS950_HKSCS.java \ + sun/io/CharToByteGB18030.java \ + sun/io/CharToByteCp037.java \ + sun/io/CharToByteCp1006.java \ + sun/io/CharToByteCp1025.java \ + sun/io/CharToByteCp1026.java \ + sun/io/CharToByteCp1046.java \ + sun/io/CharToByteCp1047.java \ + sun/io/CharToByteCp1097.java \ + sun/io/CharToByteCp1098.java \ + sun/io/CharToByteCp1112.java \ + sun/io/CharToByteCp1122.java \ + sun/io/CharToByteCp1123.java \ + sun/io/CharToByteCp1124.java \ + sun/io/CharToByteCp1140.java \ + sun/io/CharToByteCp1141.java \ + sun/io/CharToByteCp1142.java \ + sun/io/CharToByteCp1143.java \ + sun/io/CharToByteCp1144.java \ + sun/io/CharToByteCp1145.java \ + sun/io/CharToByteCp1146.java \ + sun/io/CharToByteCp1147.java \ + sun/io/CharToByteCp1148.java \ + sun/io/CharToByteCp1149.java \ + sun/io/CharToByteCp1255.java \ + sun/io/CharToByteCp1256.java \ + sun/io/CharToByteCp1258.java \ + sun/io/CharToByteCp1381.java \ + sun/io/CharToByteCp1383.java \ + sun/io/CharToByteCp273.java \ + sun/io/CharToByteCp277.java \ + sun/io/CharToByteCp278.java \ + sun/io/CharToByteCp280.java \ + sun/io/CharToByteCp284.java \ + sun/io/CharToByteCp285.java \ + sun/io/CharToByteCp297.java \ + sun/io/CharToByteCp33722.java \ + sun/io/CharToByteCp420.java \ + sun/io/CharToByteCp424.java \ + sun/io/CharToByteCp437.java \ + sun/io/CharToByteCp500.java \ + sun/io/CharToByteCp737.java \ + sun/io/CharToByteCp775.java \ + sun/io/CharToByteCp834.java \ + sun/io/CharToByteCp838.java \ + sun/io/CharToByteCp850.java \ + sun/io/CharToByteCp852.java \ + sun/io/CharToByteCp855.java \ + sun/io/CharToByteCp856.java \ + sun/io/CharToByteCp857.java \ + sun/io/CharToByteCp858.java \ + sun/io/CharToByteCp860.java \ + sun/io/CharToByteCp861.java \ + sun/io/CharToByteCp862.java \ + sun/io/CharToByteCp863.java \ + sun/io/CharToByteCp864.java \ + sun/io/CharToByteCp865.java \ + sun/io/CharToByteCp866.java \ + sun/io/CharToByteCp868.java \ + sun/io/CharToByteCp869.java \ + sun/io/CharToByteCp870.java \ + sun/io/CharToByteCp871.java \ + sun/io/CharToByteCp874.java \ + sun/io/CharToByteCp875.java \ + sun/io/CharToByteCp918.java \ + sun/io/CharToByteCp921.java \ + sun/io/CharToByteCp922.java \ + sun/io/CharToByteCp930.java \ + sun/io/CharToByteCp933.java \ + sun/io/CharToByteCp935.java \ + sun/io/CharToByteCp937.java \ + sun/io/CharToByteCp939.java \ + sun/io/CharToByteCp942.java \ + sun/io/CharToByteCp942C.java \ + sun/io/CharToByteCp943.java \ + sun/io/CharToByteCp943C.java \ + sun/io/CharToByteCp948.java \ + sun/io/CharToByteCp949.java \ + sun/io/CharToByteCp949C.java \ + sun/io/CharToByteCp950.java \ + sun/io/CharToByteCp964.java \ + sun/io/CharToByteCp970.java \ + sun/io/CharToByteJIS0201.java \ + sun/io/CharToByteJIS0208.java \ + sun/io/CharToByteJIS0208_Solaris.java \ + sun/io/CharToByteJIS0212.java \ + sun/io/CharToByteJIS0212_Solaris.java \ + sun/io/CharToByteEUC_CN.java \ + sun/io/CharToByteEUC_JP.java \ + sun/io/CharToByteEUC_JP_LINUX.java \ + sun/io/CharToByteEUC_JP_Solaris.java \ + sun/io/CharToByteEUC_KR.java \ + sun/io/CharToByteEUC_TW.java \ + sun/io/CharToByteSJIS.java \ + sun/io/CharToBytePCK.java \ + sun/io/CharToByteGBK.java \ + sun/io/CharToByteISCII91.java \ + sun/io/CharToByteISO2022.java \ + sun/io/CharToByteISO2022CN_CNS.java \ + sun/io/CharToByteISO2022CN_GB.java \ + sun/io/CharToByteISO2022JP.java \ + sun/io/CharToByteISO2022KR.java \ + sun/io/CharToByteISO8859_3.java \ + sun/io/CharToByteISO8859_6.java \ + sun/io/CharToByteISO8859_8.java \ + sun/io/CharToByteJohab.java \ + sun/io/CharToByteMS874.java \ + sun/io/CharToByteMS932.java \ + sun/io/CharToByteMS936.java \ + sun/io/CharToByteMS949.java \ + sun/io/CharToByteMS950.java \ + sun/io/CharToByteMacArabic.java \ + sun/io/CharToByteMacCentralEurope.java \ + sun/io/CharToByteMacCroatian.java \ + sun/io/CharToByteMacCyrillic.java \ + sun/io/CharToByteMacDingbat.java \ + sun/io/CharToByteMacGreek.java \ + sun/io/CharToByteMacHebrew.java \ + sun/io/CharToByteMacIceland.java \ + sun/io/CharToByteMacRoman.java \ + sun/io/CharToByteMacRomania.java \ + sun/io/CharToByteMacSymbol.java \ + sun/io/CharToByteMacThai.java \ + sun/io/CharToByteMacTurkish.java \ + sun/io/CharToByteMacUkraine.java \ + sun/io/CharToByteTIS620.java + +FILES_gen_extcs = \ + sun/nio/cs/ext/IBM037.java \ + sun/nio/cs/ext/IBM1006.java \ + sun/nio/cs/ext/IBM1025.java \ + sun/nio/cs/ext/IBM1026.java \ + sun/nio/cs/ext/IBM1046.java \ + sun/nio/cs/ext/IBM1047.java \ + sun/nio/cs/ext/IBM1097.java \ + sun/nio/cs/ext/IBM1098.java \ + sun/nio/cs/ext/IBM1112.java \ + sun/nio/cs/ext/IBM1122.java \ + sun/nio/cs/ext/IBM1123.java \ + sun/nio/cs/ext/IBM1124.java \ + sun/nio/cs/ext/IBM1140.java \ + sun/nio/cs/ext/IBM1141.java \ + sun/nio/cs/ext/IBM1142.java \ + sun/nio/cs/ext/IBM1143.java \ + sun/nio/cs/ext/IBM1144.java \ + sun/nio/cs/ext/IBM1145.java \ + sun/nio/cs/ext/IBM1146.java \ + sun/nio/cs/ext/IBM1147.java \ + sun/nio/cs/ext/IBM1148.java \ + sun/nio/cs/ext/IBM1149.java \ + sun/nio/cs/ext/IBM273.java \ + sun/nio/cs/ext/IBM277.java \ + sun/nio/cs/ext/IBM278.java \ + sun/nio/cs/ext/IBM280.java \ + sun/nio/cs/ext/IBM284.java \ + sun/nio/cs/ext/IBM285.java \ + sun/nio/cs/ext/IBM297.java \ + sun/nio/cs/ext/IBM420.java \ + sun/nio/cs/ext/IBM424.java \ + sun/nio/cs/ext/IBM500.java \ + sun/nio/cs/ext/IBM838.java \ + sun/nio/cs/ext/IBM856.java \ + sun/nio/cs/ext/IBM860.java \ + sun/nio/cs/ext/IBM861.java \ + sun/nio/cs/ext/IBM863.java \ + sun/nio/cs/ext/IBM864.java \ + sun/nio/cs/ext/IBM865.java \ + sun/nio/cs/ext/IBM868.java \ + sun/nio/cs/ext/IBM869.java \ + sun/nio/cs/ext/IBM870.java \ + sun/nio/cs/ext/IBM871.java \ + sun/nio/cs/ext/IBM875.java \ + sun/nio/cs/ext/IBM918.java \ + sun/nio/cs/ext/IBM921.java \ + sun/nio/cs/ext/IBM922.java \ + sun/nio/cs/ext/ISO_8859_11.java \ + sun/nio/cs/ext/ISO_8859_3.java \ + sun/nio/cs/ext/ISO_8859_6.java \ + sun/nio/cs/ext/ISO_8859_8.java \ + sun/nio/cs/ext/MS1255.java \ + sun/nio/cs/ext/MS1256.java \ + sun/nio/cs/ext/MS1258.java \ + sun/nio/cs/ext/MS874.java \ + sun/nio/cs/ext/MacArabic.java \ + sun/nio/cs/ext/MacCentralEurope.java \ + sun/nio/cs/ext/MacCroatian.java \ + sun/nio/cs/ext/MacCyrillic.java \ + sun/nio/cs/ext/MacDingbat.java \ + sun/nio/cs/ext/MacGreek.java \ + sun/nio/cs/ext/MacHebrew.java \ + sun/nio/cs/ext/MacIceland.java \ + sun/nio/cs/ext/MacRoman.java \ + sun/nio/cs/ext/MacRomania.java \ + sun/nio/cs/ext/MacSymbol.java \ + sun/nio/cs/ext/MacThai.java \ + sun/nio/cs/ext/MacTurkish.java \ + sun/nio/cs/ext/MacUkraine.java \ + sun/nio/cs/ext/TIS_620.java \ + sun/nio/cs/ext/EUC_TWMapping.java \ + sun/nio/cs/ext/IBM1381.java \ + sun/nio/cs/ext/IBM1383.java \ + sun/nio/cs/ext/IBM930.java \ + sun/nio/cs/ext/IBM933.java \ + sun/nio/cs/ext/IBM935.java \ + sun/nio/cs/ext/IBM937.java \ + sun/nio/cs/ext/IBM939.java \ + sun/nio/cs/ext/IBM942.java \ + sun/nio/cs/ext/IBM943.java \ + sun/nio/cs/ext/IBM948.java \ + sun/nio/cs/ext/IBM949.java \ + sun/nio/cs/ext/IBM950.java \ + sun/nio/cs/ext/IBM970.java \ + sun/nio/cs/ext/EUC_CN.java \ + sun/nio/cs/ext/EUC_KR.java \ + sun/nio/cs/ext/Johab.java \ + sun/nio/cs/ext/MS932.java \ + sun/nio/cs/ext/MS936.java \ + sun/nio/cs/ext/MS949.java \ + sun/nio/cs/ext/MS950.java \ + sun/nio/cs/ext/GBK.java + +FILES_java = $(FILES_src) $(FILES_gen_extcs) + diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/nio/cs/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/make/sun/nio/cs/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -0,0 +1,112 @@ +# +# Copyright 1996-2008 Sun Microsystems, Inc. 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. Sun designates this +# particular file as subject to the "Classpath" exception as provided +# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +# CA 95054 USA or visit www.sun.com if you need additional information or +# have any questions. +# + +# +# Makefile for character converters. +# + +BUILDDIR = ../../.. + +# charsets should be separated from nio module +MODULE = charsets +PACKAGE = sun.nio +PRODUCT = sun + +# This re-directs all the class files to a separate location +CLASSDESTDIR = $(TEMPDIR)/classes + +OTHER_JAVACFLAGS += -Xlint:serial -Werror +include $(BUILDDIR)/common/Defs.gmk + +# +# Files +# +include FILES_java.gmk +AUTO_FILES_JAVA_DIRS = sun/nio/cs/ext + +# For Cygwin, command line arguments that are paths must be converted to +# windows style paths. These paths cannot be used as targets, however, because +# the ":" in them will interfere with GNU Make rules, generating "multiple +# target pattern" errors. + +# this define is for the rule: +CHARSETS_JAR = $(LIBDIR)/charsets.jar + +# extcs +FILES_genout_extcs = $(FILES_gen_extcs:%.java=$(GENSRCDIR)/%.java) + +# +# Rules +# +include $(BUILDDIR)/common/Classes.gmk + +build: $(FILES_genout_extcs) $(CHARSETS_JAR) + +# +# Extra rules to build character converters. + +SERVICE_DESCRIPTION = java.nio.charset.spi.CharsetProvider +SERVICE_DESCRIPTION_PATH = META-INF/services/$(SERVICE_DESCRIPTION) + +GENCSDATASRC = $(BUILDDIR)/tools/CharsetMapping +GENCSSRCDIR = $(BUILDDIR)/tools/src/build/tools/charsetmapping +GENCSEXT = $(GENSRCDIR)/sun/nio/cs/ext + +FILES_MAP = $(GENCSDATASRC)/sjis0213.map +FILES_DAT = $(CLASSDESTDIR)/sun/nio/cs/ext/sjis0213.dat +CHARSETMAPPING_JARFILE = $(BUILDTOOLJARDIR)/charsetmapping.jar + +$(FILES_DAT): $(FILES_MAP) + @$(prep-target) + $(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) \ + $(FILES_MAP) $(FILES_DAT) sjis0213 + + +$(FILES_genout_extcs): \ + $(GENCSDATASRC)/SingleByte-X.java.template \ + $(GENCSDATASRC)/DoubleByte-X.java.template \ + $(GENCSDATASRC)/extsbcs $(GENCSDATASRC)/dbcs + @$(prep-target) + $(RM) -r $(GENCSEXT) + $(MKDIR) -p $(GENCSEXT) + $(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) $(GENCSDATASRC) $(GENCSEXT) extsbcs + $(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) $(GENCSDATASRC) $(GENCSEXT) euctw \ + $(GENCSSRCDIR)/GenerateEUC_TW.java + $(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) $(GENCSDATASRC) $(GENCSEXT) dbcs + +$(CLASSDESTDIR)/$(SERVICE_DESCRIPTION_PATH): \ + $(SHARE_SRC)/classes/sun/nio/cs/ext/$(SERVICE_DESCRIPTION_PATH) + $(install-file) + +$(CHARSETS_JAR): $(FILES_class) $(CLASSDESTDIR)/$(SERVICE_DESCRIPTION_PATH) $(FILES_DAT) + $(BOOT_JAR_CMD) cf0 $(CHARSETS_JAR) \ + -C $(CLASSDESTDIR) sun \ + -C $(CLASSDESTDIR) $(SERVICE_DESCRIPTION_PATH) \ + $(BOOT_JAR_JFLAGS) + @$(java-vm-cleanup) + +clean:: + $(RM) -r $(CLASSDESTDIR) + $(RM) $(CHARSETS_JAR) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/org/mozilla/javascript/Makefile --- a/jdk/make/sun/org/mozilla/javascript/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/org/mozilla/javascript/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../../../.. +MODULE = scripting-rhino PACKAGE = sun.org.mozilla.javascript.internal PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/pisces/Makefile --- a/jdk/make/sun/pisces/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/pisces/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../.. +MODULE = java2d PACKAGE = sun.pisces PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/rmi/cgi/Makefile --- a/jdk/make/sun/rmi/cgi/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/rmi/cgi/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,8 @@ # BUILDDIR = ../../.. +# java-rmi.cgi is a JDK tool +MODULE = tools PACKAGE = sun.rmi PRODUCT = sun PROGRAM = java-rmi diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/rmi/oldtools/Makefile --- a/jdk/make/sun/rmi/oldtools/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/rmi/oldtools/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../../.. +MODULE = oldjavac PRODUCT = oldjavac include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/rmi/registry/Makefile --- a/jdk/make/sun/rmi/registry/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/rmi/registry/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../../.. +MODULE = rmi PACKAGE = sun.rmi.registry PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk @@ -48,3 +49,7 @@ # include $(BUILDDIR)/common/Classes.gmk +build: rmiregistry + +rmiregistry: + $(call make-launcher, rmiregistry, sun.rmi.registry.RegistryImpl, , ) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/rmi/rmi/Makefile --- a/jdk/make/sun/rmi/rmi/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/rmi/rmi/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../../.. +MODULE = rmi PACKAGE = sun.rmi PRODUCT = sun LIBRARY = rmi @@ -124,7 +125,7 @@ $(BINDIR)/java-rmi.cgi: $(PLATFORM_SRC)/bin/java-rmi.cgi.sh $(install-file) - $(CHMOD) a+x $@ + $(call chmod-file, a+x) bin.clean: $(RM) $(BINDIR)/java-rmi.cgi diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/rmi/rmic/Makefile --- a/jdk/make/sun/rmi/rmic/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/rmi/rmic/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../../.. +MODULE = rmic PACKAGE = sun.rmi.rmic PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/rmi/rmid/Makefile --- a/jdk/make/sun/rmi/rmid/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/rmi/rmid/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -29,11 +29,12 @@ # BUILDDIR = ../../.. +MODULE = rmi-activation PACKAGE = sun.rmi.activation PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk -build: stubs +build: stubs rmid # # Resources @@ -75,4 +76,5 @@ # include $(BUILDDIR)/common/Classes.gmk - +rmid: + $(call make-launcher, rmid, sun.rmi.server.Activation, , ) diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/security/ec/Makefile --- a/jdk/make/sun/security/ec/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/security/ec/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -89,6 +89,7 @@ # BUILDDIR = ../../.. +MODULE = security-sunec PACKAGE = sun.security.ec PRODUCT = sun @@ -308,7 +309,7 @@ else $(JAR_DESTFILE): $(SIGNED_DIR)/sunec.jar endif - $(install-file) + $(install-non-module-file) ifndef OPENJDK install-prebuilt: diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/security/jgss/wrapper/Makefile --- a/jdk/make/sun/security/jgss/wrapper/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/security/jgss/wrapper/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../../../.. +MODULE = security-kerberos PACKAGE = sun.security.jgss.wrapper PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/security/krb5/Makefile --- a/jdk/make/sun/security/krb5/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/security/krb5/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../../.. +MODULE = security-kerberos PACKAGE = sun.security.krb5 PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk @@ -77,3 +78,10 @@ else OTHER_LDLIBS = -ldl $(JVMLIB) endif + +build: +ifeq ($(PLATFORM),windows) + $(call make-launcher, kinit, sun.security.krb5.internal.tools.Kinit, , ) + $(call make-launcher, klist, sun.security.krb5.internal.tools.Klist, , ) + $(call make-launcher, ktab, sun.security.krb5.internal.tools.Ktab, , ) +endif diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/security/mscapi/Makefile --- a/jdk/make/sun/security/mscapi/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/security/mscapi/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -89,6 +89,7 @@ # BUILDDIR = ../../.. +MODULE = security-sunmscapi PACKAGE = sun.security.mscapi LIBRARY = sunmscapi PRODUCT = sun @@ -271,7 +272,7 @@ else $(JAR_DESTFILE): $(SIGNED_DIR)/sunmscapi.jar endif - $(install-file) + $(install-non-module-file) ifndef OPENJDK install-prebuilt: diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/security/pkcs11/Makefile --- a/jdk/make/sun/security/pkcs11/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/security/pkcs11/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -89,6 +89,7 @@ # BUILDDIR = ../../.. +MODULE = security-sunpkcs11 PACKAGE = sun.security.pkcs11 LIBRARY = j2pkcs11 PRODUCT = sun @@ -161,6 +162,16 @@ OTHER_LDLIBS = -ldl $(JVMLIB) endif +# Other config files +SUNPKCS11_CFG = + +ifeq ($(PLATFORM), solaris) +SUNPKCS11_CFG = sunpkcs11-cfg +endif # PLATFORM + +SUNPKCS11_CFG_SRC = $(TOPDIR)/src/share/lib/security/sunpkcs11-solaris.cfg +SUNPKCS11_CFG_BUILD = $(LIBDIR)/security/sunpkcs11-solaris.cfg + # # We use a variety of subdirectories in the $(TEMPDIR) depending on what # part of the build we're doing. Both OPENJDK/JDK builds are initially @@ -174,12 +185,17 @@ # ifdef OPENJDK -all: build-jar install-jar +all: $(SUNPKCS11_CFG) build-jar install-jar else -all: build-jar install-prebuilt +all: $(SUNPKCS11_CFG) build-jar install-prebuilt $(build-warning) endif +sunpkcs11-cfg: $(SUNPKCS11_CFG_BUILD) + +$(SUNPKCS11_CFG_BUILD): $(SUNPKCS11_CFG_SRC) + $(install-file) + include $(BUILDDIR)/javax/crypto/Defs-jce.gmk @@ -271,7 +287,7 @@ else $(JAR_DESTFILE): $(SIGNED_DIR)/sunpkcs11.jar endif - $(install-file) + $(install-non-module-file) ifndef OPENJDK install-prebuilt: @@ -287,6 +303,7 @@ clobber clean:: $(RM) -r $(JAR_DESTFILE) $(TEMPDIR) $(JCE_BUILD_DIR) + $(RM) $(SUNPKCS11_CFG_BUILD) .PHONY: build-jar jar install-jar ifndef OPENJDK diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/security/smartcardio/Makefile --- a/jdk/make/sun/security/smartcardio/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/security/smartcardio/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../../.. +MODULE = security-smartcardio PACKAGE = sun.security.smartcardio LIBRARY = j2pcsc PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/security/tools/Makefile --- a/jdk/make/sun/security/tools/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/security/tools/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../../.. +MODULE = security-tools PACKAGE = sun.security.tools PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk @@ -44,3 +45,7 @@ # include $(BUILDDIR)/common/Classes.gmk +build: + $(call make-launcher, keytool, sun.security.tools.KeyTool, , ) + $(call make-launcher, policytool, sun.security.tools.PolicyTool, , ) + diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/serialver/Makefile --- a/jdk/make/sun/serialver/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/serialver/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../.. +MODULE = serialver PACKAGE = sun.tools.serialver PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/splashscreen/Makefile --- a/jdk/make/sun/splashscreen/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/splashscreen/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../.. +MODULE = awt PACKAGE = sun.awt LIBRARY = splashscreen PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/text/Makefile --- a/jdk/make/sun/text/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/text/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -29,6 +29,7 @@ BUILDDIR = ../.. +MODULE = localedata PACKAGE = sun.text PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/tools/Makefile --- a/jdk/make/sun/tools/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/tools/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -28,6 +28,7 @@ # BUILDDIR = ../.. +MODULE = tools PACKAGE = sun.tools PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/tracing/dtrace/Makefile --- a/jdk/make/sun/tracing/dtrace/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/tracing/dtrace/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -27,6 +27,7 @@ # Makefile for building dtrace extension # BUILDDIR = ../../.. +MODULE = tracing PACKAGE = sun.tracing.dtrace LIBRARY = jsdt PRODUCT = sun diff -r d15bb22d4d39 -r 415e6de72568 jdk/make/sun/xawt/Makefile --- a/jdk/make/sun/xawt/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/make/sun/xawt/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ # BUILDDIR = ../.. +MODULE = awt PACKAGE = sun.awt.X11 LIBRARY = mawt LIBRARY_OUTPUT = xawt diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/share/classes/java/lang/Deprecated.java --- a/jdk/src/share/classes/java/lang/Deprecated.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/src/share/classes/java/lang/Deprecated.java Fri Feb 05 12:26:35 2010 -0800 @@ -26,6 +26,7 @@ package java.lang; import java.lang.annotation.*; +import static java.lang.annotation.ElementType.*; /** * A program element annotated @Deprecated is one that programmers @@ -38,5 +39,6 @@ */ @Documented @Retention(RetentionPolicy.RUNTIME) +@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE}) public @interface Deprecated { } diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/share/classes/java/lang/Error.java --- a/jdk/src/share/classes/java/lang/Error.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/src/share/classes/java/lang/Error.java Fri Feb 05 12:26:35 2010 -0800 @@ -26,27 +26,31 @@ package java.lang; /** - * An Error is a subclass of Throwable + * An {@code Error} is a subclass of {@code Throwable} * that indicates serious problems that a reasonable application * should not try to catch. Most such errors are abnormal conditions. - * The ThreadDeath error, though a "normal" condition, - * is also a subclass of Error because most applications + * The {@code ThreadDeath} error, though a "normal" condition, + * is also a subclass of {@code Error} because most applications * should not try to catch it. *

- * A method is not required to declare in its throws - * clause any subclasses of Error that might be thrown + * A method is not required to declare in its {@code throws} + * clause any subclasses of {@code Error} that might be thrown * during the execution of the method but not caught, since these * errors are abnormal conditions that should never occur. * + * That is, {@code Error} and its subclasses are regarded as unchecked + * exceptions for the purposes of compile-time checking of exceptions. + * * @author Frank Yellin * @see java.lang.ThreadDeath + * @jls3 11.2 Compile-Time Checking of Exceptions * @since JDK1.0 */ public class Error extends Throwable { static final long serialVersionUID = 4980196508277280342L; /** - * Constructs a new error with null as its detail message. + * Constructs a new error with {@code null} as its detail message. * The cause is not initialized, and may subsequently be initialized by a * call to {@link #initCause}. */ @@ -69,7 +73,7 @@ /** * Constructs a new error with the specified detail message and * cause.

Note that the detail message associated with - * cause is not automatically incorporated in + * {@code cause} is not automatically incorporated in * this error's detail message. * * @param message the detail message (which is saved for later retrieval diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/share/classes/java/lang/Exception.java --- a/jdk/src/share/classes/java/lang/Exception.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/src/share/classes/java/lang/Exception.java Fri Feb 05 12:26:35 2010 -0800 @@ -26,19 +26,27 @@ package java.lang; /** - * The class Exception and its subclasses are a form of - * Throwable that indicates conditions that a reasonable + * The class {@code Exception} and its subclasses are a form of + * {@code Throwable} that indicates conditions that a reasonable * application might want to catch. * + *

The class {@code Exception} and any subclasses that are not also + * subclasses of {@link RuntimeException} are checked + * exceptions. Checked exceptions need to be declared in a + * method or constructor's {@code throws} clause if they can be thrown + * by the execution of the method or constructor and propagate outside + * the method or constructor boundary. + * * @author Frank Yellin * @see java.lang.Error + * @jls3 11.2 Compile-Time Checking of Exceptions * @since JDK1.0 */ public class Exception extends Throwable { static final long serialVersionUID = -3387516993124229948L; /** - * Constructs a new exception with null as its detail message. + * Constructs a new exception with {@code null} as its detail message. * The cause is not initialized, and may subsequently be initialized by a * call to {@link #initCause}. */ @@ -61,7 +69,7 @@ /** * Constructs a new exception with the specified detail message and * cause.

Note that the detail message associated with - * cause is not automatically incorporated in + * {@code cause} is not automatically incorporated in * this exception's detail message. * * @param message the detail message (which is saved for later retrieval diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/share/classes/java/lang/RuntimeException.java --- a/jdk/src/share/classes/java/lang/RuntimeException.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/src/share/classes/java/lang/RuntimeException.java Fri Feb 05 12:26:35 2010 -0800 @@ -26,22 +26,24 @@ package java.lang; /** - * RuntimeException is the superclass of those + * {@code RuntimeException} is the superclass of those * exceptions that can be thrown during the normal operation of the * Java Virtual Machine. - *

- * A method is not required to declare in its throws - * clause any subclasses of RuntimeException that might - * be thrown during the execution of the method but not caught. * + *

{@code RuntimeException} and its subclasses are unchecked + * exceptions. Unchecked exceptions do not need to be + * declared in a method or constructor's {@code throws} clause if they + * can be thrown by the execution of the method or constructor and + * propagate outside the method or constructor boundary. * * @author Frank Yellin + * @jls3 11.2 Compile-Time Checking of Exceptions * @since JDK1.0 */ public class RuntimeException extends Exception { static final long serialVersionUID = -7034897190745766939L; - /** Constructs a new runtime exception with null as its + /** Constructs a new runtime exception with {@code null} as its * detail message. The cause is not initialized, and may subsequently be * initialized by a call to {@link #initCause}. */ @@ -63,7 +65,7 @@ /** * Constructs a new runtime exception with the specified detail message and * cause.

Note that the detail message associated with - * cause is not automatically incorporated in + * {@code cause} is not automatically incorporated in * this runtime exception's detail message. * * @param message the detail message (which is saved for later retrieval diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/share/classes/java/lang/SuppressWarnings.java --- a/jdk/src/share/classes/java/lang/SuppressWarnings.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/src/share/classes/java/lang/SuppressWarnings.java Fri Feb 05 12:26:35 2010 -0800 @@ -26,7 +26,6 @@ package java.lang; import java.lang.annotation.*; -import java.lang.annotation.ElementType; import static java.lang.annotation.ElementType.*; /** @@ -45,7 +44,7 @@ * @since 1.5 * @author Josh Bloch */ -@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE}) +@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE, TYPE_PARAMETER}) @Retention(RetentionPolicy.SOURCE) public @interface SuppressWarnings { /** diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/share/classes/java/lang/Throwable.java --- a/jdk/src/share/classes/java/lang/Throwable.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/src/share/classes/java/lang/Throwable.java Fri Feb 05 12:26:35 2010 -0800 @@ -34,6 +34,11 @@ * this class or one of its subclasses can be the argument type in a * catch clause. * + * For the purposes of compile-time checking of exceptions, {@code + * Throwable} and any subclass of {@code Throwable} that is not also a + * subclass of either {@link RuntimeException} or {@link Error} are + * regarded as checked exceptions. + * *

Instances of two subclasses, {@link java.lang.Error} and * {@link java.lang.Exception}, are conventionally used to indicate * that exceptional situations have occurred. Typically, these instances @@ -142,6 +147,7 @@ * @author unascribed * @author Josh Bloch (Added exception chaining and programmatic access to * stack trace in 1.4.) + * @jls3 11.2 Compile-Time Checking of Exceptions * @since JDK1.0 */ public class Throwable implements Serializable { diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/share/classes/java/util/NavigableMap.java --- a/jdk/src/share/classes/java/util/NavigableMap.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/src/share/classes/java/util/NavigableMap.java Fri Feb 05 12:26:35 2010 -0800 @@ -298,7 +298,7 @@ * Returns a view of the portion of this map whose keys range from * {@code fromKey} to {@code toKey}. If {@code fromKey} and * {@code toKey} are equal, the returned map is empty unless - * {@code fromExclusive} and {@code toExclusive} are both true. The + * {@code fromInclusive} and {@code toInclusive} are both true. The * returned map is backed by this map, so changes in the returned map are * reflected in this map, and vice-versa. The returned map supports all * optional map operations that this map supports. diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/share/classes/java/util/NavigableSet.java --- a/jdk/src/share/classes/java/util/NavigableSet.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/src/share/classes/java/util/NavigableSet.java Fri Feb 05 12:26:35 2010 -0800 @@ -192,7 +192,7 @@ * Returns a view of the portion of this set whose elements range from * {@code fromElement} to {@code toElement}. If {@code fromElement} and * {@code toElement} are equal, the returned set is empty unless {@code - * fromExclusive} and {@code toExclusive} are both true. The returned set + * fromInclusive} and {@code toInclusive} are both true. The returned set * is backed by this set, so changes in the returned set are reflected in * this set, and vice-versa. The returned set supports all optional set * operations that this set supports. diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/share/classes/sun/nio/fs/AbstractPath.java --- a/jdk/src/share/classes/sun/nio/fs/AbstractPath.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/src/share/classes/sun/nio/fs/AbstractPath.java Fri Feb 05 12:26:35 2010 -0800 @@ -256,8 +256,8 @@ } if (option == null) throw new NullPointerException(); - throw new IllegalArgumentException("'" + option + - "' is not a valid copy option"); + throw new UnsupportedOperationException("'" + option + + "' is not a recognized copy option"); } return result; } @@ -279,9 +279,21 @@ if (attrs.isSymbolicLink()) throw new IOException("Copying of symbolic links not supported"); - // delete target file - if (opts.replaceExisting) - target.deleteIfExists(); + // check if target exists + boolean exists; + if (opts.replaceExisting) { + try { + target.deleteIfExists(); + exists = false; + } catch (DirectoryNotEmptyException x) { + // let exception translate to FileAlreadyExistsException (6895012) + exists = true; + } + } else { + exists = target.exists(); + } + if (exists) + throw new FileAlreadyExistsException(target.toString()); // create directory or file if (attrs.isDirectory()) { @@ -318,7 +330,7 @@ ReadableByteChannel rbc = newByteChannel(); try { // open target file for writing - SeekableByteChannel sbc = target.newByteChannel(CREATE, WRITE); + SeekableByteChannel sbc = target.newByteChannel(CREATE_NEW, WRITE); // simple copy loop try { diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/share/classes/sun/nio/fs/AbstractWatchKey.java --- a/jdk/src/share/classes/sun/nio/fs/AbstractWatchKey.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/src/share/classes/sun/nio/fs/AbstractWatchKey.java Fri Feb 05 12:26:35 2010 -0800 @@ -88,26 +88,24 @@ final void signalEvent(WatchEvent.Kind kind, Object context) { synchronized (this) { int size = events.size(); - if (size > 1) { - // don't let list get too big - if (size >= MAX_EVENT_LIST_SIZE) { - kind = StandardWatchEventKind.OVERFLOW; - context = null; + if (size > 0) { + // if the previous event is an OVERFLOW event or this is a + // repeated event then we simply increment the counter + WatchEvent prev = events.get(size-1); + if ((prev.kind() == StandardWatchEventKind.OVERFLOW) || + ((kind == prev.kind() && + Objects.equals(context, prev.context())))) + { + ((Event)prev).increment(); + return; } - // repeated event - WatchEvent prev = events.get(size-1); - if (kind == prev.kind()) { - boolean isRepeat; - if (context == null) { - isRepeat = (prev.context() == null); - } else { - isRepeat = context.equals(prev.context()); - } - if (isRepeat) { - ((Event)prev).increment(); - return; - } + // if the list has reached the limit then drop pending events + // and queue an OVERFLOW event + if (size >= MAX_EVENT_LIST_SIZE) { + events.clear(); + kind = StandardWatchEventKind.OVERFLOW; + context = null; } } diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTabEntry.java --- a/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTabEntry.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTabEntry.java Fri Feb 05 12:26:35 2010 -0800 @@ -75,7 +75,7 @@ public String getKeyString() { StringBuffer sb = new StringBuffer("0x"); for (int i = 0; i < keyblock.length; i++) { - sb.append(Integer.toHexString(keyblock[i]&0xff)); + sb.append(String.format("%02x", keyblock[i]&0xff)); } return sb.toString(); } diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/share/classes/sun/security/provider/certpath/OCSPResponse.java --- a/jdk/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Fri Feb 05 12:26:35 2010 -0800 @@ -574,10 +574,18 @@ (singleExtDer.length); for (int i = 0; i < singleExtDer.length; i++) { Extension ext = new Extension(singleExtDer[i]); - singleExtensions.put(ext.getId(), ext); if (DEBUG != null) { DEBUG.println("OCSP single extension: " + ext); } + // We don't support any extensions yet. Therefore, if it + // is critical we must throw an exception because we + // don't know how to process it. + if (ext.isCritical()) { + throw new IOException( + "Unsupported OCSP critical extension: " + + ext.getExtensionId()); + } + singleExtensions.put(ext.getId(), ext); } } else { singleExtensions = Collections.emptyMap(); diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/solaris/classes/sun/nio/ch/SctpChannelImpl.java --- a/jdk/src/solaris/classes/sun/nio/ch/SctpChannelImpl.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/src/solaris/classes/sun/nio/ch/SctpChannelImpl.java Fri Feb 05 12:26:35 2010 -0800 @@ -38,7 +38,6 @@ import java.nio.channels.ClosedChannelException; import java.nio.channels.ConnectionPendingException; import java.nio.channels.NoConnectionPendingException; -import java.nio.channels.AlreadyBoundException; import java.nio.channels.AlreadyConnectedException; import java.nio.channels.NotYetBoundException; import java.nio.channels.NotYetConnectedException; @@ -54,7 +53,6 @@ import com.sun.nio.sctp.NotificationHandler; import com.sun.nio.sctp.SctpChannel; import com.sun.nio.sctp.SctpSocketOption; -import sun.nio.ch.NativeDispatcher; import sun.nio.ch.PollArrayWrapper; import sun.nio.ch.SelChImpl; import static com.sun.nio.sctp.SctpStandardSocketOption.*; @@ -69,9 +67,6 @@ public class SctpChannelImpl extends SctpChannel implements SelChImpl { - /* Used to make native close and preClose calls */ - private static NativeDispatcher nd; - private final FileDescriptor fd; private final int fdVal; @@ -182,7 +177,7 @@ synchronized (stateLock) { ensureOpenAndUnconnected(); if (isBound()) - throw new AlreadyBoundException(); + SctpNet.throwAlreadyBoundException(); InetSocketAddress isa = (local == null) ? new InetSocketAddress(0) : Net.checkAddress(local); Net.bind(fd, isa.getAddress(), isa.getPort()); @@ -234,7 +229,7 @@ if (add) { for (InetSocketAddress addr : localAddresses) { if (addr.getAddress().equals(address)) { - throw new AlreadyBoundException(); + SctpNet.throwAlreadyBoundException(); } } } else { /*removing */ @@ -370,7 +365,7 @@ InetAddress ia = isa.getAddress(); if (ia.isAnyLocalAddress()) ia = InetAddress.getLocalHost(); - n = Net.connect(fd, ia, isa.getPort()); + n = SctpNet.connect(fdVal, ia, isa.getPort()); if ( (n == IOStatus.INTERRUPTED) && isOpen()) continue; @@ -556,7 +551,7 @@ @Override public void implCloseSelectableChannel() throws IOException { synchronized (stateLock) { - nd.preClose(fd); + SctpNet.preClose(fdVal); if (receiverThread != 0) NativeThread.signal(receiverThread); @@ -662,7 +657,7 @@ /* Postpone the kill if there is a waiting reader * or writer thread. */ if (receiverThread == 0 && senderThread == 0) { - nd.close(fd); + SctpNet.close(fdVal); state = ChannelState.KILLED; } else { state = ChannelState.KILLPENDING; @@ -874,8 +869,8 @@ public HandlerResult handleNotification( AssociationChangeNotification not, T unused) { if (not.event().equals( - AssociationChangeNotification.AssocChangeEvent.COMM_UP)) { - assert association == null; + AssociationChangeNotification.AssocChangeEvent.COMM_UP) && + association == null) { SctpAssocChange sac = (SctpAssocChange) not; association = new SctpAssociationImpl (sac.assocId(), sac.maxInStreams(), sac.maxOutStreams()); @@ -987,17 +982,17 @@ SocketAddress target = messageInfo.address(); boolean unordered = messageInfo.isUnordered(); int ppid = messageInfo.payloadProtocolID(); - int pos = src.position(); - int lim = src.limit(); - - assert (pos <= lim && streamNumber >= 0); - int rem = (pos <= lim ? lim - pos : 0); if (src instanceof DirectBuffer) - return sendFromNativeBuffer(fd, src, rem, pos, target, streamNumber, + return sendFromNativeBuffer(fd, src, target, streamNumber, unordered, ppid); /* Substitute a native buffer */ + int pos = src.position(); + int lim = src.limit(); + assert (pos <= lim && streamNumber >= 0); + + int rem = (pos <= lim ? lim - pos : 0); ByteBuffer bb = Util.getTemporaryDirectBuffer(rem); try { bb.put(src); @@ -1005,7 +1000,7 @@ /* Do not update src until we see how many bytes were written */ src.position(pos); - int n = sendFromNativeBuffer(fd, bb, rem, pos, target, streamNumber, + int n = sendFromNativeBuffer(fd, bb, target, streamNumber, unordered, ppid); if (n > 0) { /* now update src */ @@ -1019,13 +1014,16 @@ private int sendFromNativeBuffer(int fd, ByteBuffer bb, - int rem, - int pos, SocketAddress target, int streamNumber, boolean unordered, int ppid) throws IOException { + int pos = bb.position(); + int lim = bb.limit(); + assert (pos <= lim); + int rem = (pos <= lim ? lim - pos : 0); + int written = send0(fd, ((DirectBuffer)bb).address() + pos, rem, target, -1 /*121*/, streamNumber, unordered, ppid); if (written > 0) @@ -1097,6 +1095,5 @@ java.security.AccessController.doPrivileged( new sun.security.action.LoadLibraryAction("sctp")); initIDs(); - nd = new SctpSocketDispatcher(); } } diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/solaris/classes/sun/nio/ch/SctpMultiChannelImpl.java --- a/jdk/src/solaris/classes/sun/nio/ch/SctpMultiChannelImpl.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/src/solaris/classes/sun/nio/ch/SctpMultiChannelImpl.java Fri Feb 05 12:26:35 2010 -0800 @@ -38,7 +38,6 @@ import java.util.HashMap; import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; -import java.nio.channels.AlreadyBoundException; import java.nio.channels.ClosedChannelException; import java.nio.channels.NotYetBoundException; import java.nio.channels.spi.SelectorProvider; @@ -63,9 +62,6 @@ public class SctpMultiChannelImpl extends SctpMultiChannel implements SelChImpl { - /* Used to make native close and preClose calls */ - private static NativeDispatcher nd; - private final FileDescriptor fd; private final int fdVal; @@ -140,7 +136,7 @@ synchronized (stateLock) { ensureOpen(); if (isBound()) - throw new AlreadyBoundException(); + SctpNet.throwAlreadyBoundException(); InetSocketAddress isa = (local == null) ? new InetSocketAddress(0) : Net.checkAddress(local); @@ -155,7 +151,7 @@ if (isa.getAddress().isAnyLocalAddress()) wildcard = true; - Net.listen(fd, backlog < 1 ? 50 : backlog); + SctpNet.listen(fdVal, backlog < 1 ? 50 : backlog); } } } @@ -196,7 +192,7 @@ if (add) { for (InetSocketAddress addr : localAddresses) { if (addr.getAddress().equals(address)) { - throw new AlreadyBoundException(); + SctpNet.throwAlreadyBoundException(); } } } else { /*removing */ @@ -284,7 +280,7 @@ @Override public void implCloseSelectableChannel() throws IOException { synchronized (stateLock) { - nd.preClose(fd); + SctpNet.preClose(fdVal); if (receiverThread != 0) NativeThread.signal(receiverThread); @@ -375,7 +371,7 @@ /* Postpone the kill if there is a thread sending or receiving. */ if (receiverThread == 0 && senderThread == 0) { - nd.close(fd); + SctpNet.close(fdVal); state = ChannelState.KILLED; } else { state = ChannelState.KILLPENDING; @@ -846,16 +842,17 @@ int streamNumber = messageInfo.streamNumber(); boolean unordered = messageInfo.isUnordered(); int ppid = messageInfo.payloadProtocolID(); + + if (src instanceof DirectBuffer) + return sendFromNativeBuffer(fd, src, target, assocId, + streamNumber, unordered, ppid); + + /* Substitute a native buffer */ int pos = src.position(); int lim = src.limit(); assert (pos <= lim && streamNumber >= 0); + int rem = (pos <= lim ? lim - pos : 0); - - if (src instanceof DirectBuffer) - return sendFromNativeBuffer(fd, src, rem, pos, target, assocId, - streamNumber, unordered, ppid); - - /* Substitute a native buffer */ ByteBuffer bb = Util.getTemporaryDirectBuffer(rem); try { bb.put(src); @@ -863,7 +860,7 @@ /* Do not update src until we see how many bytes were written */ src.position(pos); - int n = sendFromNativeBuffer(fd, bb, rem, pos, target, assocId, + int n = sendFromNativeBuffer(fd, bb, target, assocId, streamNumber, unordered, ppid); if (n > 0) { /* now update src */ @@ -877,14 +874,17 @@ private int sendFromNativeBuffer(int fd, ByteBuffer bb, - int rem, - int pos, SocketAddress target, int assocId, int streamNumber, boolean unordered, int ppid) throws IOException { + int pos = bb.position(); + int lim = bb.limit(); + assert (pos <= lim); + int rem = (pos <= lim ? lim - pos : 0); + int written = send0(fd, ((DirectBuffer)bb).address() + pos, rem, target, assocId, streamNumber, unordered, ppid); if (written > 0) @@ -981,6 +981,5 @@ Util.load(); /* loads nio & net native libraries */ java.security.AccessController.doPrivileged( new sun.security.action.LoadLibraryAction("sctp")); - nd = new SctpSocketDispatcher(); } } diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/solaris/classes/sun/nio/ch/SctpNet.java --- a/jdk/src/solaris/classes/sun/nio/ch/SctpNet.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/src/solaris/classes/sun/nio/ch/SctpNet.java Fri Feb 05 12:26:35 2010 -0800 @@ -29,6 +29,7 @@ import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.SocketAddress; +import java.nio.channels.AlreadyBoundException; import java.util.Set; import java.util.HashSet; import java.security.AccessController; @@ -52,8 +53,29 @@ return false; } + static boolean throwAlreadyBoundException() throws IOException { + throw new AlreadyBoundException(); + } + + static void listen(int fd, int backlog) throws IOException { + listen0(fd, backlog); + } + + static int connect(int fd, InetAddress remote, int remotePort) + throws IOException { + return connect0(fd, remote, remotePort); + } + + static void close(int fd) throws IOException { + close0(fd); + } + + static void preClose(int fd) throws IOException { + preClose0(fd); + } + /** - * @param oneToone + * @param oneToOne * if {@code true} returns a one-to-one sctp socket, otherwise * returns a one-to-many sctp socket */ @@ -240,6 +262,15 @@ /* Native Methods */ static native int socket0(boolean oneToOne) throws IOException; + static native void listen0(int fd, int backlog) throws IOException; + + static native int connect0(int fd, InetAddress remote, int remotePort) + throws IOException; + + static native void close0(int fd) throws IOException; + + static native void preClose0(int fd) throws IOException; + static native void bindx(int fd, InetAddress[] addrs, int port, int length, boolean add, boolean preferIPv6) throws IOException; @@ -271,5 +302,11 @@ throws IOException; static native void shutdown0(int fd, int assocId); + + static native void init(); + + static { + init(); + } } diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/solaris/classes/sun/nio/ch/SctpServerChannelImpl.java --- a/jdk/src/solaris/classes/sun/nio/ch/SctpServerChannelImpl.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/src/solaris/classes/sun/nio/ch/SctpServerChannelImpl.java Fri Feb 05 12:26:35 2010 -0800 @@ -33,7 +33,6 @@ import java.util.Set; import java.util.HashSet; import java.nio.channels.SelectionKey; -import java.nio.channels.AlreadyBoundException; import java.nio.channels.ClosedChannelException; import java.nio.channels.NotYetBoundException; import java.nio.channels.spi.SelectorProvider; @@ -49,9 +48,6 @@ public class SctpServerChannelImpl extends SctpServerChannel implements SelChImpl { - /* Used to make native close and preClose calls */ - private static NativeDispatcher nd; - private final FileDescriptor fd; private final int fdVal; @@ -103,7 +99,7 @@ if (!isOpen()) throw new ClosedChannelException(); if (isBound()) - throw new AlreadyBoundException(); + SctpNet.throwAlreadyBoundException(); InetSocketAddress isa = (local == null) ? new InetSocketAddress(0) : Net.checkAddress(local); @@ -118,7 +114,7 @@ if (isa.getAddress().isAnyLocalAddress()) wildcard = true; - Net.listen(fd, backlog < 1 ? 50 : backlog); + SctpNet.listen(fdVal, backlog < 1 ? 50 : backlog); } } return this; @@ -156,7 +152,7 @@ if (add) { for (InetSocketAddress addr : localAddresses) { if (addr.getAddress().equals(address)) { - throw new AlreadyBoundException(); + SctpNet.throwAlreadyBoundException(); } } } else { /*removing */ @@ -261,7 +257,7 @@ @Override public void implCloseSelectableChannel() throws IOException { synchronized (stateLock) { - nd.preClose(fd); + SctpNet.preClose(fdVal); if (thread != 0) NativeThread.signal(thread); if (!isRegistered()) @@ -282,7 +278,7 @@ // Postpone the kill if there is a thread in accept if (thread == 0) { - nd.close(fd); + SctpNet.close(fdVal); state = ChannelState.KILLED; } else { state = ChannelState.KILLPENDING; @@ -423,7 +419,6 @@ Util.load(); // loads nio & net native libraries java.security.AccessController.doPrivileged( new sun.security.action.LoadLibraryAction("sctp")); - nd = new SctpSocketDispatcher(); initIDs(); } } diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/solaris/classes/sun/nio/ch/SctpSocketDispatcher.java --- a/jdk/src/solaris/classes/sun/nio/ch/SctpSocketDispatcher.java Thu Feb 04 15:50:59 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -/* - * Copyright 2009 Sun Microsystems, Inc. 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. Sun designates this - * particular file as subject to the "Classpath" exception as provided - * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. - */ -package sun.nio.ch; - -import java.io.IOException; -import java.io.FileDescriptor; - -/** - * Only used for {@code close} and {@code preclose}. All other methods - * throw {@code IOException}. - */ -class SctpSocketDispatcher extends NativeDispatcher { - @Override - @SuppressWarnings("unused") - int read(FileDescriptor fd, long address, int len) throws IOException { - throw new IOException("Operation Unsupported"); - } - - @Override - @SuppressWarnings("unused") - long readv(FileDescriptor fd, long address, int len) throws IOException { - throw new IOException("Operation Unsupported"); - } - - @Override - @SuppressWarnings("unused") - int write(FileDescriptor fd, long address, int len) throws IOException { - throw new IOException("Operation Unsupported"); - } - - @Override - @SuppressWarnings("unused") - long writev(FileDescriptor fd, long address, int len) throws IOException { - throw new IOException("Operation Unsupported"); - } - - @Override - void close(FileDescriptor fd) throws IOException { - FileDispatcherImpl.close0(fd); - } - - @Override - void preClose(FileDescriptor fd) throws IOException { - FileDispatcherImpl.preClose0(fd); - } -} diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/solaris/native/sun/nio/ch/SctpNet.c --- a/jdk/src/solaris/native/sun/nio/ch/SctpNet.c Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/src/solaris/native/sun/nio/ch/SctpNet.c Fri Feb 05 12:26:35 2010 -0800 @@ -48,6 +48,9 @@ return JNI_VERSION_1_2; } +static int preCloseFD = -1; /* File descriptor to which we dup other fd's + before closing them for real */ + /** * Loads the native sctp library that contains the socket extension * functions, as well as locating the individual functions. @@ -107,6 +110,55 @@ return JNI_TRUE; } +jint +handleSocketError(JNIEnv *env, jint errorValue) +{ + char *xn; + switch (errorValue) { + case EINPROGRESS: /* Non-blocking connect */ + return 0; + case EPROTO: + xn= JNU_JAVANETPKG "ProtocolException"; + break; + case ECONNREFUSED: + xn = JNU_JAVANETPKG "ConnectException"; + break; + case ETIMEDOUT: + xn = JNU_JAVANETPKG "ConnectException"; + break; + case EHOSTUNREACH: + xn = JNU_JAVANETPKG "NoRouteToHostException"; + break; + case EADDRINUSE: /* Fall through */ + case EADDRNOTAVAIL: + xn = JNU_JAVANETPKG "BindException"; + break; + default: + xn = JNU_JAVANETPKG "SocketException"; + break; + } + errno = errorValue; + JNU_ThrowByNameWithLastError(env, xn, "NioSocketError"); + return IOS_THROWN; +} + +/* + * Class: sun_nio_ch_SctpNet + * Method: init + * Signature: ()V + */ +JNIEXPORT void JNICALL +Java_sun_nio_ch_SctpNet_init + (JNIEnv *env, jclass cl) { + int sp[2]; + if (socketpair(PF_UNIX, SOCK_STREAM, 0, sp) < 0) { + JNU_ThrowIOExceptionWithLastError(env, "socketpair failed"); + return; + } + preCloseFD = sp[0]; + close(sp[1]); +} + /* * Class: sun_nio_ch_SctpNet * Method: socket0 @@ -184,6 +236,76 @@ free(sap); } +/* + * Class: sun_nio_ch_SctpNet + * Method: listen0 + * Signature: (II)V + */ +JNIEXPORT void JNICALL +Java_sun_nio_ch_SctpNet_listen0 + (JNIEnv *env, jclass cl, jint fd, jint backlog) { + if (listen(fd, backlog) < 0) + handleSocketError(env, errno); +} + +/* + * Class: sun_nio_ch_SctpNet + * Method: connect0 + * Signature: (ILjava/net/InetAddress;I)I + */ +JNIEXPORT jint JNICALL +Java_sun_nio_ch_SctpNet_connect0 + (JNIEnv *env, jclass clazz, int fd, jobject iao, jint port) { + SOCKADDR sa; + int sa_len = SOCKADDR_LEN; + int rv; + + if (NET_InetAddressToSockaddr(env, iao, port, (struct sockaddr *) &sa, + &sa_len, JNI_TRUE) != 0) { + return IOS_THROWN; + } + + rv = connect(fd, (struct sockaddr *)&sa, sa_len); + if (rv != 0) { + if (errno == EINPROGRESS) { + return IOS_UNAVAILABLE; + } else if (errno == EINTR) { + return IOS_INTERRUPTED; + } + return handleSocketError(env, errno); + } + return 1; +} + +/* + * Class: sun_nio_ch_SctpNet + * Method: close0 + * Signature: (I)V + */ +JNIEXPORT void JNICALL +Java_sun_nio_ch_SctpNet_close0 + (JNIEnv *env, jclass clazz, jint fd) { + if (fd != -1) { + int rv = close(fd); + if (rv < 0) + JNU_ThrowIOExceptionWithLastError(env, "Close failed"); + } +} + +/* + * Class: sun_nio_ch_SctpNet + * Method: preClose0 + * Signature: (I)V + */ +JNIEXPORT void JNICALL +Java_sun_nio_ch_SctpNet_preClose0 + (JNIEnv *env, jclass clazz, jint fd) { + if (preCloseFD >= 0) { + if (dup2(preCloseFD, fd) < 0) + JNU_ThrowIOExceptionWithLastError(env, "dup2 failed"); + } +} + void initializeISA (JNIEnv* env) { if (isaCls == 0) { @@ -394,7 +516,7 @@ arglen = sizeof(arg); } - if (setsockopt(fd, klevel, kopt, parg, arglen) < 0) { + if (NET_SetSockOpt(fd, klevel, kopt, parg, arglen) < 0) { JNU_ThrowByNameWithLastError(env, JNU_JAVANETPKG "SocketException", "sun_nio_ch_SctpNet.setIntOption0"); } @@ -427,7 +549,7 @@ arglen = sizeof(result); } - if (getsockopt(fd, klevel, kopt, arg, &arglen) < 0) { + if (NET_GetSockOpt(fd, klevel, kopt, arg, &arglen) < 0) { JNU_ThrowByNameWithLastError(env, JNU_JAVANETPKG "SocketException", "sun.nio.ch.Net.getIntOption"); return -1; diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java --- a/jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java Fri Feb 05 12:26:35 2010 -0800 @@ -445,20 +445,17 @@ // allocate OVERLAPPED overlapped = ioCache.add(result); - // synchronize on result to allow this thread handle the case - // where the read completes immediately. - synchronized (result) { - n = readFile(handle, address, rem, position, overlapped); - if (n == IOStatus.UNAVAILABLE) { - // I/O is pending - return; - } - // read completed immediately: - // 1. update buffer position - // 2. release waiters - updatePosition(n); + // initiate read + n = readFile(handle, address, rem, position, overlapped); + if (n == IOStatus.UNAVAILABLE) { + // I/O is pending + return; + } else if (n == IOStatus.EOF) { result.setResult(n); + } else { + throw new InternalError("Unexpected result: " + n); } + } catch (Throwable x) { // failed to initiate read result.setFailure(toIOException(x)); @@ -466,12 +463,9 @@ end(); } - // read failed or EOF so completion port will not be notified - if (n < 0 && overlapped != 0L) { + // release resources + if (overlapped != 0L) ioCache.remove(overlapped); - } - - // return direct buffer to cache if substituted releaseBufferIfSubstituted(); // invoke completion handler @@ -634,20 +628,15 @@ // allocate an OVERLAPPED structure overlapped = ioCache.add(result); - // synchronize on result to allow this thread handle the case - // where the read completes immediately. - synchronized (result) { - n = writeFile(handle, address, rem, position, overlapped); - if (n == IOStatus.UNAVAILABLE) { - // I/O is pending - return; - } - // read completed immediately: - // 1. update buffer position - // 2. release waiters - updatePosition(n); - result.setResult(n); + // initiate the write + n = writeFile(handle, address, rem, position, overlapped); + if (n == IOStatus.UNAVAILABLE) { + // I/O is pending + return; + } else { + throw new InternalError("Unexpected result: " + n); } + } catch (Throwable x) { // failed to initiate read: result.setFailure(toIOException(x)); diff -r d15bb22d4d39 -r 415e6de72568 jdk/src/windows/native/sun/nio/ch/WindowsAsynchronousFileChannelImpl.c --- a/jdk/src/windows/native/sun/nio/ch/WindowsAsynchronousFileChannelImpl.c Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/src/windows/native/sun/nio/ch/WindowsAsynchronousFileChannelImpl.c Fri Feb 05 12:26:35 2010 -0800 @@ -39,7 +39,6 @@ jlong handle, jlong address, jint len, jlong offset, jlong ov) { BOOL res; - DWORD nread = 0; OVERLAPPED* lpOverlapped = (OVERLAPPED*)jlong_to_ptr(ov); lpOverlapped->Offset = (DWORD)offset; @@ -49,7 +48,7 @@ res = ReadFile((HANDLE) jlong_to_ptr(handle), (LPVOID) jlong_to_ptr(address), (DWORD)len, - &nread, + NULL, lpOverlapped); if (res == 0) { @@ -62,7 +61,7 @@ return IOS_THROWN; } - return (jint)nread; + return IOS_UNAVAILABLE; } JNIEXPORT jint JNICALL @@ -70,7 +69,6 @@ jlong handle, jlong address, jint len, jlong offset, jlong ov) { BOOL res; - DWORD nwritten = 0; OVERLAPPED* lpOverlapped = (OVERLAPPED*)jlong_to_ptr(ov); lpOverlapped->Offset = (DWORD)offset; @@ -80,18 +78,18 @@ res = WriteFile((HANDLE)jlong_to_ptr(handle), (LPVOID) jlong_to_ptr(address), (DWORD)len, - &nwritten, + NULL, lpOverlapped); if (res == 0) { int error = GetLastError(); - if (error == ERROR_IO_PENDING) { + if (error == ERROR_IO_PENDING) return IOS_UNAVAILABLE; - } JNU_ThrowIOExceptionWithLastError(env, "WriteFile failed"); return IOS_THROWN; } - return (jint)nwritten; + + return IOS_UNAVAILABLE; } JNIEXPORT jint JNICALL diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/com/sun/jdi/ProcessAttachTest.sh --- a/jdk/test/com/sun/jdi/ProcessAttachTest.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/com/sun/jdi/ProcessAttachTest.sh Fri Feb 05 12:26:35 2010 -0800 @@ -54,10 +54,14 @@ OS=`uname -s` case "$OS" in - Windows* | CYGWIN_NT*) + Windows*) PS=";" OS="Windows" ;; + CYGWIN*) + PS=";" + OS="CYGWIN" + ;; * ) PS=":" ;; @@ -67,16 +71,23 @@ { OUTPUTFILE=${TESTCLASSES}/Debuggee.out ${JAVA} "$@" > ${OUTPUTFILE} & - pid="$!" + startpid="$!" + pid="${startpid}" + # CYGWIN startpid is not the native windows PID we want, get the WINPID + if [ "${OS}" = "CYGWIN" ]; then + sleep 2 + ps -l -p ${startpid} + pid=`ps -l -p ${startpid} | tail -1 | awk '{print $4;}'` + fi + # MKS creates an intermediate shell to launch ${JAVA} so - # ${pid} is not the actual pid. We have put in a small sleep + # ${startpid} is not the actual pid. We have put in a small sleep # to give the intermediate shell process time to launch the # "java" process. if [ "$OS" = "Windows" ]; then sleep 2 - realpid=`ps -o pid,ppid,comm|grep ${pid}|grep "java"|cut -c1-6` - pid=${realpid} + pid=`ps -o pid,ppid,comm|grep ${startpid}|grep "java"|cut -c1-6` fi echo "Waiting for Debuggee to initialize..." @@ -91,7 +102,7 @@ echo "Waiting $attempts second(s) ..." done - echo "Debuggee is process $pid" + echo "Debuggee is process $pid (startpid=${startpid})" } stopDebuggee() @@ -100,7 +111,7 @@ if [ $? != 0 ] ; then echo "Error: ShutdownDebuggee failed" failures=`expr $failures + 1` - kill -9 $pid + kill -9 ${startpid} fi } @@ -123,7 +134,7 @@ -agentlib:jdwp=transport=dt_socket,server=y,suspend=n \ -classpath "${TESTCLASSES}" ProcessAttachDebuggee "${PORTFILE}" -$JAVA -classpath ${TESTCLASSES}${PS}${TESTJAVA}/lib/tools.jar \ +$JAVA -classpath "${TESTCLASSES}${PS}${TESTJAVA}/lib/tools.jar" \ ProcessAttachDebugger $pid 2>&1 if [ $? != 0 ]; then failures=`expr $failures + 1`; fi @@ -141,7 +152,7 @@ -agentlib:jdwp=transport=dt_socket,server=y,suspend=y \ -classpath "${TESTCLASSES}" ProcessAttachDebuggee "${PORTFILE}" -$JAVA -classpath ${TESTCLASSES}${PS}${TESTJAVA}/lib/tools.jar \ +$JAVA -classpath "${TESTCLASSES}${PS}${TESTJAVA}/lib/tools.jar" \ ProcessAttachDebugger $pid 2>&1 # The debuggee is suspended and doesn't run until the debugger diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.sh --- a/jdk/test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.sh Fri Feb 05 12:26:35 2010 -0800 @@ -51,7 +51,7 @@ Linux ) PS=":" ;; - Windows* ) + Windows* | CYGWIN*) PS=";" ;; * ) @@ -71,7 +71,7 @@ $JAVAC -d "${TESTCLASSES}" "${TESTSRC}"/JdiLoadedByCustomLoader.java mkdir "${SOMEOTHERDIR}" -$JAVAC -d "${SOMEOTHERDIR}" -classpath ${TESTSRC}${PS}${TESTJAVA}/lib/tools.jar \ +$JAVAC -d "${SOMEOTHERDIR}" -classpath "${TESTSRC}${PS}${TESTJAVA}/lib/tools.jar" \ "${TESTSRC}"/ListConnectors.java # Run the test diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/com/sun/nio/sctp/SctpChannel/Connect.java --- a/jdk/test/com/sun/nio/sctp/SctpChannel/Connect.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/com/sun/nio/sctp/SctpChannel/Connect.java Fri Feb 05 12:26:35 2010 -0800 @@ -192,6 +192,18 @@ testCCE(new Callable() { public Void call() throws IOException { cceChannel.finishConnect(); return null; } }); + + /* TEST 8: IOException: Connection refused. Exercises handleSocketError. + * Assumption: no sctp socket listening on 3456 */ + SocketAddress addr = new InetSocketAddress("localhost", 3456); + channel = SctpChannel.open(); + try { + channel.connect(addr); + fail("should have thrown ConnectException: Connection refused"); + } catch (IOException ioe) { + pass(); + } + } catch (IOException ioe) { unexpected(ioe); } finally { diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/com/sun/nio/sctp/SctpChannel/Send.java --- a/jdk/test/com/sun/nio/sctp/SctpChannel/Send.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/com/sun/nio/sctp/SctpChannel/Send.java Fri Feb 05 12:26:35 2010 -0800 @@ -112,9 +112,6 @@ /* Receive CommUp */ channel.receive(buffer, null, handler); - /* save for TEST 8 */ - Association association = channel.association(); - /* TEST 2: send small message */ int streamNumber = 0; debug("sending on stream number: " + streamNumber); @@ -250,6 +247,29 @@ pass(); debug("OK, caught " + e); } + + /* TEST 9: Send from heap buffer to force implementation to + * substitute with a native buffer, then check that its position + * is updated correctly */ + buffer.clear(); + info = MessageInfo.createOutgoing(null, 0); + buffer.put(Util.SMALL_MESSAGE.getBytes("ISO-8859-1")); + buffer.flip(); + final int offset = 1; + buffer.position(offset); + remaining = buffer.remaining(); + + debug("sending small message: " + buffer); + try { + sent = channel.send(buffer, info); + + check(sent == remaining, "sent should be equal to remaining"); + check(buffer.position() == (offset + sent), + "buffers position should have been incremented by sent"); + } catch (IllegalArgumentException iae) { + fail(iae + ", Error updating buffers position"); + } + } catch (IOException ioe) { unexpected(ioe); } finally { @@ -335,6 +355,30 @@ /* TEST 7 ++ */ sc2 = ssc.accept(); + /* TEST 9 */ + ByteBuffer expected = ByteBuffer.allocate(Util.SMALL_BUFFER); + expected.put(Util.SMALL_MESSAGE.getBytes("ISO-8859-1")); + expected.flip(); + final int offset = 1; + expected.position(offset); + buffer.clear(); + do { + info = sc2.receive(buffer, null, null); + if (info == null) { + fail("Server: unexpected null from receive"); + return; + } + } while (!info.isComplete()); + + buffer.flip(); + check(info != null, "info is null"); + check(info.streamNumber() == 0, "message not sent on the correct stream"); + check(info.bytes() == expected.remaining(), + "bytes received not equal to message length"); + check(info.bytes() == buffer.remaining(), "bytes != remaining"); + check(expected.equals(buffer), + "received message not the same as sent message"); + clientFinishedLatch.await(10L, TimeUnit.SECONDS); serverFinishedLatch.countDown(); } catch (IOException ioe) { diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/com/sun/nio/sctp/SctpChannel/SocketOptionTests.java --- a/jdk/test/com/sun/nio/sctp/SctpChannel/SocketOptionTests.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/com/sun/nio/sctp/SctpChannel/SocketOptionTests.java Fri Feb 05 12:26:35 2010 -0800 @@ -104,7 +104,9 @@ sc.setOption(SCTP_NODELAY, true); checkOption(sc, SCTP_NODELAY, true); sc.setOption(SO_SNDBUF, 16*1024); + checkOption(sc, SO_SNDBUF, 16*1024); sc.setOption(SO_RCVBUF, 16*1024); + checkOption(sc, SO_RCVBUF, 16*1024); checkOption(sc, SO_LINGER, -1); /* default should be negative */ sc.setOption(SO_LINGER, 2000); checkOption(sc, SO_LINGER, 2000); diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/com/sun/nio/sctp/SctpMultiChannel/Send.java --- a/jdk/test/com/sun/nio/sctp/SctpMultiChannel/Send.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/com/sun/nio/sctp/SctpMultiChannel/Send.java Fri Feb 05 12:26:35 2010 -0800 @@ -185,6 +185,27 @@ /* TEST 5: getRemoteAddresses(Association) */ channel.getRemoteAddresses(assoc); + /* TEST 6: Send from heap buffer to force implementation to + * substitute with a native buffer, then check that its position + * is updated correctly */ + info = MessageInfo.createOutgoing(assoc, null, 0); + buffer.clear(); + buffer.put(Util.SMALL_MESSAGE.getBytes("ISO-8859-1")); + buffer.flip(); + final int offset = 1; + buffer.position(offset); + remaining = buffer.remaining(); + + try { + sent = channel.send(buffer, info); + + check(sent == remaining, "sent should be equal to remaining"); + check(buffer.position() == (offset + sent), + "buffers position should have been incremented by sent"); + } catch (IllegalArgumentException iae) { + fail(iae + ", Error updating buffers position"); + } + } catch (IOException ioe) { unexpected(ioe); } finally { @@ -284,6 +305,30 @@ bytes = serverChannel.send(buffer, info); debug("Server: sent " + bytes + "bytes"); + /* TEST 6 */ + ByteBuffer expected = ByteBuffer.allocate(Util.SMALL_BUFFER); + expected.put(Util.SMALL_MESSAGE.getBytes("ISO-8859-1")); + expected.flip(); + final int offset = 1; + expected.position(offset); + buffer.clear(); + do { + info = serverChannel.receive(buffer, null, null); + if (info == null) { + fail("Server: unexpected null from receive"); + return; + } + } while (!info.isComplete()); + + buffer.flip(); + check(info != null, "info is null"); + check(info.streamNumber() == 0, "message not sent on the correct stream"); + check(info.bytes() == expected.remaining(), + "bytes received not equal to message length"); + check(info.bytes() == buffer.remaining(), "bytes != remaining"); + check(expected.equals(buffer), + "received message not the same as sent message"); + clientFinishedLatch.await(10L, TimeUnit.SECONDS); serverFinishedLatch.countDown(); } catch (IOException ioe) { diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/com/sun/tools/attach/ApplicationSetup.sh --- a/jdk/test/com/sun/tools/attach/ApplicationSetup.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/com/sun/tools/attach/ApplicationSetup.sh Fri Feb 05 12:26:35 2010 -0800 @@ -49,7 +49,11 @@ # "java" process. if [ "$OS" = "Windows" ]; then sleep 2 - realpid=`ps -o pid,ppid,comm|grep ${pid}|grep "java"|cut -c1-6` + if [ "${isCygwin}" = "true" ] ; then + realpid=`ps -p ${pid} | tail -1 | awk '{print $4;}'` + else + realpid=`ps -o pid,ppid,comm|grep ${pid}|grep "java"|cut -c1-6` + fi pid=${realpid} fi @@ -57,7 +61,7 @@ attempts=0 while true; do sleep 1 - port=`tail -1 ${OUTPUTFILE}` + port=`tail -1 ${OUTPUTFILE} | sed -e 's@\\r@@g' ` if [ ! -z "$port" ]; then # In case of errors wait time for output to be flushed sleep 1 diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/com/sun/tools/attach/BasicTests.sh --- a/jdk/test/com/sun/tools/attach/BasicTests.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/com/sun/tools/attach/BasicTests.sh Fri Feb 05 12:26:35 2010 -0800 @@ -48,7 +48,7 @@ echo "Running tests ..." -$JAVA -classpath ${TESTCLASSES}${PS}${TESTJAVA}/lib/tools.jar \ +$JAVA -classpath "${TESTCLASSES}${PS}${TESTJAVA}/lib/tools.jar" \ BasicTests $pid $agent $badagent $redefineagent 2>&1 if [ $? != 0 ]; then failures=`expr $failures + 1`; fi diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/com/sun/tools/attach/CommonSetup.sh --- a/jdk/test/com/sun/tools/attach/CommonSetup.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/com/sun/tools/attach/CommonSetup.sh Fri Feb 05 12:26:35 2010 -0800 @@ -49,6 +49,12 @@ OS="Windows" FS="\\" ;; + CYGWIN* ) + PS=";" + OS="Windows" + FS="\\" + isCygwin=true + ;; * ) echo "Unrecognized system!" exit 1; diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/com/sun/tools/attach/PermissionTests.sh --- a/jdk/test/com/sun/tools/attach/PermissionTests.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/com/sun/tools/attach/PermissionTests.sh Fri Feb 05 12:26:35 2010 -0800 @@ -48,7 +48,7 @@ echo "Deny test" # deny -$JAVA -classpath ${TESTCLASSES}${PS}${TESTJAVA}/lib/tools.jar \ +$JAVA -classpath "${TESTCLASSES}${PS}${TESTJAVA}/lib/tools.jar" \ -Djava.security.manager \ -Djava.security.policy=${TESTSRC}/java.policy.deny \ PermissionTest $pid true 2>&1 @@ -56,7 +56,7 @@ # allow echo "Allow test" -$JAVA -classpath ${TESTCLASSES}${PS}${TESTJAVA}/lib/tools.jar \ +$JAVA -classpath "${TESTCLASSES}${PS}${TESTJAVA}/lib/tools.jar" \ -Djava.security.manager \ -Djava.security.policy=${TESTSRC}/java.policy.allow \ PermissionTest $pid false 2>&1 diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/com/sun/tools/attach/ProviderTests.sh --- a/jdk/test/com/sun/tools/attach/ProviderTests.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/com/sun/tools/attach/ProviderTests.sh Fri Feb 05 12:26:35 2010 -0800 @@ -46,6 +46,6 @@ echo "Running test ..." $JAVA -classpath \ - ${TESTCLASSES}${PS}${TESTCLASSES}/SimpleProvider.jar${PS}${TESTJAVA}/lib/tools.jar \ + "${TESTCLASSES}${PS}${TESTCLASSES}/SimpleProvider.jar${PS}${TESTJAVA}/lib/tools.jar" \ ProviderTest diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/java/beans/Introspector/Test5102804.java --- a/jdk/test/java/beans/Introspector/Test5102804.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/java/beans/Introspector/Test5102804.java Fri Feb 05 12:26:35 2010 -0800 @@ -24,6 +24,7 @@ /* * @test * @bug 5102804 + * @ignore This test is not predictable with regards to GC * @summary Tests memory leak * @author Sergey Malenkov */ diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/java/io/File/Basic.java --- a/jdk/test/java/io/File/Basic.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/java/io/File/Basic.java Fri Feb 05 12:26:35 2010 -0800 @@ -75,7 +75,7 @@ if (!f.canRead()) fail(f, "is not readable"); if (f.canWrite() != writeable) fail(f, writeable ? "is not writeable" : "is writeable"); - int rwLen = (File.separatorChar == '/' ? 6 : 7); + int rwLen = 6; if (f.length() != length) fail(f, "has wrong length"); } @@ -89,7 +89,7 @@ if (nonExistantFile.exists()) fail(nonExistantFile, "exists"); show(rwFile); - testFile(rwFile, true, File.separatorChar == '/' ? 6 : 7); + testFile(rwFile, true, 6); rwFile.delete(); if (rwFile.exists()) fail(rwFile, "could not delete"); diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/java/io/File/basic.sh --- a/jdk/test/java/io/File/basic.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/java/io/File/basic.sh Fri Feb 05 12:26:35 2010 -0800 @@ -32,10 +32,10 @@ rm -rf x.Basic.* rm -f x.Basic.non -echo xyzzy > x.Basic.rw +printf "%s" "xyzzyN" > x.Basic.rw touch x.Basic.ro; chmod ugo-w x.Basic.ro mkdir x.Basic.dir -if $TESTJAVA/bin/java $* -classpath $TESTCLASSES Basic; then +if $TESTJAVA/bin/java $* -classpath "$TESTCLASSES" Basic; then [ -f x.Basic.rw ] && (echo "x.Basic.rw not deleted"; exit 1) ([ -d x.Basic.dir ] || [ \! -d x.Basic.dir2 ]) \ && (echo "x.Basic.dir not renamed"; exit 1) diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/java/io/Serializable/evolution/RenamePackage/run.sh --- a/jdk/test/java/io/Serializable/evolution/RenamePackage/run.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/java/io/Serializable/evolution/RenamePackage/run.sh Fri Feb 05 12:26:35 2010 -0800 @@ -43,7 +43,7 @@ case "$OS" in SunOS | Linux ) PS=":" ;; -Windows* ) +Windows* | CYGWIN* ) PS=";" ;; * ) echo "Unrecognized system!" @@ -85,14 +85,14 @@ ${JAVAC} -d ${TESTCLASSES}/nclasses ${TESTSRC}/install/SerialDriver.java # Run Case 1. Map test.SerialDriver within stream to install.SerialDriver. -CLASSPATH=${TESTCLASSES}/oclasses${PS}${TESTCLASSES}/share; export CLASSPATH; +CLASSPATH="${TESTCLASSES}/oclasses${PS}${TESTCLASSES}/share"; export CLASSPATH; ${JAVA} test.SerialDriver -s -CLASSPATH=${TESTCLASSES}/nclasses${PS}${TESTCLASSES}/share; export CLASSPATH; +CLASSPATH="${TESTCLASSES}/nclasses${PS}${TESTCLASSES}/share"; export CLASSPATH; ${JAVA} install.SerialDriver -d rm stream.ser # Run Case 2. Map install.SerialDriver within stream to test.SerialDriver. -CLASSPATH=${TESTCLASSES}/nclasses${PS}${TESTCLASSES}/share; export CLASSPATH; +CLASSPATH="${TESTCLASSES}/nclasses${PS}${TESTCLASSES}/share"; export CLASSPATH; ${JAVA} install.SerialDriver -s -CLASSPATH=${TESTCLASSES}/oclasses${PS}${TESTCLASSES}/share; export CLASSPATH; +CLASSPATH="${TESTCLASSES}/oclasses${PS}${TESTCLASSES}/share"; export CLASSPATH; ${JAVA} test.SerialDriver -d diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/java/io/Serializable/serialver/classpath/run.sh --- a/jdk/test/java/io/Serializable/serialver/classpath/run.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/java/io/Serializable/serialver/classpath/run.sh Fri Feb 05 12:26:35 2010 -0800 @@ -49,7 +49,7 @@ case "$OS" in SunOS | Linux ) PS=":" ;; - Windows* ) + Windows* | CYGWIN* ) PS=";" ;; * ) echo "Unrecognized system!" diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/java/io/Serializable/serialver/nested/run.sh --- a/jdk/test/java/io/Serializable/serialver/nested/run.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/java/io/Serializable/serialver/nested/run.sh Fri Feb 05 12:26:35 2010 -0800 @@ -49,7 +49,7 @@ case "$OS" in SunOS | Linux ) PS=":" ;; - Windows* ) + Windows* | CYGWIN* ) PS=";" ;; * ) echo "Unrecognized system!" diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/java/lang/ClassLoader/deadlock/TestOneWayDelegate.sh --- a/jdk/test/java/lang/ClassLoader/deadlock/TestOneWayDelegate.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/java/lang/ClassLoader/deadlock/TestOneWayDelegate.sh Fri Feb 05 12:26:35 2010 -0800 @@ -55,7 +55,7 @@ Linux ) FS="/" ;; - Windows* ) + Windows* | CYGWIN* ) FS="\\" ;; esac diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/java/lang/StringCoding/CheckEncodings.sh --- a/jdk/test/java/lang/StringCoding/CheckEncodings.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/java/lang/StringCoding/CheckEncodings.sh Fri Feb 05 12:26:35 2010 -0800 @@ -31,7 +31,7 @@ OS=`uname -s` case "$OS" in SunOS | Linux ) ;; - Windows* ) + Windows* | CYGWIN* ) echo "Passed"; exit 0 ;; * ) echo "Unrecognized system!" ; exit 1 ;; esac diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/java/lang/System/finalization/FinExit.sh --- a/jdk/test/java/lang/System/finalization/FinExit.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/java/lang/System/finalization/FinExit.sh Fri Feb 05 12:26:35 2010 -0800 @@ -24,7 +24,9 @@ # # -x=`$TESTJAVA/bin/java -cp $TESTCLASSES FinExit` + +# We only want the first character, Windows might add CRLF +x=`$TESTJAVA/bin/java -cp "$TESTCLASSES" FinExit | cut -c1` echo $x if [ "x$x" != "x1" ]; then echo On-exit finalizer invoked twice diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/java/lang/annotation/loaderLeak/LoaderLeak.sh --- a/jdk/test/java/lang/annotation/loaderLeak/LoaderLeak.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/java/lang/annotation/loaderLeak/LoaderLeak.sh Fri Feb 05 12:26:35 2010 -0800 @@ -49,6 +49,11 @@ PS=":" FS="/" ;; + CYGWIN* ) + NULL=/dev/null + PS=";" + FS="/" + ;; Windows* ) NULL=NUL PS=";" diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/java/lang/instrument/appendToClassLoaderSearch/CommonSetup.sh --- a/jdk/test/java/lang/instrument/appendToClassLoaderSearch/CommonSetup.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/java/lang/instrument/appendToClassLoaderSearch/CommonSetup.sh Fri Feb 05 12:26:35 2010 -0800 @@ -43,11 +43,17 @@ PS=":" FS="/" ;; - Windows* | CYGWIN*) + Windows*) PS=";" OS="Windows" FS="\\" ;; + CYGWIN*) + PS=";" + OS="Windows" + FS="\\" + isCygwin=true + ;; * ) echo "Unrecognized system!" exit 1; diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/java/nio/channels/AsynchronousFileChannel/LotsOfWrites.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/nio/channels/AsynchronousFileChannel/LotsOfWrites.java Fri Feb 05 12:26:35 2010 -0800 @@ -0,0 +1,162 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. + * + * 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +/* @test + * @bug 6913877 + * @summary Stress AsynchronousFileChannel.write + */ + +import java.io.*; +import java.nio.ByteBuffer; +import static java.nio.file.StandardOpenOption.*; +import java.nio.channels.*; +import java.util.Random; +import java.util.concurrent.CountDownLatch; + +public class LotsOfWrites { + static final Random rand = new Random(); + + /** + * Asynchronously writes a known pattern to a file up to a given size, + * counting down a latch to release waiters when done. + */ + static class Writer implements CompletionHandler { + private final File file; + private final long size; + private final CountDownLatch latch; + private final AsynchronousFileChannel channel; + + private volatile long position; + private volatile byte nextByte; + + private long updatePosition(long nwrote) { + position += nwrote; + return position; + } + + private ByteBuffer genNextBuffer() { + int n = Math.min(8192 + rand.nextInt(8192), (int)(size - position)); + ByteBuffer buf = ByteBuffer.allocate(n); + for (int i=0; i= size) { + done(); + return; + } + buf = genNextBuffer(); + } + channel.write(buf, pos, buf, this); + } + + @Override + public void failed(Throwable exc, ByteBuffer buf) { + exc.printStackTrace(); + done(); + } + } + + public static void main(String[] args) throws Exception { + // random number of writers + int count = 20 + rand.nextInt(16); + Writer[] writers = new Writer[count]; + CountDownLatch latch = new CountDownLatch(count); + + // initiate writing to each file + for (int i=0; i 0) { + for (int j=0; j env = Collections.emptyMap(); + URI uri = URI.create("pass:///"); + return provider.newFileSystem(uri, env); + } + + @Override + public FileSystemProvider provider() { + return provider; + } + + @Override + public void close() throws IOException { + delegate.close(); + } + + @Override + public boolean isOpen() { + return delegate.isOpen(); + } + + @Override + public boolean isReadOnly() { + return delegate.isReadOnly(); + } + + @Override + public String getSeparator() { + return delegate.getSeparator(); + } + + @Override + public Iterable getRootDirectories() { + final Iterable roots = delegate.getRootDirectories(); + return new Iterable() { + @Override + public Iterator iterator() { + final Iterator itr = roots.iterator(); + return new Iterator() { + @Override + public boolean hasNext() { + return itr.hasNext(); + } + @Override + public Path next() { + return new PassThroughPath(delegate, itr.next()); + } + @Override + public void remove() { + itr.remove(); + } + }; + } + }; + } + + @Override + public Iterable getFileStores() { + // assume that unwrapped objects aren't exposed + return delegate.getFileStores(); + } + + @Override + public Set supportedFileAttributeViews() { + // assume that unwrapped objects aren't exposed + return delegate.supportedFileAttributeViews(); + } + + @Override + public Path getPath(String path) { + return new PassThroughPath(this, delegate.getPath(path)); + } + + @Override + public PathMatcher getPathMatcher(String syntaxAndPattern) { + final PathMatcher matcher = delegate.getPathMatcher(syntaxAndPattern); + return new PathMatcher() { + @Override + public boolean matches(Path path) { + return matcher.matches(PassThroughPath.unwrap(path)); + } + }; + } + + @Override + public UserPrincipalLookupService getUserPrincipalLookupService() { + // assume that unwrapped objects aren't exposed + return delegate.getUserPrincipalLookupService(); + } + + @Override + public WatchService newWatchService() throws IOException { + // to keep it simple + throw new UnsupportedOperationException(); + } + + static class PassThroughProvider extends FileSystemProvider { + private static final String SCHEME = "pass"; + private static volatile PassThroughFileSystem delegate; + + public PassThroughProvider() { } + + @Override + public String getScheme() { + return SCHEME; + } + + private void checkScheme(URI uri) { + if (!uri.getScheme().equalsIgnoreCase(SCHEME)) + throw new IllegalArgumentException(); + } + + private void checkUri(URI uri) { + checkScheme(uri); + if (!uri.getSchemeSpecificPart().equals("///")) + throw new IllegalArgumentException(); + } + + @Override + public FileSystem newFileSystem(URI uri, Map env) + throws IOException + { + checkUri(uri); + synchronized (PassThroughProvider.class) { + if (delegate != null) + throw new FileSystemAlreadyExistsException(); + PassThroughFileSystem result = + new PassThroughFileSystem(this, FileSystems.getDefault()); + delegate = result; + return result; + } + } + + @Override + public FileSystem getFileSystem(URI uri) { + checkUri(uri); + FileSystem result = delegate; + if (result == null) + throw new FileSystemNotFoundException(); + return result; + } + + @Override + public Path getPath(URI uri) { + checkScheme(uri); + if (delegate == null) + throw new FileSystemNotFoundException(); + uri = URI.create(delegate.provider().getScheme() + ":" + + uri.getSchemeSpecificPart()); + return new PassThroughPath(delegate, delegate.provider().getPath(uri)); + } + } + + static class PassThroughPath extends Path { + private final FileSystem fs; + private final Path delegate; + + PassThroughPath(FileSystem fs, Path delegate) { + this.fs = fs; + this.delegate = delegate; + } + + private Path wrap(Path path) { + return (path != null) ? new PassThroughPath(fs, path) : null; + } + + static Path unwrap(Path wrapper) { + if (!(wrapper instanceof PassThroughPath)) + throw new ProviderMismatchException(); + return ((PassThroughPath)wrapper).delegate; + } + + @Override + public FileSystem getFileSystem() { + return fs; + } + + @Override + public boolean isAbsolute() { + return delegate.isAbsolute(); + } + + @Override + public Path getRoot() { + return wrap(delegate.getRoot()); + } + + + @Override + public Path getName() { + return wrap(delegate.getName()); + } + + @Override + public Path getParent() { + return wrap(delegate.getParent()); + } + + @Override + public int getNameCount() { + return delegate.getNameCount(); + } + + @Override + public Path getName(int index) { + return wrap(delegate.getName(index)); + } + + @Override + public Path subpath(int beginIndex, int endIndex) { + return wrap(delegate.subpath(beginIndex, endIndex)); + } + + @Override + public boolean startsWith(Path other) { + return delegate.startsWith(unwrap(other)); + } + + @Override + public boolean endsWith(Path other) { + return delegate.endsWith(unwrap(other)); + } + + @Override + public Path normalize() { + return wrap(delegate.normalize()); + } + + @Override + public Path resolve(Path other) { + return wrap(delegate.resolve(unwrap(other))); + } + + @Override + public Path resolve(String other) { + return wrap(delegate.resolve(other)); + } + + @Override + public Path relativize(Path other) { + return wrap(delegate.relativize(unwrap(other))); + } + + @Override + public void setAttribute(String attribute, Object value, LinkOption... options) + throws IOException + { + delegate.setAttribute(attribute, value, options); + } + + @Override + public Object getAttribute(String attribute, LinkOption... options) + throws IOException + { + // assume that unwrapped objects aren't exposed + return delegate.getAttribute(attribute, options); + } + + @Override + public Map readAttributes(String attributes, LinkOption... options) + throws IOException + { + // assume that unwrapped objects aren't exposed + return delegate.readAttributes(attributes, options); + } + + @Override + public V getFileAttributeView(Class type, + LinkOption... options) + { + return delegate.getFileAttributeView(type, options); + } + + @Override + public void delete() throws IOException { + delegate.delete(); + } + + @Override + public void deleteIfExists() throws IOException { + delegate.deleteIfExists(); + } + + @Override + public Path createSymbolicLink(Path target, FileAttribute... attrs) + throws IOException + { + delegate.createSymbolicLink(unwrap(target), attrs); + return this; + } + + @Override + public Path createLink(Path existing) throws IOException { + delegate.createLink(unwrap(existing)); + return this; + } + + @Override + public Path readSymbolicLink() throws IOException { + return wrap(delegate.readSymbolicLink()); + } + + @Override + public URI toUri() { + String ssp = delegate.toUri().getSchemeSpecificPart(); + return URI.create(fs.provider().getScheme() + ":" + ssp); + } + + @Override + public Path toAbsolutePath() { + return wrap(delegate.toAbsolutePath()); + } + + @Override + public Path toRealPath(boolean resolveLinks) throws IOException { + return wrap(delegate.toRealPath(resolveLinks)); + } + + @Override + public Path copyTo(Path target, CopyOption... options) throws IOException { + return wrap(delegate.copyTo(unwrap(target), options)); + } + + @Override + public Path moveTo(Path target, CopyOption... options) throws IOException { + return wrap(delegate.copyTo(unwrap(target), options)); + } + + private DirectoryStream wrap(final DirectoryStream stream) { + return new DirectoryStream() { + @Override + public Iterator iterator() { + final Iterator itr = stream.iterator(); + return new Iterator() { + @Override + public boolean hasNext() { + return itr.hasNext(); + } + @Override + public Path next() { + return wrap(itr.next()); + } + @Override + public void remove() { + itr.remove(); + } + }; + } + @Override + public void close() throws IOException { + stream.close(); + } + }; + } + + @Override + public DirectoryStream newDirectoryStream() throws IOException { + return wrap(delegate.newDirectoryStream()); + } + + @Override + public DirectoryStream newDirectoryStream(String glob) + throws IOException + { + return wrap(delegate.newDirectoryStream(glob)); + } + + @Override + public DirectoryStream newDirectoryStream(DirectoryStream.Filter filter) + throws IOException + { + return wrap(delegate.newDirectoryStream(filter)); + } + + @Override + public Path createFile(FileAttribute... attrs) throws IOException { + delegate.createFile(attrs); + return this; + } + + @Override + public Path createDirectory(FileAttribute... attrs) + throws IOException + { + delegate.createDirectory(attrs); + return this; + } + + @Override + public SeekableByteChannel newByteChannel(Set options, + FileAttribute... attrs) + throws IOException + { + return delegate.newByteChannel(options, attrs); + } + + @Override + public SeekableByteChannel newByteChannel(OpenOption... options) + throws IOException + { + return delegate.newByteChannel(options); + } + + @Override + public InputStream newInputStream(OpenOption... options) throws IOException { + return delegate.newInputStream(); + } + + @Override + public OutputStream newOutputStream(OpenOption... options) + throws IOException + { + return delegate.newOutputStream(options); + } + + @Override + public boolean isHidden() throws IOException { + return delegate.isHidden(); + } + + @Override + public void checkAccess(AccessMode... modes) throws IOException { + delegate.checkAccess(modes); + } + + @Override + public boolean exists() { + return delegate.exists(); + } + + @Override + public boolean notExists() { + return delegate.notExists(); + } + + @Override + public FileStore getFileStore() throws IOException { + return delegate.getFileStore(); + } + + @Override + public WatchKey register(WatchService watcher, + WatchEvent.Kind[] events, + WatchEvent.Modifier... modifiers) + { + throw new UnsupportedOperationException(); + } + + @Override + public WatchKey register(WatchService watcher, + WatchEvent.Kind... events) + { + throw new UnsupportedOperationException(); + } + + + @Override + public Iterator iterator() { + final Iterator itr = delegate.iterator(); + return new Iterator() { + @Override + public boolean hasNext() { + return itr.hasNext(); + } + @Override + public Path next() { + return wrap(itr.next()); + } + @Override + public void remove() { + itr.remove(); + } + }; + } + + @Override + public int compareTo(Path other) { + return delegate.compareTo(unwrap(other)); + } + + @Override + public boolean isSameFile(Path other) throws IOException { + return delegate.isSameFile(unwrap(other)); + } + + + @Override + public boolean equals(Object other) { + if (!(other instanceof PassThroughPath)) + return false; + return delegate.equals(unwrap((PassThroughPath)other)); + } + + @Override + public int hashCode() { + return delegate.hashCode(); + } + + @Override + public String toString() { + return delegate.toString(); + } + } +} diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/java/nio/file/Path/delete_on_close.sh --- a/jdk/test/java/nio/file/Path/delete_on_close.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/java/nio/file/Path/delete_on_close.sh Fri Feb 05 12:26:35 2010 -0800 @@ -40,7 +40,7 @@ OS=`uname -s` case "$OS" in - Windows_* ) + Windows_* | CYGWIN* ) CLASSPATH="${TESTCLASSES};${TESTSRC}" ;; * ) diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/java/nio/file/TestUtil.java --- a/jdk/test/java/nio/file/TestUtil.java Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/java/nio/file/TestUtil.java Fri Feb 05 12:26:35 2010 -0800 @@ -30,17 +30,20 @@ private TestUtil() { } - public static Path createTemporaryDirectory() throws IOException { - Path tmpdir = Paths.get(System.getProperty("java.io.tmpdir")); + static Path createTemporaryDirectory(String where) throws IOException { + Path top = FileSystems.getDefault().getPath(where); Random r = new Random(); - Path dir; do { - dir = tmpdir.resolve("name" + r.nextInt()); + dir = top.resolve("name" + r.nextInt()); } while (dir.exists()); return dir.createDirectory(); } + static Path createTemporaryDirectory() throws IOException { + return createTemporaryDirectory(System.getProperty("java.io.tmpdir")); + } + static void removeAll(Path dir) { Files.walkFileTree(dir, new FileVisitor() { @Override diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/java/nio/file/WatchService/OverflowEventIsLoner.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/nio/file/WatchService/OverflowEventIsLoner.java Fri Feb 05 12:26:35 2010 -0800 @@ -0,0 +1,122 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. + * + * 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +/* @test + * @bug 6907760 + * @summary Check that the OVERFLOW event is not retrieved with other events + * @library .. + */ + +import java.nio.file.*; +import static java.nio.file.StandardWatchEventKind.*; +import java.io.IOException; +import java.util.List; +import java.util.concurrent.TimeUnit; + +public class OverflowEventIsLoner { + + static void drainEvents(WatchService watcher, + WatchEvent.Kind expectedKind, + int count) + throws IOException, InterruptedException + { + // wait for key to be signalled - the timeout is long to allow for + // polling implementations + WatchKey key = watcher.poll(15, TimeUnit.SECONDS); + if (key != null && count == 0) + throw new RuntimeException("Key was signalled (unexpected)"); + if (key == null && count > 0) + throw new RuntimeException("Key not signalled (unexpected)"); + + int nread = 0; + boolean gotOverflow = false; + do { + List> events = key.pollEvents(); + for (WatchEvent event: events) { + WatchEvent.Kind kind = event.kind(); + if (kind == expectedKind) { + // expected event kind + if (++nread > count) + throw new RuntimeException("More events than expected!!"); + } else if (kind == OVERFLOW) { + // overflow event should not be retrieved with other events + if (events.size() > 1) + throw new RuntimeException("Overflow retrieved with other events"); + gotOverflow = true; + } else { + throw new RuntimeException("Unexpected event '" + kind + "'"); + } + } + if (!key.reset()) + throw new RuntimeException("Key is no longer valid"); + key = watcher.poll(2, TimeUnit.SECONDS); + } while (key != null); + + // check that all expected events were received or there was an overflow + if (nread < count && !gotOverflow) + throw new RuntimeException("Insufficient events"); + } + + + static void test(Path dir) throws IOException, InterruptedException { + WatchService watcher = dir.getFileSystem().newWatchService(); + try { + WatchKey key = dir.register(watcher, ENTRY_CREATE, ENTRY_DELETE); + + // create a lot of files + int n = 1024; + Path[] files = new Path[n]; + for (int i=0; i/dev/null ${JPS} -? > jps.out 2>&1 -diff jps.out ${TESTSRC}/usage.out +diff -w jps.out ${TESTSRC}/usage.out if [ $? != 0 ] then echo "Output of jps -? differ from expected output. Failed." @@ -46,7 +46,7 @@ rm -f jps.out 2>/dev/null ${JPS} -help > jps.out 2>&1 -diff jps.out ${TESTSRC}/usage.out +diff -w jps.out ${TESTSRC}/usage.out if [ $? != 0 ] then echo "Output of jps -help differ from expected output. Failed." diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/sun/tools/jstat/jstatHelp.sh --- a/jdk/test/sun/tools/jstat/jstatHelp.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/sun/tools/jstat/jstatHelp.sh Fri Feb 05 12:26:35 2010 -0800 @@ -35,7 +35,7 @@ rm -f jstat.out 2>/dev/null ${JSTAT} -? > jstat.out 2>&1 -diff jstat.out ${TESTSRC}/usage.out +diff -w jstat.out ${TESTSRC}/usage.out if [ $? != 0 ] then echo "Output of jstat -? differ from expected output. Failed." @@ -45,7 +45,7 @@ rm -f jstat.out 2>/dev/null ${JSTAT} -help > jstat.out 2>&1 -diff jstat.out ${TESTSRC}/usage.out +diff -w jstat.out ${TESTSRC}/usage.out if [ $? != 0 ] then echo "Output of jstat -help differ from expected output. Failed." diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/sun/tools/jstat/jstatOptions1.sh --- a/jdk/test/sun/tools/jstat/jstatOptions1.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/sun/tools/jstat/jstatOptions1.sh Fri Feb 05 12:26:35 2010 -0800 @@ -35,4 +35,4 @@ rm -f jstat.out 2>/dev/null ${JSTAT} -options > jstat.out 2>&1 -diff jstat.out ${TESTSRC}/options1.out +diff -w jstat.out ${TESTSRC}/options1.out diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/sun/tools/jstatd/jstatdUsage1.sh --- a/jdk/test/sun/tools/jstatd/jstatdUsage1.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/sun/tools/jstatd/jstatdUsage1.sh Fri Feb 05 12:26:35 2010 -0800 @@ -37,7 +37,7 @@ ${JSTATD} -? > ${JSTATD_1_OUT} 2>&1 -diff ${JSTATD_1_OUT} ${TESTSRC}/usage.out +diff -w ${JSTATD_1_OUT} ${TESTSRC}/usage.out if [ $? != 0 ] then echo "Output of jstatd -? differs from expected output. Failed." @@ -46,7 +46,7 @@ ${JSTATD} -help > ${JSTATD_2_OUT} 2>&1 -diff ${JSTATD_2_OUT} ${TESTSRC}/usage.out +diff -w ${JSTATD_2_OUT} ${TESTSRC}/usage.out if [ $? != 0 ] then echo "Output of jstatd -help differs from expected output. Failed." diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/sun/tools/native2ascii/Native2AsciiTests.sh --- a/jdk/test/sun/tools/native2ascii/Native2AsciiTests.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/sun/tools/native2ascii/Native2AsciiTests.sh Fri Feb 05 12:26:35 2010 -0800 @@ -32,7 +32,7 @@ if [ "${TESTJAVA}" = "" ]; then TESTJAVA=$1; shift; fi case `uname -s` in - Windows*) OS=Windows;; + Windows* | CYGWIN*) OS=Windows;; SunOS|Linux) OS=Unix;; esac @@ -45,12 +45,14 @@ # Strip carriage returns from output when comparing with n2a test output # on win32 systems - if [ OS = Windows ]; then - tr -d '\015' <$out >$out.1 + if [ ${OS} = Windows ]; then + sed -e 's@\\r@@g' $out >$out.1 + sed -e 's@\\r@@g' $expected >$out.expected else cp $out $out.1 + cp $expected $out.expected fi - if (set -x; diff -c $expected $out.1); then + if (set -x; diff -c $out.expected $out.1); then echo "$bug passed" else echo "$bug failed" diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/tools/launcher/ChangeDataModel.sh --- a/jdk/test/tools/launcher/ChangeDataModel.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/tools/launcher/ChangeDataModel.sh Fri Feb 05 12:26:35 2010 -0800 @@ -29,6 +29,9 @@ OS=`uname -s`; +# To remove CR from output, needed for java apps in CYGWIN, harmless otherwise +SED_CR="sed -e s@\\r@@g" + case "$OS" in Windows* | CYGWIN* ) PATHSEP=";" @@ -79,10 +82,10 @@ # Verify data model flag for default data model is accepted -DM=`$JAVA GetDataModel` +DM=`$JAVA GetDataModel | ${SED_CR}` case "$DM" in 32 ) - DM2=`${JAVA} -d32 GetDataModel` + DM2=`${JAVA} -d32 GetDataModel | ${SED_CR}` if [ "${DM2}" != "32" ] then echo "Data model flag -d32 not accepted or had improper effect." @@ -91,7 +94,7 @@ ;; 64 ) - DM2=`${JAVA} -d64 GetDataModel` + DM2=`${JAVA} -d64 GetDataModel | ${SED_CR}` if [ "${DM2}" != "64" ] then echo "Data model flag -d64 not accepted or had improper effect." @@ -227,10 +230,10 @@ else # Negative tests for non-dual mode platforms to ensure the other data model is # rejected - DM=`$JAVA GetDataModel` + DM=`$JAVA GetDataModel | ${SED_CR}` case "$DM" in 32 ) - DM2=`${JAVA} -d64 GetDataModel` + DM2=`${JAVA} -d64 GetDataModel | ${SED_CR}` if [ "x${DM2}" != "x" ] then echo "Data model flag -d64 was accepted." @@ -239,7 +242,7 @@ ;; 64 ) - DM2=`${JAVA} -d32 GetDataModel` + DM2=`${JAVA} -d32 GetDataModel | ${SED_CR}` if [ "x${DM2}" != "x" ] then echo "Data model flag -d32 was accepted." diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/tools/launcher/ClassPathWildCard.sh --- a/jdk/test/tools/launcher/ClassPathWildCard.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/tools/launcher/ClassPathWildCard.sh Fri Feb 05 12:26:35 2010 -0800 @@ -145,7 +145,7 @@ OS=`uname -s` case $OS in - Windows*|Cygwin*) + Windows*|CYGWIN*) PATHSEP=";" ExecJava "" "${PATHSEP}NOOPDIR" ExecJava "w" "${PATHSEP}NOOPDIR" diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/tools/launcher/DefaultLocaleTest.sh --- a/jdk/test/tools/launcher/DefaultLocaleTest.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/tools/launcher/DefaultLocaleTest.sh Fri Feb 05 12:26:35 2010 -0800 @@ -48,7 +48,7 @@ OS=`uname` case "$OS" in - Windows* | CYGWIN* ) + Windows* ) JAVAC="${TESTJAVA}/bin/javac -d . " JAVA="${TESTJAVA}/bin/java -classpath . " JAVAW="${TESTJAVA}/bin/javaw -classpath . " @@ -64,6 +64,22 @@ echo "Test passes" exit 0 ;; + CYGWIN* ) + JAVAC="${TESTJAVA}/bin/javac -d . " + JAVA="${TESTJAVA}/bin/java -classpath . " + JAVAW="${TESTJAVA}/bin/javaw -classpath . " + + ${JAVAC} ${TESTSRC}/DefaultLocaleTest.java + ${JAVA} DefaultLocaleTest | sed -e s@\\r@@g > x.out + ${JAVAW} DefaultLocaleTest `cat x.out` + if [ $? -ne 0 ] + then + echo "Test fails" + exit 1 + fi + echo "Test passes" + exit 0 + ;; * ) echo "Non-windows environment; test vacuously succeeds." exit 0; diff -r d15bb22d4d39 -r 415e6de72568 jdk/test/tools/launcher/UnicodeTest.sh --- a/jdk/test/tools/launcher/UnicodeTest.sh Thu Feb 04 15:50:59 2010 -0800 +++ b/jdk/test/tools/launcher/UnicodeTest.sh Fri Feb 05 12:26:35 2010 -0800 @@ -54,7 +54,7 @@ echo "creating test source files" "$JAVAC" -d . "${TESTSRC}"/UnicodeTest.java -CLASS_NAME=`"$JAVA" UnicodeTest` +CLASS_NAME=`"$JAVA" UnicodeTest | sed -e 's@\\r@@g' ` if [ "$CLASS_NAME" = "" ] then diff -r d15bb22d4d39 -r 415e6de72568 langtools/.hgtags --- a/langtools/.hgtags Thu Feb 04 15:50:59 2010 -0800 +++ b/langtools/.hgtags Fri Feb 05 12:26:35 2010 -0800 @@ -54,3 +54,5 @@ 0398ae15b90ac76d87ee21844453e95ff8613e43 jdk7-b77 acc1e40a5874ebf32bebcb6ada565b3b40b7461c jdk7-b78 ac5b4c5644ce54585e5287563dde2b006fa664f4 jdk7-b79 +f0074aa48d4e2a4c03c92b9c4f880679fea0306c jdk7-b80 +cfabfcf9f110ef896cbdd382903d20eefbceefe0 jdk7-b81 diff -r d15bb22d4d39 -r 415e6de72568 langtools/make/Makefile --- a/langtools/make/Makefile Thu Feb 04 15:50:59 2010 -0800 +++ b/langtools/make/Makefile Fri Feb 05 12:26:35 2010 -0800 @@ -144,8 +144,8 @@ ifdef ALT_JDK_TOPDIR ANT_OPTIONS += -Dimport.jdk=$(ALT_JDK_TOPDIR) else - ifdef ALT_JDK_IMPORT_DIR - ANT_OPTIONS += -Dimport.jdk=$(ALT_JDK_IMPORT_DIR) + ifdef ALT_JDK_IMPORT_PATH + ANT_OPTIONS += -Dimport.jdk=$(ALT_JDK_IMPORT_PATH) endif endif endif diff -r d15bb22d4d39 -r 415e6de72568 langtools/make/build.xml --- a/langtools/make/build.xml Thu Feb 04 15:50:59 2010 -0800 +++ b/langtools/make/build.xml Fri Feb 05 12:26:35 2010 -0800 @@ -107,14 +107,21 @@ ignoresystemclasses="true" classpath="${import.jdk}/jre/lib/rt.jar" classname="java.nio.file.Path"/> + + + diff -r d15bb22d4d39 -r 415e6de72568 langtools/make/tools/CompileProperties/CompileProperties.java --- a/langtools/make/tools/CompileProperties/CompileProperties.java Thu Feb 04 15:50:59 2010 -0800 +++ b/langtools/make/tools/CompileProperties/CompileProperties.java Fri Feb 05 12:26:35 2010 -0800 @@ -101,7 +101,7 @@ boolean ok = true; /* Original usage */ if (args.length == 2 && args[0].charAt(0) != '-' ) { - ok = createFile(args[0], args[1], "ListResourceBundle"); + ok = createFile(args[0], args[1], "java.util.ListResourceBundle"); } else if (args.length == 3) { ok = createFile(args[0], args[1], args[2]); } else if (args.length == 0) { @@ -285,9 +285,9 @@ log.info(" java CompileProperties {-compile path_to_properties_file path_to_java_output_file super_class} -or- -optionsfile filename"); log.info(""); log.info("Example:"); - log.info(" java CompileProperties -compile test.properties test.java ListResourceBundle"); + log.info(" java CompileProperties -compile test.properties test.java java.util.ListResourceBundle"); log.info(" java CompileProperties -optionsfile option_file"); - log.info("option_file contains: -compile test.properties test.java ListResourceBundle"); + log.info("option_file contains: -compile test.properties test.java java.util.ListResourceBundle"); } private static String escape(String theString) { @@ -379,7 +379,6 @@ private static final String FORMAT = "{0}" + - "import java.util.ListResourceBundle;\n\n" + "public final class {1} extends {2} '{'\n" + " protected final Object[][] getContents() '{'\n" + " return new Object[][] '{'\n" + diff -r d15bb22d4d39 -r 415e6de72568 langtools/make/tools/CompileProperties/CompilePropertiesTask.java --- a/langtools/make/tools/CompileProperties/CompilePropertiesTask.java Thu Feb 04 15:50:59 2010 -0800 +++ b/langtools/make/tools/CompileProperties/CompilePropertiesTask.java Fri Feb 05 12:26:35 2010 -0800 @@ -45,6 +45,7 @@ this.superclass = superclass; } + @Override public void execute() { CompileProperties.Log log = new CompileProperties.Log() { public void error(String msg, Exception e) { @@ -84,7 +85,7 @@ log("Generating " + count + " resource files to " + destDir, Project.MSG_INFO); CompileProperties cp = new CompileProperties(); cp.setLog(log); - boolean ok = cp.run((String[])mainOpts.toArray(new String[mainOpts.size()])); + boolean ok = cp.run(mainOpts.toArray(new String[mainOpts.size()])); if (!ok) throw new BuildException("CompileProperties failed."); } diff -r d15bb22d4d39 -r 415e6de72568 langtools/make/tools/GenStubs/GenStubs.java --- a/langtools/make/tools/GenStubs/GenStubs.java Thu Feb 04 15:50:59 2010 -0800 +++ b/langtools/make/tools/GenStubs/GenStubs.java Fri Feb 05 12:26:35 2010 -0800 @@ -22,6 +22,7 @@ * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ + import java.io.*; import java.util.*; import javax.tools.JavaFileObject; @@ -41,15 +42,22 @@ import com.sun.tools.javac.code.Flags; import com.sun.tools.javac.code.TypeTags; import com.sun.tools.javac.tree.JCTree; -import com.sun.tools.javac.tree.JCTree.JCBlock; import com.sun.tools.javac.tree.JCTree.JCCompilationUnit; +import com.sun.tools.javac.tree.JCTree.JCFieldAccess; +import com.sun.tools.javac.tree.JCTree.JCIdent; +import com.sun.tools.javac.tree.JCTree.JCImport; import com.sun.tools.javac.tree.JCTree.JCLiteral; import com.sun.tools.javac.tree.JCTree.JCMethodDecl; import com.sun.tools.javac.tree.JCTree.JCModifiers; -import com.sun.tools.javac.tree.JCTree.JCStatement; import com.sun.tools.javac.tree.JCTree.JCVariableDecl; import com.sun.tools.javac.tree.Pretty; +import com.sun.tools.javac.tree.TreeMaker; +import com.sun.tools.javac.tree.TreeScanner; import com.sun.tools.javac.tree.TreeTranslator; +import com.sun.tools.javac.util.Context; +import com.sun.tools.javac.util.ListBuffer; +import com.sun.tools.javac.util.Name; +import javax.tools.JavaFileManager; /** * Generate stub source files by removing implementation details from input files. @@ -161,6 +169,7 @@ void makeStub(StandardJavaFileManager fm, CompilationUnitTree tree) throws IOException { CompilationUnitTree tree2 = new StubMaker().translate(tree); + CompilationUnitTree tree3 = new ImportCleaner(fm).removeRedundantImports(tree2); String className = fm.inferBinaryName(StandardLocation.SOURCE_PATH, tree.getSourceFile()); JavaFileObject fo = fm.getJavaFileForOutput(StandardLocation.SOURCE_OUTPUT, @@ -168,7 +177,7 @@ // System.err.println("Writing " + className + " to " + fo.getName()); Writer out = fo.openWriter(); try { - new Pretty(out, true).printExpr((JCTree) tree2); + new Pretty(out, true).printExpr((JCTree) tree3); } finally { out.close(); } @@ -272,6 +281,53 @@ } } + class ImportCleaner extends TreeScanner { + private Set names = new HashSet(); + private TreeMaker m; + + ImportCleaner(JavaFileManager fm) { + // ImportCleaner itself doesn't require a filemanager, but instantiating + // a TreeMaker does, indirectly (via ClassReader, sigh) + Context c = new Context(); + c.put(JavaFileManager.class, fm); + m = TreeMaker.instance(c); + } + + CompilationUnitTree removeRedundantImports(CompilationUnitTree t) { + JCCompilationUnit tree = (JCCompilationUnit) t; + tree.accept(this); + ListBuffer defs = new ListBuffer(); + for (JCTree def: tree.defs) { + if (def.getTag() == JCTree.IMPORT) { + JCImport imp = (JCImport) def; + if (imp.qualid.getTag() == JCTree.SELECT) { + JCFieldAccess qualid = (JCFieldAccess) imp.qualid; + if (!qualid.name.toString().equals("*") + && !names.contains(qualid.name)) { + continue; + } + } + } + defs.add(def); + } + return m.TopLevel(tree.packageAnnotations, tree.pid, defs.toList()); + } + + @Override + public void visitImport(JCImport tree) { } // ignore names found in imports + + @Override + public void visitIdent(JCIdent tree) { + names.add(tree.name); + } + + @Override + public void visitSelect(JCFieldAccess tree) { + super.visitSelect(tree); + names.add(tree.name); + } + } + //---------- Ant Invocation ------------------------------------------------ public static class Ant extends MatchingTask { diff -r d15bb22d4d39 -r 415e6de72568 langtools/src/share/bin/launcher.sh-template --- a/langtools/src/share/bin/launcher.sh-template Thu Feb 04 15:50:59 2010 -0800 +++ b/langtools/src/share/bin/launcher.sh-template Fri Feb 05 12:26:35 2010 -0800 @@ -38,7 +38,7 @@ # dependent jar files for additional dependencies. if [ "$LANGTOOLS_USE_BOOTCLASSPATH" != "no" ]; then - cp=`unzip -c $mylib/#PROGRAM#.jar META-INF/MANIFEST.MF | + cp=`unzip -c "$mylib/#PROGRAM#.jar" META-INF/MANIFEST.MF | grep "Class-Path:" | sed -e 's|Class-Path: *||' -e 's|\([a-z]*\.jar\) *|'"$mylib"'/\1:|g'` bcp="$mylib/#PROGRAM#.jar":$cp diff -r d15bb22d4d39 -r 415e6de72568 langtools/src/share/classes/com/sun/tools/javac/nio/PathFileObject.java --- a/langtools/src/share/classes/com/sun/tools/javac/nio/PathFileObject.java Thu Feb 04 15:50:59 2010 -0800 +++ b/langtools/src/share/classes/com/sun/tools/javac/nio/PathFileObject.java Fri Feb 05 12:26:35 2010 -0800 @@ -309,7 +309,7 @@ } protected static String toBinaryName(String relativePath, String sep) { - return removeExtension(relativePath).replaceAll(sep, "."); + return removeExtension(relativePath).replace(sep, "."); } protected static String removeExtension(String fileName) { diff -r d15bb22d4d39 -r 415e6de72568 langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java --- a/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java Thu Feb 04 15:50:59 2010 -0800 +++ b/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java Fri Feb 05 12:26:35 2010 -0800 @@ -2613,12 +2613,12 @@ body = toP(F.at(identPos).AnonymousClassDef(mods1, defs)); } if (args.isEmpty() && body == null) - createPos = Position.NOPOS; - JCIdent ident = F.at(Position.NOPOS).Ident(enumName); + createPos = identPos; + JCIdent ident = F.at(identPos).Ident(enumName); JCNewClass create = F.at(createPos).NewClass(null, typeArgs, ident, args, body); - if (createPos != Position.NOPOS) + if (createPos != identPos) storeEnd(create, S.prevEndPos()); - ident = F.at(Position.NOPOS).Ident(enumName); + ident = F.at(identPos).Ident(enumName); JCTree result = toP(F.at(pos).VarDef(mods, name, ident, create)); attach(result, dc); return result; diff -r d15bb22d4d39 -r 415e6de72568 langtools/src/share/classes/com/sun/tools/javac/parser/Keywords.java --- a/langtools/src/share/classes/com/sun/tools/javac/parser/Keywords.java Thu Feb 04 15:50:59 2010 -0800 +++ b/langtools/src/share/classes/com/sun/tools/javac/parser/Keywords.java Fri Feb 05 12:26:35 2010 -0800 @@ -51,12 +51,10 @@ return instance; } - private final Log log; private final Names names; protected Keywords(Context context) { context.put(keywordsKey, this); - log = Log.instance(context); names = Names.instance(context); for (Token t : Token.values()) { diff -r d15bb22d4d39 -r 415e6de72568 langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties --- a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties Thu Feb 04 15:50:59 2010 -0800 +++ b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties Fri Feb 05 12:26:35 2010 -0800 @@ -704,7 +704,7 @@ {0}; overridden method is a bridge method compiler.warn.pkg-info.already.seen=\ - [package-info] a package-info.java file has already been seen for package {0} + a package-info.java file has already been seen for package {0} compiler.warn.path.element.not.found=\ [path] bad path element "{0}": no such file or directory compiler.warn.possible.fall-through.into.case=\ diff -r d15bb22d4d39 -r 415e6de72568 langtools/src/share/classes/com/sun/tools/javac/tree/Pretty.java --- a/langtools/src/share/classes/com/sun/tools/javac/tree/Pretty.java Thu Feb 04 15:50:59 2010 -0800 +++ b/langtools/src/share/classes/com/sun/tools/javac/tree/Pretty.java Fri Feb 05 12:26:35 2010 -0800 @@ -468,6 +468,10 @@ print(" throws "); printExprs(tree.thrown); } + if (tree.defaultValue != null) { + print(" default "); + printExpr(tree.defaultValue); + } if (tree.body != null) { print(" "); printStat(tree.body); @@ -1148,20 +1152,7 @@ // Prints the inner element type of a nested array private void printBaseElementType(JCTree tree) throws IOException { - switch (tree.getTag()) { - case JCTree.TYPEARRAY: - printBaseElementType(((JCArrayTypeTree)tree).elemtype); - return; - case JCTree.WILDCARD: - printBaseElementType(((JCWildcard)tree).inner); - return; - case JCTree.ANNOTATED_TYPE: - printBaseElementType(((JCAnnotatedType)tree).underlyingType); - return; - default: - printExpr(tree); - return; - } + printExpr(TreeInfo.innermostType(tree)); } // prints the brackets of a nested array in reverse order diff -r d15bb22d4d39 -r 415e6de72568 langtools/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java --- a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java Thu Feb 04 15:50:59 2010 -0800 +++ b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java Fri Feb 05 12:26:35 2010 -0800 @@ -891,4 +891,17 @@ throw new AssertionError("Unexpected type tree: " + tree); } } + + public static JCTree innermostType(JCTree type) { + switch (type.getTag()) { + case JCTree.TYPEARRAY: + return innermostType(((JCArrayTypeTree)type).elemtype); + case JCTree.WILDCARD: + return innermostType(((JCWildcard)type).inner); + case JCTree.ANNOTATED_TYPE: + return innermostType(((JCAnnotatedType)type).underlyingType); + default: + return type; + } + } } diff -r d15bb22d4d39 -r 415e6de72568 langtools/src/share/classes/com/sun/tools/javac/util/LayoutCharacters.java --- a/langtools/src/share/classes/com/sun/tools/javac/util/LayoutCharacters.java Thu Feb 04 15:50:59 2010 -0800 +++ b/langtools/src/share/classes/com/sun/tools/javac/util/LayoutCharacters.java Fri Feb 05 12:26:35 2010 -0800 @@ -49,7 +49,7 @@ /** Tabulator character. */ - final static byte TAB = 0x8; + final static byte TAB = 0x9; /** Line feed character. */ diff -r d15bb22d4d39 -r 415e6de72568 langtools/src/share/classes/com/sun/tools/javac/util/Log.java --- a/langtools/src/share/classes/com/sun/tools/javac/util/Log.java Thu Feb 04 15:50:59 2010 -0800 +++ b/langtools/src/share/classes/com/sun/tools/javac/util/Log.java Fri Feb 05 12:26:35 2010 -0800 @@ -145,7 +145,10 @@ private int getIntOption(Options options, String optionName, int defaultValue) { String s = options.get(optionName); try { - if (s != null) return Integer.parseInt(s); + if (s != null) { + int n = Integer.parseInt(s); + return (n <= 0 ? Integer.MAX_VALUE : n); + } } catch (NumberFormatException e) { // silently ignore ill-formed numbers } diff -r d15bb22d4d39 -r 415e6de72568 langtools/test/tools/javac/T6326754.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/tools/javac/T6326754.java Fri Feb 05 12:26:35 2010 -0800 @@ -0,0 +1,76 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. + * + * 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +/* + * @test + * @bug 6326754 + * @summary Compiler will fail to handle -Xmaxerrs with -ve numbers + * + * @compile/fail/ref=T6326754.out -XDrawDiagnostics -Xmaxerrs -1 T6326754.java + * @compile/fail/ref=T6326754.out -XDrawDiagnostics -Xmaxerrs 0 T6326754.java + * @compile/fail/ref=T6326754.out -XDrawDiagnostics -Xmaxerrs 10 T6326754.java + * @compile/fail/ref=T6326754.out -XDrawDiagnostics T6326754.java + */ +class TestConstructor{ + T t; + K k; + public TestConstructor(T t,K k){ + this.t =t; + } + public TestConstructor(K k){ + this.k = k; + this.t = null; + } + public TestConstructor(T t){ + this.t=t; + this.k=null; + } + public void setT(T t){ + this.t=t; + this.k=null; + } + public void setT(K k){ + this.k = k; + this.t = null; + } + public void setT(T t,K k){ + this.t = t; + this.k = k; + } +} +class TestC{ + T t; + public void setT(T t){ + this.t = t; + } +} +public class T6326754{ + public static void main(String... arg){ + TestC tC =new TestC(); + tC.setT(); + TestConstructor tc = new TestConstructor("saaa"); + tc.setT("sasa"); + TestC tC1 = new TestC(); + tC1.setT(545); + } +} diff -r d15bb22d4d39 -r 415e6de72568 langtools/test/tools/javac/T6326754.out --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/tools/javac/T6326754.out Fri Feb 05 12:26:35 2010 -0800 @@ -0,0 +1,7 @@ +T6326754.java:44:12: compiler.err.name.clash.same.erasure: TestConstructor(T), TestConstructor(K) +T6326754.java:52:17: compiler.err.name.clash.same.erasure: setT(K), setT(T) +T6326754.java:64:18: compiler.err.prob.found.req: (compiler.misc.incompatible.types), T, T +T6326754.java:70:11: compiler.err.cant.apply.symbol: kindname.method, setT, java.lang.Object, compiler.misc.no.args, kindname.class, TestC, null +- compiler.note.unchecked.filename: T6326754.java +- compiler.note.unchecked.recompile +4 errors diff -r d15bb22d4d39 -r 415e6de72568 langtools/test/tools/javac/T6472751.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/tools/javac/T6472751.java Fri Feb 05 12:26:35 2010 -0800 @@ -0,0 +1,81 @@ +/* + * Copyright 2006-2010 Sun Microsystems, Inc. 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. + * + * 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +/* + * @test + * @bug 6472751 + * @summary SourcePositions.getStartPos returns incorrect value for enum constants + * @author Peter Ahe + */ + +import com.sun.source.tree.CompilationUnitTree; +import com.sun.source.tree.Tree; +import com.sun.source.tree.Tree.Kind; +import com.sun.source.util.JavacTask; +import com.sun.source.util.SourcePositions; +import com.sun.source.util.TreeScanner; +import com.sun.source.util.Trees; +import com.sun.tools.javac.util.List; +import java.io.IOException; +import java.net.URI; +import javax.tools.JavaCompiler; +import javax.tools.JavaFileObject; +import javax.tools.SimpleJavaFileObject; +import javax.tools.ToolProvider; + +public class T6472751 { + static class MyFileObject extends SimpleJavaFileObject { + public MyFileObject() { + super(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE); + } + public CharSequence getCharContent(boolean ignoreEncodingErrors) { + return "public enum Test { ABC, DEF; }"; + } + } + static Trees trees; + static SourcePositions positions; + public static void main(String[] args) throws IOException { + JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); + JavacTask task = (JavacTask) compiler.getTask(null, null, null, null, null, List.of(new MyFileObject())); + trees = Trees.instance(task); + positions = trees.getSourcePositions(); + Iterable asts = task.parse(); + for (CompilationUnitTree ast : asts) { + new MyVisitor().scan(ast, null); + } + } + + static class MyVisitor extends TreeScanner { + @Override + public Void scan(Tree node, Void ignored) { + if (node == null) + return null; + Kind k = node.getKind(); + long pos = positions.getStartPosition(null,node); + System.out.format("%s: %s%n", k, pos); + if (k != Kind.MODIFIERS && pos < 0) + throw new Error("unexpected position found"); + return super.scan(node, ignored); + } + } +} diff -r d15bb22d4d39 -r 415e6de72568 langtools/test/tools/javac/T6567414.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/tools/javac/T6567414.java Fri Feb 05 12:26:35 2010 -0800 @@ -0,0 +1,11 @@ +/* + * @test /nodynamiccopyright/ + * @bug 6567414 + * @summary javac compiler reports no source file or line on enum constant declaration error + * @compile/fail/ref=T6567414.out -XDrawDiagnostics T6567414.java + */ +enum Test { + FOO; + Test() throws Exception {} +} + diff -r d15bb22d4d39 -r 415e6de72568 langtools/test/tools/javac/T6567414.out --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/tools/javac/T6567414.out Fri Feb 05 12:26:35 2010 -0800 @@ -0,0 +1,2 @@ +T6567414.java:8:3: compiler.err.unreported.exception.need.to.catch.or.throw: java.lang.Exception +1 error diff -r d15bb22d4d39 -r 415e6de72568 langtools/test/tools/javac/T6665791.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/tools/javac/T6665791.java Fri Feb 05 12:26:35 2010 -0800 @@ -0,0 +1,81 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. + * + * 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +/* + * @test + * @bug 6665791 + * @summary com.sun.source.tree.MethodTree.toString() does not output default values + */ + +import java.io.File; +import java.io.IOException; +import java.io.StringWriter; +import javax.tools.JavaCompiler; +import javax.tools.JavaFileObject; +import javax.tools.StandardJavaFileManager; +import javax.tools.ToolProvider; +import com.sun.source.tree.ClassTree; +import com.sun.source.util.JavacTask; +import com.sun.source.util.TreeScanner; +import java.io.FileWriter; + +public class T6665791 { + static String test = "public @interface Annotation { boolean booleanProperty() default false; }"; + static File test_java = new File("Test.java"); + + public static void main(String[] args) throws Exception { + write(test_java, test); + + JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); + StandardJavaFileManager manager = + compiler.getStandardFileManager(null, null, null); + Iterable units = manager.getJavaFileObjects(test_java); + final StringWriter sw = new StringWriter(); + JavacTask task = (JavacTask) compiler.getTask(sw, manager, null, null, + null, units); + + new TreeScanner() { + @Override + public Boolean visitClass(ClassTree arg0, Void arg1) { + sw.write(arg0.toString()); + return super.visitClass(arg0, arg1); + } + }.scan(task.parse(), null); + + System.out.println("output:"); + System.out.println(sw.toString()); + String found = sw.toString().replaceAll("\\s+", " ").trim(); + String expect = test.replaceAll("\\s+", " ").trim(); + if (!expect.equals(found)) { + System.out.println("expect: " + expect); + System.out.println("found: " + found); + throw new Exception("unexpected output"); + } + } + + static void write(File file, String body) throws IOException { + FileWriter out = new FileWriter(file); + out.write(body); + out.close(); + } +} diff -r d15bb22d4d39 -r 415e6de72568 langtools/test/tools/javac/T6855236.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/tools/javac/T6855236.java Fri Feb 05 12:26:35 2010 -0800 @@ -0,0 +1,95 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. + * + * 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +/* + * @test + * @bug 6855236 + * @summary Compiler Tree API TreePath class generates NullPointerException from Iterator + * @compile T6855236.java + * @compile -processor T6855236 -proc:only T6855236.java + */ + +import java.util.*; + +import javax.annotation.processing.*; +import javax.lang.model.*; +import javax.lang.model.element.*; + +import com.sun.source.tree.*; +import com.sun.source.util.*; + +@SupportedSourceVersion(SourceVersion.RELEASE_6) +@SupportedAnnotationTypes("*") +public class T6855236 extends AbstractProcessor { + + private Trees trees; + + @Override + public void init(ProcessingEnvironment pe) { + super.init(pe); + trees = Trees.instance(pe); + } + + @Override + public boolean process(Set arg0, RoundEnvironment roundEnvironment) { + // Scanner class to scan through various component elements + CodeVisitor visitor = new CodeVisitor(); + + for (Element e : roundEnvironment.getRootElements()) { + TreePath tp = trees.getPath(e); + visitor.scan(tp, trees); + } + + return true; + } + + class CodeVisitor extends TreePathScanner { + + @Override + public Object visitMethodInvocation(MethodInvocationTree node, Trees p) { + System.out.print("current path: "); + for (Tree t : getCurrentPath()) { + System.out.print('/'); + System.out.print(t); + } + System.out.println(); + System.out.println("parent path: " + getCurrentPath().getParentPath()); + System.out.println("method select: " + node.getMethodSelect().toString()); + for (ExpressionTree arg : node.getArguments()) { + System.out.println("argument: " + arg.toString()); + } + return super.visitMethodInvocation(node, p); + } + + @Override + public Object visitExpressionStatement(ExpressionStatementTree node, Trees p) { + ExpressionTree t = node.getExpression(); + System.out.println("expression statement: " + t.toString()); + return super.visitExpressionStatement(node, p); + } + + } + +} + + diff -r d15bb22d4d39 -r 415e6de72568 langtools/test/tools/javac/nio/compileTest/CompileTest.java --- a/langtools/test/tools/javac/nio/compileTest/CompileTest.java Thu Feb 04 15:50:59 2010 -0800 +++ b/langtools/test/tools/javac/nio/compileTest/CompileTest.java Fri Feb 05 12:26:35 2010 -0800 @@ -23,7 +23,9 @@ /** * @test - * @compile HelloPathWorld.java + * @bug 6906175 6915476 6915497 + * @summary Path-based JavaFileManager + * @compile -g HelloPathWorld.java * @run main CompileTest */ @@ -92,7 +94,8 @@ options.addAll(Arrays.asList(opts)); options.addAll(Arrays.asList( "-verbose", "-XDverboseCompilePolicy", - "-d", classes.toString() + "-d", classes.toString(), + "-g" )); Iterable compilationUnits = fm.getJavaFileObjects(testSrcDir.resolve(className + ".java")); @@ -109,6 +112,8 @@ File expect = new File("classes." + count + "/" + className + ".class"); if (!expect.exists()) throw new Exception("expected file not found: " + expect); + // Note that we explicitly specify -g for compiling both the actual class and the expected class. + // This isolates the expected class from javac options that might be given to jtreg. long expectedSize = new File(testClassesDir.toString(), className + ".class").length(); long actualSize = expect.length(); if (expectedSize != actualSize)