changeset 7033:6d8cd4f28a2f

Merge
author mfang
date Mon, 22 Apr 2013 23:17:22 -0700
parents f5fbd8065920 62fb9e2b5da1
children a6781797ae53
files make/com/sun/servicetag/Makefile src/share/classes/com/sun/servicetag/BrowserSupport.java src/share/classes/com/sun/servicetag/Installer.java src/share/classes/com/sun/servicetag/LinuxSystemEnvironment.java src/share/classes/com/sun/servicetag/RegistrationData.java src/share/classes/com/sun/servicetag/RegistrationDocument.java src/share/classes/com/sun/servicetag/Registry.java src/share/classes/com/sun/servicetag/ServiceTag.java src/share/classes/com/sun/servicetag/SolarisServiceTag.java src/share/classes/com/sun/servicetag/SolarisSystemEnvironment.java src/share/classes/com/sun/servicetag/SunConnection.java src/share/classes/com/sun/servicetag/SystemEnvironment.java src/share/classes/com/sun/servicetag/UnauthorizedAccessException.java src/share/classes/com/sun/servicetag/Util.java src/share/classes/com/sun/servicetag/WindowsSystemEnvironment.java src/share/classes/com/sun/servicetag/package.html src/share/classes/com/sun/servicetag/resources/Putback-Notes.txt src/share/classes/com/sun/servicetag/resources/javase_5_swordfish.properties src/share/classes/com/sun/servicetag/resources/javase_6_swordfish.properties src/share/classes/com/sun/servicetag/resources/javase_7_swordfish.properties src/share/classes/com/sun/servicetag/resources/javase_servicetag.properties src/share/classes/com/sun/servicetag/resources/jdk_header.png src/share/classes/com/sun/servicetag/resources/product_registration.xsd src/share/classes/com/sun/servicetag/resources/register.html src/share/classes/com/sun/servicetag/resources/register_ja.html src/share/classes/com/sun/servicetag/resources/register_zh_CN.html src/share/classes/java/time/chrono/HijrahDeviationReader.java src/share/classes/java/time/format/DateTimeBuilder.java src/share/classes/java/time/format/DateTimeFormatStyleProvider.java src/share/classes/java/time/temporal/Adjusters.java src/share/classes/java/time/temporal/Queries.java src/share/classes/sun/security/ssl/Authenticator.java src/share/classes/sun/security/util/KeyLength.java src/share/native/java/lang/ResourceBundle.c test/com/sun/servicetag/DeleteServiceTag.java test/com/sun/servicetag/DuplicateNotFound.java test/com/sun/servicetag/FindServiceTags.java test/com/sun/servicetag/InstanceUrnCheck.java test/com/sun/servicetag/InvalidRegistrationData.java test/com/sun/servicetag/InvalidServiceTag.java test/com/sun/servicetag/JavaServiceTagTest.java test/com/sun/servicetag/JavaServiceTagTest1.java test/com/sun/servicetag/NewRegistrationData.java test/com/sun/servicetag/SvcTagClient.java test/com/sun/servicetag/SystemRegistryTest.java test/com/sun/servicetag/TestLoadFromXML.java test/com/sun/servicetag/UpdateServiceTagTest.java test/com/sun/servicetag/Util.java test/com/sun/servicetag/ValidRegistrationData.java test/com/sun/servicetag/environ.properties test/com/sun/servicetag/missing-environ-field.xml test/com/sun/servicetag/newer-registry-version.xml test/com/sun/servicetag/registration.xml test/com/sun/servicetag/servicetag1.properties test/com/sun/servicetag/servicetag2.properties test/com/sun/servicetag/servicetag3.properties test/com/sun/servicetag/servicetag4.properties test/com/sun/servicetag/servicetag5.properties test/java/time/tck/java/time/TestChronology.java test/java/time/tck/java/time/chrono/TestChronoLocalDate.java test/java/time/tck/java/time/chrono/TestChronoLocalDateTime.java test/java/time/tck/java/time/chrono/TestHijrahChronology.java test/java/time/tck/java/time/chrono/TestJapaneseChronology.java test/java/time/tck/java/time/chrono/TestMinguoChronology.java test/java/time/tck/java/time/chrono/TestThaiBuddhistChronology.java test/java/time/tck/java/time/temporal/TCKDateTimeAdjusters.java test/java/time/tck/java/time/temporal/TestChronoLocalDate.java test/java/time/tck/java/time/temporal/TestChronoLocalDateTime.java test/java/time/tck/java/time/temporal/TestChronoZonedDateTime.java test/java/time/test/java/time/temporal/TestDateTimeAdjusters.java test/java/time/test/java/time/temporal/TestJapaneseChronoImpl.java test/java/time/test/java/time/temporal/TestThaiBuddhistChronoImpl.java test/java/util/ComparatorsTest.java test/sun/security/ssl/javax/net/ssl/TLSv12/ShortRSAKeyGCM.java test/sun/tools/jstat/gcPermCapacityOutput1.awk test/sun/tools/jstat/jstatGcPermCapacityOutput1.sh
diffstat 1453 files changed, 89260 insertions(+), 36494 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Mon Mar 25 16:49:25 2013 -0700
+++ b/.hgtags	Mon Apr 22 23:17:22 2013 -0700
@@ -201,3 +201,9 @@
 b2fc8e31cecc35b76188e821d4c5dc0e0b74ac24 jdk8-b77
 00b7535d743f83eda763c10b3c9ea19ba4b67f55 jdk8-b78
 c933505d75c2a0a671f06d6dac5d2237a9228d2d jdk8-b79
+dfb40f066c6ce129822f0f5dc2ac89173808781a jdk8-b80
+c0f8022eba536dcdc8aae659005b33f3982b9368 jdk8-b81
+624bcb4800065c6656171948e31ebb2925f25c7a jdk8-b82
+ac519af51769e92c51b597a730974e8607357709 jdk8-b83
+7b4721e4edb4e1c65e9c839a70d7cc67f81c7632 jdk8-b84
+296676d534c52888c36e305a2bf7f345c4ca70f8 jdk8-b85
--- a/make/com/sun/Makefile	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/com/sun/Makefile	Mon Apr 22 23:17:22 2013 -0700
@@ -45,7 +45,7 @@
 SUBDIRS_desktop    = image
 SUBDIRS_enterprise = crypto/provider jndi \
                      org rowset net/httpserver
-SUBDIRS_misc       = $(SCRIPT_SUBDIR) tracing servicetag nio demo
+SUBDIRS_misc       = $(SCRIPT_SUBDIR) tracing nio demo
 
 SUBDIRS_tools      = tools
 
--- a/make/com/sun/org/apache/xml/Makefile	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/com/sun/org/apache/xml/Makefile	Mon Apr 22 23:17:22 2013 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -34,6 +34,8 @@
 JAVAC_WARNINGS_FATAL = true
 include $(BUILDDIR)/common/Defs.gmk
 
+JAVAC_LINT_OPTIONS += -Xlint:-overrides
+
 #
 # Files to compile
 #
--- a/make/com/sun/servicetag/Makefile	Mon Mar 25 16:49:25 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-
-BUILDDIR = ../../..
-PACKAGE = com.sun.servicetag
-PRODUCT = sun
-include $(BUILDDIR)/common/Defs.gmk
-
-#
-# Files to compile
-#
-AUTO_FILES_JAVA_DIRS = com/sun/servicetag
-
-#
-# Rules
-#
-include $(BUILDDIR)/common/Classes.gmk
-
-SERVICETAG_LIBDIR = $(LIBDIR)/servicetag
-SERVICETAG_RESOURCES_DIR = $(CLASSDESTDIR)/com/sun/servicetag/resources
-FILES_copy = $(SERVICETAG_RESOURCES_DIR)/product_registration.xsd \
-             $(SERVICETAG_RESOURCES_DIR)/register.html \
-             $(SERVICETAG_RESOURCES_DIR)/register_ja.html \
-             $(SERVICETAG_RESOURCES_DIR)/register_zh_CN.html \
-             $(SERVICETAG_LIBDIR)/jdk_header.png
-
-# Add all properties files to the FILES_copy list
-SWORDFISH_properties := $(shell \
-       $(CD) $(SHARE_SRC)/classes/com/sun/servicetag/resources; \
-       $(FIND) . -name 'javase_*.properties' -print ; \
-    )
-FILES_copy += $(shell \
-   for f in $(SWORDFISH_properties) ; do \
-       echo $(SERVICETAG_RESOURCES_DIR)/$$f ; \
-   done \
-)
-
-
-#
-#OTHER_JAVACFLAGS += -Xlint:unchecked
-
-build: install-servicetag-lib copy-files
-
-copy-files: $(FILES_copy)
-
-$(CLASSBINDIR)/%: $(SHARE_SRC)/classes/%
-	$(install-file)
-
-$(SERVICETAG_LIBDIR)/jdk_header.png: $(SHARE_SRC)/classes/com/sun/servicetag/resources/jdk_header.png
-	$(install-file)
-	$(call chmod-file, 444)
-
-install-servicetag-lib:
-	@$(RM) -rf $(SERVICETAG_LIBDIR)
-	$(MKDIR) $(SERVICETAG_LIBDIR)
-
-clean clobber::
-	@$(RM) $(FILES_copy)
-
-.PHONY: copy-files
--- a/make/common/Release.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/common/Release.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -59,8 +59,7 @@
 # This is an interim solution until the ct.sym is replaced
 # with a new module system (being discussed for JDK 8).
 #
-EXPORTED_PRIVATE_PKGS = com.sun.servicetag \
-                        com.oracle.net \
+EXPORTED_PRIVATE_PKGS = com.oracle.net \
                         com.oracle.nio
 
 # 64-bit solaris has a few special cases. We define the variable
--- a/make/common/shared/Defs-utils.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/common/shared/Defs-utils.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -74,24 +74,24 @@
   UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH)
 endif
 
-# Utilities
-ifdef CROSS_COMPILE_ARCH
-  AR             = $(COMPILER_PATH)ar
-  AS             = $(COMPILER_PATH)as
-  LD             = $(COMPILER_PATH)ld
-  MCS            = $(COMPILER_PATH)mcs
-  NM             = $(COMPILER_PATH)nm
-  STRIP          = $(COMPILER_PATH)strip
-endif
-
-ifeq ($(PLATFORM),solaris)
-  AR             = $(UTILS_CCS_BIN_PATH)ar
-  AS             = $(UTILS_CCS_BIN_PATH)as
-  LD             = $(UTILS_CCS_BIN_PATH)ld
-  MCS            = $(UTILS_CCS_BIN_PATH)mcs
-  NM             = $(UTILS_CCS_BIN_PATH)nm
-  STRIP          = $(UTILS_CCS_BIN_PATH)strip
-endif
+ifndef CONFIGURE_BUILD
+  # Utilities
+  ifdef CROSS_COMPILE_ARCH
+    AR             = $(COMPILER_PATH)ar
+    AS             = $(COMPILER_PATH)as
+    LD             = $(COMPILER_PATH)ld
+    MCS            = $(COMPILER_PATH)mcs
+    NM             = $(COMPILER_PATH)nm
+    STRIP          = $(COMPILER_PATH)strip
+  else
+    AR             = $(UTILS_CCS_BIN_PATH)ar
+    AS             = $(UTILS_CCS_BIN_PATH)as
+    LD             = $(UTILS_CCS_BIN_PATH)ld
+    MCS            = $(UTILS_CCS_BIN_PATH)mcs
+    NM             = $(UTILS_CCS_BIN_PATH)nm
+    STRIP          = $(UTILS_CCS_BIN_PATH)strip
+  endif
+endif # CONFIGURE_BUILD
 
 ADB            = $(UTILS_COMMAND_PATH)adb
 BASENAME       = $(UTILS_COMMAND_PATH)basename
--- a/make/java/java/FILES_c.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/java/java/FILES_c.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -48,7 +48,6 @@
 	Proxy.c \
 	RandomAccessFile.c \
 	RandomAccessFile_md.c \
-	ResourceBundle.c \
 	Runtime.c \
 	SecurityManager.c \
 	Shutdown.c \
--- a/make/java/java/FILES_java.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/java/java/FILES_java.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -209,6 +209,7 @@
             sun/util/locale/provider/CalendarDataProviderImpl.java \
             sun/util/locale/provider/CalendarDataUtility.java \
             sun/util/locale/provider/CalendarNameProviderImpl.java \
+            sun/util/locale/provider/CalendarProviderImpl.java \
             sun/util/locale/provider/CollationRules.java \
             sun/util/locale/provider/CollatorProviderImpl.java \
             sun/util/locale/provider/CurrencyNameProviderImpl.java \
@@ -232,6 +233,7 @@
             sun/util/locale/provider/SPILocaleProviderAdapter.java \
             sun/util/locale/provider/TimeZoneNameProviderImpl.java \
             sun/util/locale/provider/TimeZoneNameUtility.java \
+	sun/util/spi/CalendarProvider.java \
     java/util/LocaleISOData.java \
         sun/util/cldr/CLDRLocaleProviderAdapter.java \
     java/util/MissingResourceException.java \
@@ -314,6 +316,8 @@
     java/util/concurrent/BrokenBarrierException.java \
     java/util/concurrent/Callable.java \
     java/util/concurrent/CancellationException.java \
+    java/util/concurrent/CompletableFuture.java \
+    java/util/concurrent/CompletionException.java \
     java/util/concurrent/CompletionService.java \
     java/util/concurrent/ConcurrentHashMap.java \
     java/util/concurrent/ConcurrentLinkedDeque.java \
--- a/make/java/java/Makefile	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/java/java/Makefile	Mon Apr 22 23:17:22 2013 -0700
@@ -313,6 +313,12 @@
 CAL_PROPS = calendars.properties
 
 #
+# Rule to copy Hijrah-umalqura calendar properties file.
+#
+HIJRAH_UMALQURA_PROPS = hijrah-config-umalqura.properties
+
+
+#
 # Rule to copy tzmappings file on Windows
 #
 ifeq ($(PLATFORM), windows)
@@ -324,7 +330,7 @@
 	$(call chmod-file, 444)
 endif
 
-build: $(LIBDIR)/$(PROPS) $(LIBDIR)/$(CAL_PROPS) $(TZMAP)
+build: $(LIBDIR)/$(PROPS) $(LIBDIR)/$(CAL_PROPS) $(LIBDIR)/$(HIJRAH_UMALQURA_PROPS) $(TZMAP)
 
 $(LIBDIR)/$(PROPS): $(PLATFORM_SRC)/lib/$(PROPS)
 	$(install-file)
@@ -332,6 +338,9 @@
 $(LIBDIR)/$(CAL_PROPS): $(SHARE_SRC)/lib/$(CAL_PROPS)
 	$(install-file)
 
+$(LIBDIR)/$(HIJRAH_UMALQURA_PROPS): $(SHARE_SRC)/lib/$(HIJRAH_UMALQURA_PROPS)
+	$(install-file)
+
 clean:: 
 	$(RM) -r $(LIBDIR)/$(PROPS) $(TZMAP)
 
--- a/make/java/java/mapfile-vers	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/java/java/mapfile-vers	Mon Apr 22 23:17:22 2013 -0700
@@ -133,7 +133,7 @@
 		Java_java_lang_ClassLoader_00024NativeLibrary_find;
 		Java_java_lang_ClassLoader_00024NativeLibrary_load;
 		Java_java_lang_ClassLoader_00024NativeLibrary_unload;
-		Java_java_lang_ClassLoader_getCaller; 
+		Java_java_lang_ClassLoader_00024NativeLibrary_findBuiltinLib;
 		Java_java_lang_ClassLoader_registerNatives;
 		Java_java_lang_Compiler_registerNatives;
 		Java_java_lang_Double_longBitsToDouble;
@@ -216,7 +216,7 @@
 		Java_java_lang_Throwable_fillInStackTrace;
                 Java_java_lang_Throwable_getStackTraceDepth;
                 Java_java_lang_Throwable_getStackTraceElement;
-		Java_java_lang_UNIXProcess_initIDs;
+		Java_java_lang_UNIXProcess_init;
 		Java_java_lang_UNIXProcess_waitForProcessExit;
 		Java_java_lang_UNIXProcess_forkAndExec;
 		Java_java_lang_UNIXProcess_destroyProcess;
@@ -232,7 +232,6 @@
 		Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2Ljava_security_AccessControlContext_2;
 		Java_java_security_AccessController_getStackAccessControlContext;
 		Java_java_security_AccessController_getInheritedAccessControlContext;
-		Java_java_util_ResourceBundle_getClassContext;
 		Java_java_util_TimeZone_getSystemTimeZoneID;
 		Java_java_util_TimeZone_getSystemGMTOffsetID;
 		Java_java_util_concurrent_atomic_AtomicLong_VMSupportsCS8;
--- a/make/java/java/reorder-i586	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/java/java/reorder-i586	Mon Apr 22 23:17:22 2013 -0700
@@ -73,7 +73,6 @@
 # Test Sleep
 # Test IntToString
 # Test LoadToolkit
-text: .text%Java_java_util_ResourceBundle_getClassContext;
 text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2Ljava_security_AccessControlContext_2;
 text: .text%JNU_GetEnv;
 text: .text%Java_java_io_UnixFileSystem_checkAccess;
--- a/make/java/java/reorder-sparc	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/java/java/reorder-sparc	Mon Apr 22 23:17:22 2013 -0700
@@ -78,7 +78,6 @@
 # Test Sleep
 # Test IntToString
 # Test LoadToolkit
-text: .text%Java_java_util_ResourceBundle_getClassContext;
 text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2Ljava_security_AccessControlContext_2;
 text: .text%JNU_GetEnv;
 text: .text%Java_java_io_UnixFileSystem_checkAccess;
--- a/make/java/java/reorder-sparcv9	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/java/java/reorder-sparcv9	Mon Apr 22 23:17:22 2013 -0700
@@ -74,7 +74,6 @@
 # Test Sleep
 # Test IntToString
 # Test LoadToolkit
-text: .text%Java_java_util_ResourceBundle_getClassContext;
 text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2Ljava_security_AccessControlContext_2;
 text: .text%JNU_GetEnv;
 text: .text%Java_java_io_UnixFileSystem_checkAccess;
--- a/make/java/nio/Makefile	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/java/nio/Makefile	Mon Apr 22 23:17:22 2013 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -384,9 +384,7 @@
 ifeq ($(PLATFORM),windows)
   OTHER_LDLIBS += $(JVMLIB) ws2_32.lib \
      -libpath:$(LIBDIR) java.lib \
-     $(OBJDIR)/../../../../sun/java.net/net/$(OBJDIRNAME)/net.lib \
-     $(OBJDIR)/../../../java.lang/java/$(OBJDIRNAME)/io_util.obj \
-     $(OBJDIR)/../../../java.lang/java/$(OBJDIRNAME)/FileDescriptor_md.obj
+     $(OBJDIR)/../../../../sun/java.net/net/$(OBJDIRNAME)/net.lib
 endif
 ifeq ($(PLATFORM), linux)
 OTHER_LDLIBS += -L$(LIBDIR)/$(LIBARCH) -ljava -lnet -lpthread $(LIBDL)
--- a/make/java/text/base/FILES_java.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/java/text/base/FILES_java.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -105,5 +105,7 @@
         sun/text/resources/CollationData.java \
 	\
         sun/text/resources/FormatData.java \
+        sun/text/resources/JavaTimeSupplementary.java \
         sun/text/resources/en/FormatData_en.java \
-        sun/text/resources/en/FormatData_en_US.java
+        sun/text/resources/en/FormatData_en_US.java \
+        sun/text/resources/en/JavaTimeSupplementary_en.java \
--- a/make/java/util/FILES_java.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/java/util/FILES_java.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,7 @@
 FILES_java = \
         sun/util/resources/LocaleData.java \
         sun/util/resources/OpenListResourceBundle.java \
+        sun/util/resources/ParallelListResourceBundle.java \
         sun/util/resources/LocaleNamesBundle.java \
         sun/util/resources/TimeZoneNamesBundle.java \
         sun/util/resources/TimeZoneNames.java \
--- a/make/javax/others/Makefile	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/javax/others/Makefile	Mon Apr 22 23:17:22 2013 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,6 +33,8 @@
 
 include $(BUILDDIR)/common/Defs.gmk
 
+JAVAC_LINT_OPTIONS += -Xlint:-deprecation
+
 #
 # Files to compile
 #
--- a/make/sun/cmm/lcms/Makefile	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/sun/cmm/lcms/Makefile	Mon Apr 22 23:17:22 2013 -0700
@@ -28,6 +28,9 @@
 LIBRARY = lcms
 PRODUCT = sun
 
+# Use highest level of optimization on this library
+OPTIMIZATION_LEVEL = HIGHEST
+
 include $(BUILDDIR)/common/Defs.gmk
 
 #
--- a/make/sun/cmm/lcms/mapfile-vers	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/sun/cmm/lcms/mapfile-vers	Mon Apr 22 23:17:22 2013 -0700
@@ -27,13 +27,12 @@
 
 SUNWprivate_1.1 {
 	global:
-        Java_sun_java2d_cmm_lcms_LCMS_loadProfile;
-        Java_sun_java2d_cmm_lcms_LCMS_freeProfile;
+        Java_sun_java2d_cmm_lcms_LCMS_loadProfileNative;
+        Java_sun_java2d_cmm_lcms_LCMS_freeProfileNative;
         Java_sun_java2d_cmm_lcms_LCMS_getProfileSize;
         Java_sun_java2d_cmm_lcms_LCMS_getProfileData;
-        Java_sun_java2d_cmm_lcms_LCMS_getTagSize;
-        Java_sun_java2d_cmm_lcms_LCMS_getTagData;
-        Java_sun_java2d_cmm_lcms_LCMS_setTagData;
+        Java_sun_java2d_cmm_lcms_LCMS_getTagNative;
+        Java_sun_java2d_cmm_lcms_LCMS_setTagDataNative;
         Java_sun_java2d_cmm_lcms_LCMS_colorConvert;
         Java_sun_java2d_cmm_lcms_LCMS_getProfileID;
         Java_sun_java2d_cmm_lcms_LCMS_initLCMS;
--- a/make/sun/font/FILES_c.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/sun/font/FILES_c.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -106,7 +106,21 @@
         OpenTypeLayoutEngine.cpp \
         ThaiLayoutEngine.cpp \
         ScriptAndLanguageTags.cpp \
-        FontInstanceAdapter.cpp
+        FontInstanceAdapter.cpp \
+        ContextualGlyphInsertionProc2.cpp \
+        ContextualGlyphSubstProc2.cpp \
+        GXLayoutEngine2.cpp \
+        IndicRearrangementProcessor2.cpp \
+        LigatureSubstProc2.cpp \
+        MorphTables2.cpp \
+        NonContextualGlyphSubstProc2.cpp \
+        SegmentArrayProcessor2.cpp \
+        SegmentSingleProcessor2.cpp \
+        SimpleArrayProcessor2.cpp \
+        SingleTableProcessor2.cpp \
+        StateTableProcessor2.cpp \
+        SubtableProcessor2.cpp \
+        TrimmedArrayProcessor2.cpp
 
 
 ifeq ($(PLATFORM),windows)
--- a/make/sun/splashscreen/Makefile	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/sun/splashscreen/Makefile	Mon Apr 22 23:17:22 2013 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -83,21 +83,17 @@
 				  -framework JavaNativeFoundation
 else ifneq ($(PLATFORM), windows)
   CFLAGS += -DWITH_X11
-  ifeq ($(PLATFORM), macosx))
-    OTHER_LDLIBS += -liconv
-    CPPFLAGS += -I$(OPENWIN_HOME)/include \
-                -I$(OPENWIN_HOME)/include/X11/extensions
-    OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -pthread
-  else
-    CPPFLAGS += -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions
-    OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -lpthread
-  endif
+  CPPFLAGS += -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions
+  OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -lpthread
 else # PLATFORM
   CFLAGS += -DWITH_WIN32
   OTHER_LDLIBS += kernel32.lib user32.lib gdi32.lib delayimp.lib /DELAYLOAD:user32.dll
 #$(JVMLIB) $(OBJDIR)/../../jpeg/$(OBJDIRNAME)/jpeg$(SUFFIX).lib
 endif # PLATFORM
 
+# Add giflib include path for all platforms
+CPPFLAGS += -I$(SHARE_SRC)/native/sun/awt/giflib
+
 #
 # Add to ambient vpath to get files in a subdirectory
 #
--- a/make/sun/text/FILES_java.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/sun/text/FILES_java.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -227,5 +227,54 @@
                 sun/util/resources/sv/TimeZoneNames_sv.java \
 		sun/util/resources/zh/TimeZoneNames_zh_CN.java \
 		sun/util/resources/zh/TimeZoneNames_zh_TW.java \
-		sun/util/resources/zh/TimeZoneNames_zh_HK.java
+		sun/util/resources/zh/TimeZoneNames_zh_HK.java \
+                \
+                sun/text/resources/ar/JavaTimeSupplementary_ar.java \
+                sun/text/resources/be/JavaTimeSupplementary_be.java \
+                sun/text/resources/bg/JavaTimeSupplementary_bg.java \
+                sun/text/resources/ca/JavaTimeSupplementary_ca.java \
+                sun/text/resources/cs/JavaTimeSupplementary_cs.java \
+                sun/text/resources/da/JavaTimeSupplementary_da.java \
+                sun/text/resources/de/JavaTimeSupplementary_de.java \
+                sun/text/resources/el/JavaTimeSupplementary_el.java \
+                sun/text/resources/en/JavaTimeSupplementary_en_GB.java \
+                sun/text/resources/en/JavaTimeSupplementary_en_SG.java \
+                sun/text/resources/es/JavaTimeSupplementary_es.java \
+                sun/text/resources/et/JavaTimeSupplementary_et.java \
+                sun/text/resources/fi/JavaTimeSupplementary_fi.java \
+                sun/text/resources/fr/JavaTimeSupplementary_fr.java \
+                sun/text/resources/ga/JavaTimeSupplementary_ga.java \
+                sun/text/resources/hi/JavaTimeSupplementary_hi_IN.java \
+                sun/text/resources/hr/JavaTimeSupplementary_hr.java \
+                sun/text/resources/hu/JavaTimeSupplementary_hu.java \
+                sun/text/resources/is/JavaTimeSupplementary_is.java \
+                sun/text/resources/it/JavaTimeSupplementary_it.java \
+                sun/text/resources/iw/JavaTimeSupplementary_iw.java \
+                sun/text/resources/iw/JavaTimeSupplementary_iw_IL.java \
+                sun/text/resources/ja/JavaTimeSupplementary_ja.java \
+                sun/text/resources/ko/JavaTimeSupplementary_ko.java \
+                sun/text/resources/lt/JavaTimeSupplementary_lt.java \
+                sun/text/resources/lv/JavaTimeSupplementary_lv.java \
+                sun/text/resources/mk/JavaTimeSupplementary_mk.java \
+                sun/text/resources/ms/JavaTimeSupplementary_ms.java \
+                sun/text/resources/mt/JavaTimeSupplementary_mt.java \
+                sun/text/resources/nl/JavaTimeSupplementary_nl.java \
+                sun/text/resources/no/JavaTimeSupplementary_no.java \
+                sun/text/resources/pl/JavaTimeSupplementary_pl.java \
+                sun/text/resources/pt/JavaTimeSupplementary_pt.java \
+                sun/text/resources/pt/JavaTimeSupplementary_pt_PT.java \
+                sun/text/resources/ro/JavaTimeSupplementary_ro.java \
+                sun/text/resources/ru/JavaTimeSupplementary_ru.java \
+                sun/text/resources/sk/JavaTimeSupplementary_sk.java \
+                sun/text/resources/sl/JavaTimeSupplementary_sl.java \
+                sun/text/resources/sq/JavaTimeSupplementary_sq.java \
+                sun/text/resources/sr/JavaTimeSupplementary_sr.java \
+                sun/text/resources/sr/JavaTimeSupplementary_sr_Latn.java \
+                sun/text/resources/sv/JavaTimeSupplementary_sv.java \
+                sun/text/resources/th/JavaTimeSupplementary_th.java \
+                sun/text/resources/tr/JavaTimeSupplementary_tr.java \
+                sun/text/resources/uk/JavaTimeSupplementary_uk.java \
+                sun/text/resources/vi/JavaTimeSupplementary_vi.java \
+                sun/text/resources/zh/JavaTimeSupplementary_zh.java \
+                sun/text/resources/zh/JavaTimeSupplementary_zh_TW.java
 
--- a/make/sun/tzdb/Makefile	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/sun/tzdb/Makefile	Mon Apr 22 23:17:22 2013 -0700
@@ -42,7 +42,6 @@
 # Time zone data file creation
 #
 TZDATA_DIR := ../javazic/tzdata
-TZDATA_VER := $(subst tzdata,,$(shell $(GREP) '^tzdata' $(TZDATA_DIR)/VERSION))
 TZFILE := \
     africa antarctica asia australasia europe northamerica \
     pacificnew southamerica backward etcetera \
@@ -50,9 +49,7 @@
 
 TZFILES := $(addprefix $(TZDATA_DIR)/,$(TZFILE))
 
-
-
-TZDB_JAR = tzdb.jar
+TZDB_DAT = $(LIBDIR)/tzdb.dat
 
 #
 # Rules
@@ -62,13 +59,12 @@
 #
 # Add to the build rule
 #
-build: $(LIBDIR)/$(TZDB_JAR)
+build: $(TZDB_DAT)
 
-$(LIBDIR)/$(TZDB_JAR): $(TZFILES)
+$(TZDB_DAT): $(TZFILES)
 	$(prep-target)
-	echo build tzdb from version $(TZDATA_VER)
 	$(BOOT_JAVA_CMD) -jar $(BUILDTOOLJARDIR)/tzdb.jar \
-	  -version $(TZDATA_VER) -srcdir $(TZDATA_DIR) -dstdir $(LIBDIR) $(TZFILE)
+	  -srcdir $(TZDATA_DIR) -dstfile $(TZDB_DAT) $(TZFILE)
 
 clean clobber::
-	$(RM) $(LIBDIR)/$(TZDB_JAR)
+	$(RM) $(TZDB_DAT)
--- a/make/sun/xawt/FILES_c_unix.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/sun/xawt/FILES_c_unix.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -76,6 +76,7 @@
 	debug_trace.c \
 	debug_util.c \
 	awt_Plugin.c \
+        gnome_interface.c \
 	gtk2_interface.c \
         swing_GTKEngine.c \
         swing_GTKStyle.c \
--- a/make/tools/src/build/tools/cldrconverter/AbstractLDMLHandler.java	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/tools/src/build/tools/cldrconverter/AbstractLDMLHandler.java	Mon Apr 22 23:17:22 2013 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,7 @@
 
 package build.tools.cldrconverter;
 
+import build.tools.cldrconverter.CLDRConverter.DraftType;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
@@ -88,7 +89,7 @@
         }
         String draftValue = attributes.getValue("draft");
         if (draftValue != null) {
-            return CLDRConverter.draftType > CLDRConverter.DRAFT_MAP.get(draftValue);
+            return DraftType.getDefault().ordinal() > DraftType.forKeyword(draftValue).ordinal();
         }
         return false;
     }
--- a/make/tools/src/build/tools/cldrconverter/Bundle.java	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/tools/src/build/tools/cldrconverter/Bundle.java	Mon Apr 22 23:17:22 2013 -0700
@@ -266,6 +266,9 @@
             handleMultipleInheritance(myMap, parentsMap, calendarPrefix + "DayNarrows");
             handleMultipleInheritance(myMap, parentsMap, calendarPrefix + "AmPmMarkers");
             handleMultipleInheritance(myMap, parentsMap, calendarPrefix + "narrow.AmPmMarkers");
+            handleMultipleInheritance(myMap, parentsMap, calendarPrefix + "QuarterNames");
+            handleMultipleInheritance(myMap, parentsMap, calendarPrefix + "QuarterAbbreviations");
+            handleMultipleInheritance(myMap, parentsMap, calendarPrefix + "QuarterNarrows");
 
             adjustEraNames(myMap, calendarType);
 
@@ -484,25 +487,33 @@
         for (String k : patternKeys) {
             if (myMap.containsKey(calendarPrefix + k)) {
                 int len = patternKeys.length;
-                List<String> rawPatterns = new ArrayList<>();
-                List<String> patterns = new ArrayList<>();
+                List<String> rawPatterns = new ArrayList<>(len);
+                List<String> patterns = new ArrayList<>(len);
                 for (int i = 0; i < len; i++) {
                     String key = calendarPrefix + patternKeys[i];
                     String pattern = (String) myMap.remove(key);
                     if (pattern == null) {
                         pattern = (String) parentsMap.remove(key);
                     }
+                    rawPatterns.add(i, pattern);
                     if (pattern != null) {
-                        rawPatterns.add(i, pattern);
                         patterns.add(i, translateDateFormatLetters(calendarType, pattern));
+                    } else {
+                        patterns.add(i, null);
                     }
                 }
+                // If patterns is empty or has any nulls, discard patterns.
                 if (patterns.isEmpty()) {
                     return;
                 }
+                for (String p : patterns) {
+                    if (p == null) {
+                        return;
+                    }
+                }
                 String key = calendarPrefix + name;
                 if (!rawPatterns.equals(patterns)) {
-                    myMap.put("cldr." + key, rawPatterns.toArray(new String[len]));
+                    myMap.put("java.time." + key, rawPatterns.toArray(new String[len]));
                 }
                 myMap.put(key, patterns.toArray(new String[len]));
                 break;
--- a/make/tools/src/build/tools/cldrconverter/CLDRConverter.java	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/tools/src/build/tools/cldrconverter/CLDRConverter.java	Mon Apr 22 23:17:22 2013 -0700
@@ -68,25 +68,43 @@
     static MetaZonesParseHandler handlerMetaZones;
     private static BundleGenerator bundleGenerator;
 
-    static int draftType;
-    private static final String DRAFT_UNCONFIRMED = "unconfirmed";
-    private static final String DRAFT_PROVISIONAL = "provisional";
-    private static final String DRAFT_CONTRIBUTED = "contributed";
-    private static final String DRAFT_APPROVED = "approved";
-    private static final String DRAFT_TRUE = "true";
-    private static final String DRAFT_FALSE = "false";
-    private static final String DRAFT_DEFAULT = DRAFT_APPROVED;
-    static final Map<String, Integer> DRAFT_MAP = new HashMap<>();
+    static enum DraftType {
+        UNCONFIRMED,
+        PROVISIONAL,
+        CONTRIBUTED,
+        APPROVED;
 
-    static {
-        DRAFT_MAP.put(DRAFT_UNCONFIRMED, 0);
-        DRAFT_MAP.put(DRAFT_PROVISIONAL, 1);
-        DRAFT_MAP.put(DRAFT_CONTRIBUTED, 2);
-        DRAFT_MAP.put(DRAFT_APPROVED, 3);
-        DRAFT_MAP.put(DRAFT_TRUE, 0);
-        DRAFT_MAP.put(DRAFT_FALSE, 2);
-        draftType = DRAFT_MAP.get(DRAFT_DEFAULT);
-    };
+        private static final Map<String, DraftType> map = new HashMap<>();
+        static {
+            for (DraftType dt : values()) {
+                map.put(dt.getKeyword(), dt);
+            }
+        }
+        static private DraftType defaultType = CONTRIBUTED;
+
+        private final String keyword;
+
+        private DraftType() {
+            keyword = this.name().toLowerCase(Locale.ROOT);
+
+        }
+
+        static DraftType forKeyword(String keyword) {
+            return map.get(keyword);
+        }
+
+        static DraftType getDefault() {
+            return defaultType;
+        }
+
+        static void setDefault(String keyword) {
+            defaultType = Objects.requireNonNull(forKeyword(keyword));
+        }
+
+        String getKeyword() {
+            return keyword;
+        }
+    }
 
     static boolean USE_UTF8 = false;
     private static boolean verbose;
@@ -106,7 +124,7 @@
                     case "-draft":
                         String draftDataType = args[++i];
                         try {
-                            draftType = DRAFT_MAP.get(draftDataType);
+                            DraftType.setDefault(draftDataType);
                         } catch (NullPointerException e) {
                             severe("Error: incorrect draft value: %s%n", draftDataType);
                             System.exit(1);
@@ -525,7 +543,7 @@
         "standalone.MonthNames",
         "MonthAbbreviations",
         "standalone.MonthAbbreviations",
-        "MonthNarrow",
+        "MonthNarrows",
         "standalone.MonthNarrows",
         "DayNames",
         "standalone.DayNames",
@@ -533,6 +551,12 @@
         "standalone.DayAbbreviations",
         "DayNarrows",
         "standalone.DayNarrows",
+        "QuarterNames",
+        "standalone.QuarterNames",
+        "QuarterAbbreviations",
+        "standalone.QuarterAbbreviations",
+        "QuarterNarrows",
+        "standalone.QuarterNarrows",
         "AmPmMarkers",
         "narrow.AmPmMarkers",
         "long.Eras",
@@ -560,7 +584,7 @@
             String prefix = calendarType.keyElementName();
             for (String element : FORMAT_DATA_ELEMENTS) {
                 String key = prefix + element;
-                copyIfPresent(map, "cldr." + key, formatData);
+                copyIfPresent(map, "java.time." + key, formatData);
                 copyIfPresent(map, key, formatData);
             }
         }
--- a/make/tools/src/build/tools/cldrconverter/LDMLParseHandler.java	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/tools/src/build/tools/cldrconverter/LDMLParseHandler.java	Mon Apr 22 23:17:22 2013 -0700
@@ -356,6 +356,44 @@
                 }
             }
             break;
+        case "quarterContext":
+            {
+                // for FormatData
+                // need to keep stand-alone and format, to allow for inheritance in CLDR
+                String type = attributes.getValue("type");
+                if ("stand-alone".equals(type) || "format".equals(type)) {
+                    pushKeyContainer(qName, attributes, type);
+                } else {
+                    pushIgnoredContainer(qName);
+                }
+            }
+            break;
+        case "quarterWidth":
+            {
+                // for FormatData
+                // keep info about the context type so we can sort out inheritance later
+                String prefix = (currentCalendarType == null) ? "" : currentCalendarType.keyElementName();
+                switch (attributes.getValue("type")) {
+                case "wide":
+                    pushStringArrayEntry(qName, attributes, prefix + "QuarterNames/" + getContainerKey(), 4);
+                    break;
+                case "abbreviated":
+                    pushStringArrayEntry(qName, attributes, prefix + "QuarterAbbreviations/" + getContainerKey(), 4);
+                    break;
+                case "narrow":
+                    pushStringArrayEntry(qName, attributes, prefix + "QuarterNarrows/" + getContainerKey(), 4);
+                    break;
+                default:
+                    pushIgnoredContainer(qName);
+                    break;
+                }
+            }
+            break;
+        case "quarter":
+            // for FormatData
+            // add to string array entry of quarterWidth element
+            pushStringArrayElement(qName, attributes, Integer.parseInt(attributes.getValue("type")) - 1);
+            break;
 
         //
         // Time zone names
--- a/make/tools/src/build/tools/tzdb/TzdbZoneRulesCompiler.java	Mon Mar 25 16:49:25 2013 -0700
+++ b/make/tools/src/build/tools/tzdb/TzdbZoneRulesCompiler.java	Mon Apr 22 23:17:22 2013 -0700
@@ -58,12 +58,12 @@
 
 import static build.tools.tzdb.Utils.*;
 
-import java.io.BufferedReader;
 import java.io.ByteArrayOutputStream;
 import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.FileReader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.text.ParsePosition;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -71,132 +71,131 @@
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
+import java.util.NoSuchElementException;
+import java.util.Scanner;
 import java.util.SortedMap;
-import java.util.StringTokenizer;
 import java.util.TreeMap;
-import java.util.TreeSet;
-import java.util.jar.JarOutputStream;
-import java.util.zip.ZipEntry;
 import java.util.regex.Matcher;
+import java.util.regex.MatchResult;
 import java.util.regex.Pattern;
 
 /**
- * A builder that can read the TZDB time-zone files and build {@code ZoneRules} instances.
+ * A compiler that reads a set of TZDB time-zone files and builds a single
+ * combined TZDB data file.
  *
  * @since 1.8
  */
 public final class TzdbZoneRulesCompiler {
 
-    private static final Matcher YEAR = Pattern.compile("(?i)(?<min>min)|(?<max>max)|(?<only>only)|(?<year>[0-9]+)").matcher("");
-    private static final Matcher MONTH = Pattern.compile("(?i)(jan)|(feb)|(mar)|(apr)|(may)|(jun)|(jul)|(aug)|(sep)|(oct)|(nov)|(dec)").matcher("");
-    private static final Matcher DOW = Pattern.compile("(?i)(mon)|(tue)|(wed)|(thu)|(fri)|(sat)|(sun)").matcher("");
-    private static final Matcher TIME = Pattern.compile("(?<neg>-)?+(?<hour>[0-9]{1,2})(:(?<minute>[0-5][0-9]))?+(:(?<second>[0-5][0-9]))?+").matcher("");
+    public static void main(String[] args) {
+        new TzdbZoneRulesCompiler().compile(args);
+    }
 
-    /**
-     * Constant for MJD 1972-01-01.
-     */
-    private static final long MJD_1972_01_01 = 41317L;
-
-    /**
-     * Reads a set of TZDB files and builds a single combined data file.
-     *
-     * @param args  the arguments
-     */
-    public static void main(String[] args) {
+    private void compile(String[] args) {
         if (args.length < 2) {
             outputHelp();
             return;
         }
-
-        // parse args
+        Path srcDir = null;
+        Path dstFile = null;
         String version = null;
-        File baseSrcDir = null;
-        File dstDir = null;
-        boolean verbose = false;
-
-        // parse options
+        // parse args/options
         int i;
         for (i = 0; i < args.length; i++) {
             String arg = args[i];
-            if (arg.startsWith("-") == false) {
+            if (!arg.startsWith("-")) {
                 break;
             }
             if ("-srcdir".equals(arg)) {
-                if (baseSrcDir == null && ++i < args.length) {
-                    baseSrcDir = new File(args[i]);
+                if (srcDir == null && ++i < args.length) {
+                    srcDir = Paths.get(args[i]);
                     continue;
                 }
-            } else if ("-dstdir".equals(arg)) {
-                if (dstDir == null && ++i < args.length) {
-                    dstDir = new File(args[i]);
-                    continue;
-                }
-            } else if ("-version".equals(arg)) {
-                if (version == null && ++i < args.length) {
-                    version = args[i];
+            } else if ("-dstfile".equals(arg)) {
+                if (dstFile == null && ++i < args.length) {
+                    dstFile = Paths.get(args[i]);
                     continue;
                 }
             } else if ("-verbose".equals(arg)) {
-                if (verbose == false) {
+                if (!verbose) {
                     verbose = true;
                     continue;
                 }
-            } else if ("-help".equals(arg) == false) {
+            } else if (!"-help".equals(arg)) {
                 System.out.println("Unrecognised option: " + arg);
             }
             outputHelp();
             return;
         }
-
         // check source directory
-        if (baseSrcDir == null) {
-            System.out.println("Source directory must be specified using -srcdir: " + baseSrcDir);
-            return;
+        if (srcDir == null) {
+            System.err.println("Source directory must be specified using -srcdir");
+            System.exit(1);
         }
-        if (baseSrcDir.isDirectory() == false) {
-            System.out.println("Source does not exist or is not a directory: " + baseSrcDir);
-            return;
+        if (!Files.isDirectory(srcDir)) {
+            System.err.println("Source does not exist or is not a directory: " + srcDir);
+            System.exit(1);
         }
-        dstDir = (dstDir != null ? dstDir : baseSrcDir);
-
         // parse source file names
-        List<String> srcFileNames = Arrays.asList(Arrays.copyOfRange(args, i, args.length));
-        if (srcFileNames.isEmpty()) {
-            System.out.println("Source filenames not specified, using default set");
-            System.out.println("(africa antarctica asia australasia backward etcetera europe northamerica southamerica)");
-            srcFileNames = Arrays.asList("africa", "antarctica", "asia", "australasia", "backward",
-                    "etcetera", "europe", "northamerica", "southamerica");
+        if (i == args.length) {
+            i = 0;
+            args = new String[] {"africa", "antarctica", "asia", "australasia", "europe",
+                                 "northamerica","southamerica", "backward", "etcetera" };
+            System.out.println("Source filenames not specified, using default set ( ");
+            for (String name : args) {
+                System.out.printf(name + " ");
+            }
+            System.out.println(")");
         }
-
-        // find source directories to process
-        List<File> srcDirs = new ArrayList<>();
-        if (version != null) {
-            //  if the "version" specified, as in jdk repo, the "baseSrcDir" is
-            //  the "srcDir" that contains the tzdb data.
-            srcDirs.add(baseSrcDir);
-        } else {
-            File[] dirs = baseSrcDir.listFiles();
-            for (File dir : dirs) {
-                if (dir.isDirectory() && dir.getName().matches("[12][0-9]{3}[A-Za-z0-9._-]+")) {
-                    srcDirs.add(dir);
-                }
+        // source files in this directory
+        List<Path> srcFiles = new ArrayList<>();
+        for (; i < args.length; i++) {
+            Path file = srcDir.resolve(args[i]);
+            if (Files.exists(file)) {
+                srcFiles.add(file);
+            } else {
+                System.err.println("Source directory does not contain source file: " + args[i]);
+                System.exit(1);
             }
         }
-        if (srcDirs.isEmpty()) {
-            System.out.println("Source directory contains no valid source folders: " + baseSrcDir);
-            return;
+        // check destination file
+        if (dstFile == null) {
+            dstFile = srcDir.resolve("tzdb.dat");
+        } else {
+            Path parent = dstFile.getParent();
+            if (parent != null && !Files.exists(parent)) {
+                System.err.println("Destination directory does not exist: " + parent);
+                System.exit(1);
+            }
         }
-        // check destination directory
-        if (dstDir.exists() == false && dstDir.mkdirs() == false) {
-            System.out.println("Destination directory could not be created: " + dstDir);
-            return;
+        try {
+            // get tzdb source version
+            Matcher m = Pattern.compile("tzdata(?<ver>[0-9]{4}[A-z])")
+                               .matcher(new String(Files.readAllBytes(srcDir.resolve("VERSION")),
+                                                   "ISO-8859-1"));
+            if (m.find()) {
+                version = m.group("ver");
+            } else {
+                System.exit(1);
+                System.err.println("Source directory does not contain file: VERSION");
+            }
+            printVerbose("Compiling TZDB version " + version);
+            // parse source files
+            for (Path file : srcFiles) {
+                printVerbose("Parsing file: " + file);
+                parseFile(file);
+            }
+            // build zone rules
+            printVerbose("Building rules");
+            buildZoneRules();
+            // output to file
+            printVerbose("Outputting tzdb file: " + dstFile);
+            outputFile(dstFile, version, builtZones, links);
+        } catch (Exception ex) {
+            System.out.println("Failed: " + ex.toString());
+            ex.printStackTrace();
+            System.exit(1);
         }
-        if (dstDir.isDirectory() == false) {
-            System.out.println("Destination is not a directory: " + dstDir);
-            return;
-        }
-        process(srcDirs, srcFileNames, dstDir, version, verbose);
         System.exit(0);
     }
 
@@ -206,145 +205,35 @@
     private static void outputHelp() {
         System.out.println("Usage: TzdbZoneRulesCompiler <options> <tzdb source filenames>");
         System.out.println("where options include:");
-        System.out.println("   -srcdir <directory>   Where to find source directories (required)");
-        System.out.println("   -dstdir <directory>   Where to output generated files (default srcdir)");
-        System.out.println("   -version <version>    Specify the version, such as 2009a (optional)");
+        System.out.println("   -srcdir  <directory>  Where to find tzdb source directory (required)");
+        System.out.println("   -dstfile <file>       Where to output generated file (default srcdir/tzdb.dat)");
         System.out.println("   -help                 Print this usage message");
         System.out.println("   -verbose              Output verbose information during compilation");
-        System.out.println(" There must be one directory for each version in srcdir");
-        System.out.println(" Each directory must have the name of the version, such as 2009a");
-        System.out.println(" Each directory must contain the unpacked tzdb files, such as asia or europe");
-        System.out.println(" Directories must match the regex [12][0-9][0-9][0-9][A-Za-z0-9._-]+");
-        System.out.println(" There will be one jar file for each version and one combined jar in dstdir");
-        System.out.println(" If the version is specified, only that version is processed");
-    }
-
-    /**
-     * Process to create the jar files.
-     */
-    private static void process(List<File> srcDirs, List<String> srcFileNames, File dstDir, String version, boolean verbose) {
-        // build actual jar files
-        Map<String, SortedMap<String, ZoneRules>> allBuiltZones = new TreeMap<>();
-        Set<String> allRegionIds = new TreeSet<String>();
-        Set<ZoneRules> allRules = new HashSet<ZoneRules>();
-        Map<String, Map<String, String>> allLinks = new TreeMap<>();
-
-        for (File srcDir : srcDirs) {
-            // source files in this directory
-            List<File> srcFiles = new ArrayList<>();
-            for (String srcFileName : srcFileNames) {
-                File file = new File(srcDir, srcFileName);
-                if (file.exists()) {
-                    srcFiles.add(file);
-                }
-            }
-            if (srcFiles.isEmpty()) {
-                continue;  // nothing to process
-            }
-
-            // compile
-            String loopVersion = (srcDirs.size() == 1 && version != null)
-                                 ? version : srcDir.getName();
-            TzdbZoneRulesCompiler compiler = new TzdbZoneRulesCompiler(loopVersion, srcFiles, verbose);
-            try {
-                // compile
-                compiler.compile();
-                SortedMap<String, ZoneRules> builtZones = compiler.getZones();
-
-                // output version-specific file
-                File dstFile = version == null ? new File(dstDir, "tzdb" + loopVersion + ".jar")
-                                               : new File(dstDir, "tzdb.jar");
-                if (verbose) {
-                    System.out.println("Outputting file: " + dstFile);
-                }
-                outputFile(dstFile, loopVersion, builtZones, compiler.links);
-
-                // create totals
-                allBuiltZones.put(loopVersion, builtZones);
-                allRegionIds.addAll(builtZones.keySet());
-                allRules.addAll(builtZones.values());
-                allLinks.put(loopVersion, compiler.links);
-            } catch (Exception ex) {
-                System.out.println("Failed: " + ex.toString());
-                ex.printStackTrace();
-                System.exit(1);
-            }
-        }
-
-        // output merged file
-        if (version == null) {
-            File dstFile = new File(dstDir, "tzdb-all.jar");
-            if (verbose) {
-                System.out.println("Outputting combined file: " + dstFile);
-            }
-            outputFile(dstFile, allBuiltZones, allRegionIds, allRules, allLinks);
-        }
+        System.out.println(" The source directory must contain the unpacked tzdb files, such as asia or europe");
     }
 
     /**
      * Outputs the file.
      */
-    private static void outputFile(File dstFile,
-                                   String version,
-                                   SortedMap<String, ZoneRules> builtZones,
-                                   Map<String, String> links) {
-        Map<String, SortedMap<String, ZoneRules>> loopAllBuiltZones = new TreeMap<>();
-        loopAllBuiltZones.put(version, builtZones);
-        Set<String> loopAllRegionIds = new TreeSet<String>(builtZones.keySet());
-        Set<ZoneRules> loopAllRules = new HashSet<ZoneRules>(builtZones.values());
-        Map<String, Map<String, String>> loopAllLinks = new TreeMap<>();
-        loopAllLinks.put(version, links);
-        outputFile(dstFile, loopAllBuiltZones, loopAllRegionIds, loopAllRules, loopAllLinks);
-    }
-
-    /**
-     * Outputs the file.
-     */
-    private static void outputFile(File dstFile,
-                                   Map<String, SortedMap<String, ZoneRules>> allBuiltZones,
-                                   Set<String> allRegionIds,
-                                   Set<ZoneRules> allRules,
-                                   Map<String, Map<String, String>> allLinks) {
-        try (JarOutputStream jos = new JarOutputStream(new FileOutputStream(dstFile))) {
-            outputTZEntry(jos, allBuiltZones, allRegionIds, allRules, allLinks);
-        } catch (Exception ex) {
-            System.out.println("Failed: " + ex.toString());
-            ex.printStackTrace();
-            System.exit(1);
-        }
-    }
-
-    /**
-     * Outputs the timezone entry in the JAR file.
-     */
-    private static void outputTZEntry(JarOutputStream jos,
-                                      Map<String, SortedMap<String, ZoneRules>> allBuiltZones,
-                                      Set<String> allRegionIds,
-                                      Set<ZoneRules> allRules,
-                                      Map<String, Map<String, String>> allLinks) {
-        // this format is not publicly specified
-        try {
-            jos.putNextEntry(new ZipEntry("TZDB.dat"));
-            DataOutputStream out = new DataOutputStream(jos);
-
+    private void outputFile(Path dstFile, String version,
+                            SortedMap<String, ZoneRules> builtZones,
+                            Map<String, String> links) {
+        try (DataOutputStream out = new DataOutputStream(Files.newOutputStream(dstFile))) {
             // file version
             out.writeByte(1);
             // group
             out.writeUTF("TZDB");
             // versions
-            String[] versionArray = allBuiltZones.keySet().toArray(new String[allBuiltZones.size()]);
-            out.writeShort(versionArray.length);
-            for (String version : versionArray) {
-                out.writeUTF(version);
-            }
+            out.writeShort(1);
+            out.writeUTF(version);
             // regions
-            String[] regionArray = allRegionIds.toArray(new String[allRegionIds.size()]);
+            String[] regionArray = builtZones.keySet().toArray(new String[builtZones.size()]);
             out.writeShort(regionArray.length);
             for (String regionId : regionArray) {
                 out.writeUTF(regionId);
             }
-            // rules
-            List<ZoneRules> rulesList = new ArrayList<>(allRules);
+            // rules  -- hashset -> remove the dup
+            List<ZoneRules> rulesList = new ArrayList<>(new HashSet<>(builtZones.values()));
             out.writeShort(rulesList.size());
             ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
             for (ZoneRules rules : rulesList) {
@@ -357,27 +246,22 @@
                 out.write(bytes);
             }
             // link version-region-rules
-            for (String version : allBuiltZones.keySet()) {
-                out.writeShort(allBuiltZones.get(version).size());
-                for (Map.Entry<String, ZoneRules> entry : allBuiltZones.get(version).entrySet()) {
-                     int regionIndex = Arrays.binarySearch(regionArray, entry.getKey());
-                     int rulesIndex = rulesList.indexOf(entry.getValue());
-                     out.writeShort(regionIndex);
-                     out.writeShort(rulesIndex);
-                }
+            out.writeShort(builtZones.size());
+            for (Map.Entry<String, ZoneRules> entry : builtZones.entrySet()) {
+                 int regionIndex = Arrays.binarySearch(regionArray, entry.getKey());
+                 int rulesIndex = rulesList.indexOf(entry.getValue());
+                 out.writeShort(regionIndex);
+                 out.writeShort(rulesIndex);
             }
             // alias-region
-            for (String version : allLinks.keySet()) {
-                out.writeShort(allLinks.get(version).size());
-                for (Map.Entry<String, String> entry : allLinks.get(version).entrySet()) {
-                     int aliasIndex = Arrays.binarySearch(regionArray, entry.getKey());
-                     int regionIndex = Arrays.binarySearch(regionArray, entry.getValue());
-                     out.writeShort(aliasIndex);
-                     out.writeShort(regionIndex);
-                }
+            out.writeShort(links.size());
+            for (Map.Entry<String, String> entry : links.entrySet()) {
+                 int aliasIndex = Arrays.binarySearch(regionArray, entry.getKey());
+                 int regionIndex = Arrays.binarySearch(regionArray, entry.getValue());
+                 out.writeShort(aliasIndex);
+                 out.writeShort(regionIndex);
             }
             out.flush();
-            jos.closeEntry();
         } catch (Exception ex) {
             System.out.println("Failed: " + ex.toString());
             ex.printStackTrace();
@@ -385,76 +269,30 @@
         }
     }
 
-    //-----------------------------------------------------------------------
+    private static final Pattern YEAR = Pattern.compile("(?i)(?<min>min)|(?<max>max)|(?<only>only)|(?<year>[0-9]+)");
+    private static final Pattern MONTH = Pattern.compile("(?i)(jan)|(feb)|(mar)|(apr)|(may)|(jun)|(jul)|(aug)|(sep)|(oct)|(nov)|(dec)");
+    private static final Matcher DOW = Pattern.compile("(?i)(mon)|(tue)|(wed)|(thu)|(fri)|(sat)|(sun)").matcher("");
+    private static final Matcher TIME = Pattern.compile("(?<neg>-)?+(?<hour>[0-9]{1,2})(:(?<minute>[0-5][0-9]))?+(:(?<second>[0-5][0-9]))?+").matcher("");
+
     /** The TZDB rules. */
     private final Map<String, List<TZDBRule>> rules = new HashMap<>();
 
     /** The TZDB zones. */
     private final Map<String, List<TZDBZone>> zones = new HashMap<>();
+
     /** The TZDB links. */
-
     private final Map<String, String> links = new HashMap<>();
 
     /** The built zones. */
     private final SortedMap<String, ZoneRules> builtZones = new TreeMap<>();
 
-
-    /** The version to produce. */
-    private final String version;
-
-    /** The source files. */
-
-    private final List<File> sourceFiles;
-
-    /** The version to produce. */
-    private final boolean verbose;
+    /** Whether to output verbose messages. */
+    private boolean verbose;
 
     /**
-     * Creates an instance if you want to invoke the compiler manually.
-     *
-     * @param version  the version, such as 2009a, not null
-     * @param sourceFiles  the list of source files, not empty, not null
-     * @param verbose  whether to output verbose messages
+     * private contructor
      */
-    public TzdbZoneRulesCompiler(String version, List<File> sourceFiles, boolean verbose) {
-        this.version = version;
-        this.sourceFiles = sourceFiles;
-        this.verbose = verbose;
-    }
-
-    /**
-     * Compile the rules file.
-     * <p>
-     * Use {@link #getZones()} to retrieve the parsed data.
-     *
-     * @throws Exception if an error occurs
-     */
-    public void compile() throws Exception {
-        printVerbose("Compiling TZDB version " + version);
-        parseFiles();
-        buildZoneRules();
-        printVerbose("Compiled TZDB version " + version);
-    }
-
-    /**
-     * Gets the parsed zone rules.
-     *
-     * @return the parsed zone rules, not null
-     */
-    public SortedMap<String, ZoneRules> getZones() {
-        return builtZones;
-    }
-
-    /**
-     * Parses the source files.
-     *
-     * @throws Exception if an error occurs
-     */
-    private void parseFiles() throws Exception {
-        for (File file : sourceFiles) {
-            printVerbose("Parsing file: " + file);
-            parseFile(file);
-        }
+    private TzdbZoneRulesCompiler() {
     }
 
     /**
@@ -463,14 +301,14 @@
      * @param file  the file being read, not null
      * @throws Exception if an error occurs
      */
-    private void parseFile(File file) throws Exception {
+    private void parseFile(Path file) throws Exception {
         int lineNumber = 1;
         String line = null;
-        BufferedReader in = null;
         try {
-            in = new BufferedReader(new FileReader(file));
+            List<String> lines = Files.readAllLines(file, StandardCharsets.ISO_8859_1);
             List<TZDBZone> openZone = null;
-            for ( ; (line = in.readLine()) != null; lineNumber++) {
+            for (; lineNumber < lines.size(); lineNumber++) {
+                line = lines.get(lineNumber);
                 int index = line.indexOf('#');  // remove comments (doesn't handle # in quotes)
                 if (index >= 0) {
                     line = line.substring(0, index);
@@ -478,41 +316,43 @@
                 if (line.trim().length() == 0) {  // ignore blank lines
                     continue;
                 }
-                StringTokenizer st = new StringTokenizer(line, " \t");
-                if (openZone != null && Character.isWhitespace(line.charAt(0)) && st.hasMoreTokens()) {
-                    if (parseZoneLine(st, openZone)) {
+                Scanner s = new Scanner(line);
+                if (openZone != null && Character.isWhitespace(line.charAt(0)) && s.hasNext()) {
+                    if (parseZoneLine(s, openZone)) {
                         openZone = null;
                     }
                 } else {
-                    if (st.hasMoreTokens()) {
-                        String first = st.nextToken();
+                    if (s.hasNext()) {
+                        String first = s.next();
                         if (first.equals("Zone")) {
-                            if (st.countTokens() < 3) {
+                            openZone = new ArrayList<>();
+                            try {
+                                zones.put(s.next(), openZone);
+                                if (parseZoneLine(s, openZone)) {
+                                    openZone = null;
+                                }
+                            } catch (NoSuchElementException x) {
                                 printVerbose("Invalid Zone line in file: " + file + ", line: " + line);
                                 throw new IllegalArgumentException("Invalid Zone line");
                             }
-                            openZone = new ArrayList<>();
-                            zones.put(st.nextToken(), openZone);
-                            if (parseZoneLine(st, openZone)) {
-                                openZone = null;
-                            }
                         } else {
                             openZone = null;
                             if (first.equals("Rule")) {
-                                if (st.countTokens() < 9) {
+                                try {
+                                    parseRuleLine(s);
+                                } catch (NoSuchElementException x) {
                                     printVerbose("Invalid Rule line in file: " + file + ", line: " + line);
                                     throw new IllegalArgumentException("Invalid Rule line");
                                 }
-                                parseRuleLine(st);
-
                             } else if (first.equals("Link")) {
-                                if (st.countTokens() < 2) {
+                                try {
+                                    String realId = s.next();
+                                    String aliasId = s.next();
+                                    links.put(aliasId, realId);
+                                } catch (NoSuchElementException x) {
                                     printVerbose("Invalid Link line in file: " + file + ", line: " + line);
                                     throw new IllegalArgumentException("Invalid Link line");
                                 }
-                                String realId = st.nextToken();
-                                String aliasId = st.nextToken();
-                                links.put(aliasId, realId);
 
                             } else {
                                 throw new IllegalArgumentException("Unknown line");
@@ -522,52 +362,44 @@
                 }
             }
         } catch (Exception ex) {
-            throw new Exception("Failed while processing file '" + file + "' on line " + lineNumber + " '" + line + "'", ex);
-        } finally {
-            try {
-                if (in != null) {
-                    in.close();
-                }
-            } catch (Exception ex) {
-                // ignore NPE and IOE
-            }
+            throw new Exception("Failed while parsing file '" + file + "' on line " + lineNumber + " '" + line + "'", ex);
         }
     }
 
     /**
      * Parses a Rule line.
      *
-     * @param st  the tokenizer, not null
+     * @param s  the line scanner, not null
      */
-    private void parseRuleLine(StringTokenizer st) {
+    private void parseRuleLine(Scanner s) {
         TZDBRule rule = new TZDBRule();
-        String name = st.nextToken();
+        String name = s.next();
         if (rules.containsKey(name) == false) {
             rules.put(name, new ArrayList<TZDBRule>());
         }
         rules.get(name).add(rule);
-        rule.startYear = parseYear(st.nextToken(), 0);
-        rule.endYear = parseYear(st.nextToken(), rule.startYear);
+        rule.startYear = parseYear(s, 0);
+        rule.endYear = parseYear(s, rule.startYear);
         if (rule.startYear > rule.endYear) {
             throw new IllegalArgumentException("Year order invalid: " + rule.startYear + " > " + rule.endYear);
         }
-        parseOptional(st.nextToken());  // type is unused
-        parseMonthDayTime(st, rule);
-        rule.savingsAmount = parsePeriod(st.nextToken());
-        rule.text = parseOptional(st.nextToken());
+        parseOptional(s.next());  // type is unused
+        parseMonthDayTime(s, rule);
+        rule.savingsAmount = parsePeriod(s.next());
+        rule.text = parseOptional(s.next());
     }
 
     /**
      * Parses a Zone line.
      *
-     * @param st  the tokenizer, not null
+     * @param s  the line scanner, not null
      * @return true if the zone is complete
      */
-    private boolean parseZoneLine(StringTokenizer st, List<TZDBZone> zoneList) {
+    private boolean parseZoneLine(Scanner s, List<TZDBZone> zoneList) {
         TZDBZone zone = new TZDBZone();
         zoneList.add(zone);
-        zone.standardOffset = parseOffset(st.nextToken());
-        String savingsRule = parseOptional(st.nextToken());
+        zone.standardOffset = parseOffset(s.next());
+        String savingsRule = parseOptional(s.next());
         if (savingsRule == null) {
             zone.fixedSavingsSecs = 0;
             zone.savingsRule = null;
@@ -580,11 +412,11 @@
                 zone.savingsRule = savingsRule;
             }
         }
-        zone.text = st.nextToken();
-        if (st.hasMoreTokens()) {
-            zone.year = Integer.parseInt(st.nextToken());
-            if (st.hasMoreTokens()) {
-                parseMonthDayTime(st, zone);
+        zone.text = s.next();
+        if (s.hasNext()) {
+            zone.year = Integer.parseInt(s.next());
+            if (s.hasNext()) {
+                parseMonthDayTime(s, zone);
             }
             return false;
         } else {
@@ -595,13 +427,13 @@
     /**
      * Parses a Rule line.
      *
-     * @param st  the tokenizer, not null
+     * @param s  the line scanner, not null
      * @param mdt  the object to parse into, not null
      */
-    private void parseMonthDayTime(StringTokenizer st, TZDBMonthDayTime mdt) {
-        mdt.month = parseMonth(st.nextToken());
-        if (st.hasMoreTokens()) {
-            String dayRule = st.nextToken();
+    private void parseMonthDayTime(Scanner s, TZDBMonthDayTime mdt) {
+        mdt.month = parseMonth(s);
+        if (s.hasNext()) {
+            String dayRule = s.next();
             if (dayRule.startsWith("last")) {
                 mdt.dayOfMonth = -1;
                 mdt.dayOfWeek = parseDayOfWeek(dayRule.substring(4));
@@ -621,8 +453,8 @@
                 }
                 mdt.dayOfMonth = Integer.parseInt(dayRule);
             }
-            if (st.hasMoreTokens()) {
-                String timeStr = st.nextToken();
+            if (s.hasNext()) {
+                String timeStr = s.next();
                 int secsOfDay = parseSecs(timeStr);
                 if (secsOfDay == 86400) {
                     mdt.endOfDay = true;
@@ -635,30 +467,43 @@
         }
     }
 
-    private int parseYear(String str, int defaultYear) {
-        if (YEAR.reset(str).matches()) {
-            if (YEAR.group("min") != null) {
+    private int parseYear(Scanner s, int defaultYear) {
+        if (s.hasNext(YEAR)) {
+            s.next(YEAR);
+            MatchResult mr = s.match();
+            if (mr.group(1) != null) {
+                return 1900;  // systemv has min
+            } else if (mr.group(2) != null) {
+                return YEAR_MAX_VALUE;
+            } else if (mr.group(3) != null) {
+                return defaultYear;
+            }
+            return Integer.parseInt(mr.group(4));
+            /*
+            if (mr.group("min") != null) {
                 //return YEAR_MIN_VALUE;
                 return 1900;  // systemv has min
-            } else if (YEAR.group("max") != null) {
+            } else if (mr.group("max") != null) {
                 return YEAR_MAX_VALUE;
-            } else if (YEAR.group("only") != null) {
+            } else if (mr.group("only") != null) {
                 return defaultYear;
             }
-            return Integer.parseInt(YEAR.group("year"));
+            return Integer.parseInt(mr.group("year"));
+            */
         }
-        throw new IllegalArgumentException("Unknown year: " + str);
+        throw new IllegalArgumentException("Unknown year: " + s.next());
     }
 
-    private int parseMonth(String str) {
-        if (MONTH.reset(str).matches()) {
+    private int parseMonth(Scanner s) {
+        if (s.hasNext(MONTH)) {
+            s.next(MONTH);
             for (int moy = 1; moy < 13; moy++) {
-                if (MONTH.group(moy) != null) {
+                if (s.match().group(moy) != null) {
                     return moy;
                 }
             }
         }
-        throw new IllegalArgumentException("Unknown month: " + str);
+        throw new IllegalArgumentException("Unknown month: " + s.next());
     }
 
     private int parseDayOfWeek(String str) {
@@ -729,7 +574,6 @@
         }
     }
 
-    //-----------------------------------------------------------------------
     /**
      * Build the rules, zones and links into real zones.
      *
@@ -744,8 +588,7 @@
             for (TZDBZone tzdbZone : tzdbZones) {
                 bld = tzdbZone.addToBuilder(bld, rules);
             }
-            ZoneRules buildRules = bld.toRules(zoneId);
-            builtZones.put(zoneId, buildRules);
+            builtZones.put(zoneId, bld.toRules(zoneId));
         }
 
         // build aliases
@@ -758,25 +601,25 @@
                 printVerbose("Relinking alias " + aliasId + " to " + realId);
                 realRules = builtZones.get(realId);
                 if (realRules == null) {
-                    throw new IllegalArgumentException("Alias '" + aliasId + "' links to invalid zone '" + realId + "' for '" + version + "'");
+                    throw new IllegalArgumentException("Alias '" + aliasId + "' links to invalid zone '" + realId);
                 }
                 links.put(aliasId, realId);
-
             }
             builtZones.put(aliasId, realRules);
         }
-
         // remove UTC and GMT
-        //builtZones.remove("UTC");
-        //builtZones.remove("GMT");
-        //builtZones.remove("GMT0");
+        // builtZones.remove("UTC");
+        // builtZones.remove("GMT");
+        // builtZones.remove("GMT0");
         builtZones.remove("GMT+0");
         builtZones.remove("GMT-0");
         links.remove("GMT+0");
         links.remove("GMT-0");
+        // remove ROC, which is not supported in j.u.tz
+        builtZones.remove("ROC");
+        links.remove("ROC");
     }
 
-    //-----------------------------------------------------------------------
     /**
      * Prints a verbose message.
      *
@@ -788,7 +631,6 @@
         }
     }
 
-    //-----------------------------------------------------------------------
     /**
      * Class representing a month-day-time in the TZDB file.
      */
@@ -893,5 +735,4 @@
             return ldt;
         }
     }
-
 }
--- a/makefiles/CompileDemos.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/CompileDemos.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -136,8 +136,7 @@
 			$$(wildcard $$(addprefix $(JDK_TOPDIR)/src/$6share/demo/$2/$1/,$7)))
     ifneq ($7,)
         $(JDK_OUTPUTDIR)/demo/$2/$1/% : $(JDK_TOPDIR)/src/$6share/demo/$2/$1/%
-		$(MKDIR) -p $$(@D)
-		$(CP) $$< $$@
+		$$(call install-file)
 		$(CHMOD) -f ug+w $$@
 
         BUILD_DEMOS += $$($1_COPY_TARGETS)
@@ -190,8 +189,7 @@
 			$(JDK_OUTPUTDIR)/demo/nbproject/%,\
 			$(call CacheFind,$(JDK_TOPDIR)/src/closed/share/demo/nbproject))
     $(JDK_OUTPUTDIR)/demo/nbproject/% : $(JDK_TOPDIR)/src/closed/share/demo/nbproject/%
-		$(MKDIR) -p $(@D)
-		$(CP) $< $@
+		$(call install-file)
 		$(CHMOD) -f ug+w $@
 endif
 
@@ -268,8 +266,7 @@
 		ZIP:=$(JDK_OUTPUTDIR)/demo/jvmti/$1/src.zip))
 
      $(JDK_OUTPUTDIR)/demo/jvmti/$1/README.txt : $(JDK_TOPDIR)/src/share/demo/jvmti/$1/README.txt
-		$(MKDIR) -p $$(@D)
-		$(CP) $$< $$@
+		$$(call install-file)
 		$(CHMOD) -f ug+w $$@
 
      ifneq (,$$(wildcard $(JDK_TOPDIR)/src/share/demo/jvmti/$1/*.java))
@@ -325,23 +322,22 @@
 JPDA_FILES:=$(subst $(JDK_TOPDIR)/src/share/classes/,,$(JPDA_SOURCES))
 
 $(JDK_OUTPUTDIR)/demo/jpda/src.zip : $(JPDA_SOURCES)
-		$(MKDIR) -p $(@D)
-		(cd $(JDK_TOPDIR)/src/share/classes && $(ZIP) -qru $@ com -i "com/sun/tools/example/*")
+	$(MKDIR) -p $(@D)
+	(cd $(JDK_TOPDIR)/src/share/classes && $(ZIP) -qru $@ com -i "com/sun/tools/example/*")
 
 $(JDK_OUTPUTDIR)/demo/jpda/examples.jar : $(JPDA_SOURCES)
-		$(MKDIR) -p $(@D)
-		$(RM) $(@D)/_the.sources
-		$(call ListPathsSafely,JPDA_FILES,\n, >> $(@D)/_the.sources)
-		$(SED) -e "s#@@RELEASE@@#$(RELEASE)#" 		\
-		       -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" $(JDK_TOPDIR)/make/tools/manifest.mf > $(@D)/_the.manifest
-		$(ECHO) "Main-Class: " >> $(@D)/_the.manifest
-		(cd $(JDK_TOPDIR)/src/share/classes && $(JAR) cfm  $@ $(@D)/_the.manifest @$(@D)/_the.sources)
-		(cd $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example && $(JAR) uf $@ README)
+	$(MKDIR) -p $(@D)
+	$(RM) $(@D)/_the.sources
+	$(call ListPathsSafely,JPDA_FILES,\n, >> $(@D)/_the.sources)
+	$(SED) -e "s#@@RELEASE@@#$(RELEASE)#" 		\
+	       -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" $(JDK_TOPDIR)/make/tools/manifest.mf > $(@D)/_the.manifest
+	$(ECHO) "Main-Class: " >> $(@D)/_the.manifest
+	(cd $(JDK_TOPDIR)/src/share/classes && $(JAR) cfm  $@ $(@D)/_the.manifest @$(@D)/_the.sources)
+	(cd $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example && $(JAR) uf $@ README)
 
 $(JDK_OUTPUTDIR)/demo/jpda/com/sun/tools/example/README : $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example/README
-		$(MKDIR) -p $(@D)
-		$(CP) $< $@
-		$(CHMOD) -f ug+w $@
+	$(call install-file)
+	$(CHMOD) -f ug+w $@
 
 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/jpda/src.zip $(JDK_OUTPUTDIR)/demo/jpda/examples.jar \
 		$(JDK_OUTPUTDIR)/demo/jpda/com/sun/tools/example/README
@@ -349,14 +345,12 @@
 ##################################################################################################
 
 $(JDK_OUTPUTDIR)/demo/management/index.html : $(JDK_TOPDIR)/src/share/demo/management/index.html
-		$(MKDIR) -p $(@D)
-		$(CP) $< $@
-		$(CHMOD) -f ug+w $@
+	$(call install-file)
+	$(CHMOD) -f ug+w $@
 
 $(JDK_OUTPUTDIR)/demo/jvmti/index.html : $(JDK_TOPDIR)/src/share/demo/jvmti/index.html
-		$(MKDIR) -p $(@D)
-		$(CP) $< $@
-		$(CHMOD) -f ug+w $@
+	$(call install-file)
+	$(CHMOD) -f ug+w $@
 
 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/management/index.html \
 		$(JDK_OUTPUTDIR)/demo/jvmti/index.html
@@ -369,15 +363,13 @@
 		$(call CacheFind,$(JDK_TOPDIR)/src/share/demo/nbproject))
 
 $(JDK_OUTPUTDIR)/demo/nbproject/% : $(JDK_TOPDIR)/src/share/demo/nbproject/%
-	$(MKDIR) -p $(@D)
-	$(CP) $< $@
+	$(call install-file)
 	$(CHMOD) -f ug+w $@
 
 ##################################################################################################
 
 $(JDK_OUTPUTDIR)/demo/README: $(JDK_TOPDIR)/src/share/demo/README
-	$(MKDIR) -p $(@D)
-	$(CP) $< $@
+	$(call install-file)
 
 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/README
 
@@ -386,14 +378,12 @@
 ifeq ($(OPENJDK_TARGET_OS), solaris)
 
 $(JDK_OUTPUTDIR)/democlasses/jni/Poller/% : $(JDK_TOPDIR)/src/solaris/demo/jni/Poller/%
-		$(MKDIR) -p $(@D)
-		$(CP) $< $@
-		$(CHMOD) -f ug+w $@
+	$(call install-file)
+	$(CHMOD) -f ug+w $@
 
 $(JDK_OUTPUTDIR)/demo/jni/Poller/README.txt : $(JDK_TOPDIR)/src/solaris/demo/jni/Poller/README.txt
-		$(MKDIR) -p $(@D)
-		$(CP) $< $@
-		$(CHMOD) -f ug+w $@
+	$(call install-file)
+	$(CHMOD) -f ug+w $@
 
 $(JDK_OUTPUTDIR)/demo/jni/Poller/Poller.jar : \
   $(JDK_OUTPUTDIR)/democlasses/jni/Poller/README.txt $(JDK_OUTPUTDIR)/democlasses/jni/Poller/Poller.c
@@ -433,8 +423,7 @@
 
 $(JDK_OUTPUTDIR)/demo/jni/Poller/lib/$(LIBRARY_PREFIX)Poller$(SHARED_LIBRARY_SUFFIX) : \
   $(JDK_OUTPUTDIR)/demoobjs/$(LIBRARY_PREFIX)Poller$(SHARED_LIBRARY_SUFFIX)
-	$(MKDIR) -p $(@D)
-	$(CP) $< $@
+	$(call install-file)
 
 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/jni/Poller/lib/$(LIBRARY_PREFIX)Poller$(SHARED_LIBRARY_SUFFIX)
 
@@ -456,8 +445,8 @@
      $(JDK_OUTPUTDIR)/demo/db/README-JDK-DEMOS.html: \
 		$(JDK_TOPDIR)/src/closed/share/db/README-JDK-DEMOS.html \
 		| $(JDK_OUTPUTDIR)/demo/_the.db.unzipped
-	$(MKDIR) -p $(@D)
-	$(CP) '$<' '$@'
+	$(call install-file)
+
      BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/_the.db.unzipped $(JDK_OUTPUTDIR)/demo/db/README-JDK-DEMOS.html
 endif
 
--- a/makefiles/CompileJavaClasses.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/CompileJavaClasses.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -281,8 +281,7 @@
 # These resources violates the convention of having code and resources together under
 # $(JDK_TOPDIR)/src/.../classes directories
 $(JDK_OUTPUTDIR)/classes/javax/swing/beaninfo/images/%.gif: $(JDK_TOPDIR)/make/tools/swing-beans/beaninfo/images/%.gif
-	$(MKDIR) -p $(@D)
-	$(CP) $< $@
+	$(call install-file)
 
 # The JDK_USER_DEFINED_FILTER is a poor man's incremental build: by specifying
 # JDK_FILTER at the make command line, only a subset of the JDK java files will
--- a/makefiles/CompileLaunchers.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/CompileLaunchers.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -489,8 +489,7 @@
 # -link -incremental:no
 # like all other launchers.
 $(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/unpack200$(EXE_SUFFIX): $(BUILD_UNPACKEXE)
-	$(MKDIR) -p $(@D)
-	$(CP) '$<' '$@'
+	$(call install-file)
 
 BUILD_LAUNCHERS += $(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/unpack200$(EXE_SUFFIX)
 
@@ -588,8 +587,7 @@
         $(call SET_SHARED_LIBRARY_MAPFILE,$(JDK_TOPDIR)/makefiles/java/main/java/mapfile-$(OPENJDK_TARGET_CPU))))
 else
     $(JAVA_RMI_CGI): $(JDK_TOPDIR)/src/solaris/bin/java-rmi.cgi.sh
-	$(MKDIR) -p $(@D)
-	$(CP) $< $@
+	$(call install-file)
 	$(CHMOD) a+x $@
 endif
 
--- a/makefiles/CompileNativeLibraries.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/CompileNativeLibraries.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -109,7 +109,7 @@
 
 BUILD_LIBFDLIBM := $(JDK_OUTPUTDIR)/objs/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX)
 $(BUILD_LIBFDLIBM) : $(BUILD_LIBFDLIBM_MAC)
-	$(CP) -a $< $@
+	$(call install-file)
 
 endif
 BUILD_LIBRARIES += $(BUILD_LIBFDLIBM)
@@ -464,12 +464,13 @@
 	$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows \
 	$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/windows \
 	$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/d3d
+    LIBAWT_CFLAGS+=-I$(DXSDK_INCLUDE_PATH)
 else
     LIBAWT_DIRS+=\
 	$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/x11
 endif
 
-LIBAWT_CFLAGS:=-D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES \
+LIBAWT_CFLAGS+=-D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES \
 	$(X_CFLAGS) \
 	$(foreach dir,$(LIBAWT_DIRS),-I$(dir))
 
@@ -842,6 +843,7 @@
 	debug_trace.c \
 	debug_util.c \
 	awt_Plugin.c \
+        gnome_interface.c \
 	gtk2_interface.c \
         swing_GTKEngine.c \
         swing_GTKStyle.c \
@@ -1218,7 +1220,7 @@
                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
                 SRC:=$(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms,\
 		LANG:=C,\
-		OPTIMIZATION:=LOW, \
+		OPTIMIZATION:=HIGHEST, \
 		CFLAGS:=$(filter-out -xc99=%none,$(CFLAGS_JDKLIB)) \
 			$(SHARED_LIBRARY_FLAGS) \
 			-I$(JDK_TOPDIR)/src/share/native/sun/java2d \
@@ -1461,7 +1463,8 @@
 		        -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
 		        -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
 			-I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
-			-I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/windows, \
+			-I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/windows \
+			-I$(DXSDK_INCLUDE_PATH), \
 		LDFLAGS:=$(LDFLAGS_JDKLIB) $(KERNEL32_LIB) $(LDFLAGS_CXX_JDK) \
 			 advapi32.lib $(WIN_AWT_LIB),\
 		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
@@ -1835,16 +1838,14 @@
 
 $(JDK_OUTPUTDIR)/lib/net.properties: $(JDK_TOPDIR)/src/share/lib/net.properties
 	$(ECHO) $(LOG_INFO) Copying $(@F)
-	$(MKDIR) -p $(@D)
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(JDK_OUTPUTDIR)/lib/net.properties
 
 ifeq ($(OPENJDK_TARGET_OS), solaris)
 $(JDK_OUTPUTDIR)/lib/sdp/sdp.conf.template : $(JDK_TOPDIR)/src/${OPENJDK_TARGET_OS_API_DIR}/lib/sdp/sdp.conf.template
 	$(ECHO) $(LOG_INFO) Copying $(@F)
-	$(MKDIR) -p $(@D)
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(JDK_OUTPUTDIR)/lib/sdp/sdp.conf.template
 endif
@@ -1957,8 +1958,6 @@
 				        -lsendfile -ljava -lnet -lc,\
 		LDFLAGS_SUFFIX_windows:=jvm.lib ws2_32.lib $(WIN_JAVA_LIB) \
 					$(JDK_OUTPUTDIR)/objs/libnet/net.lib \
-                                        $(JDK_OUTPUTDIR)/objs/libjava/io_util.obj \
-		                        $(JDK_OUTPUTDIR)/objs/libjava/FileDescriptor_md.obj \
 					advapi32.lib,\
 		LDFLAGS_SUFFIX_macosx:=-ljava -lnet -pthread -framework CoreFoundation,\
 		LDFLAGS_SUFFIX:=,\
@@ -2167,7 +2166,7 @@
 		OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static))
 
 $(JDK_OUTPUTDIR)/objs/libjli_static.a : $(BUILD_LIBJLI_STATIC)
-	$(CP) -a $< $@
+	$(call install-file)
 
 BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/objs/libjli_static.a
 endif
@@ -2385,18 +2384,23 @@
 
 ifndef BUILD_HEADLESS_ONLY
 LIBSPLASHSCREEN_DIRS:=\
-	$(JDK_TOPDIR)/src/share/native/sun/awt/giflib \
 	$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \
 	$(JDK_TOPDIR)/src/share/native/sun/awt/libpng \
 	$(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen
 
+ifeq ($(USE_EXTERNAL_LIBGIF),true)
+    GIFLIB_LDFLAGS := -lgif
+else
+    LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/giflib
+    GIFLIB_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib
+endif
+
 ifneq ($(OPENJDK_TARGET_OS), macosx)
     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen
 else
     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/macosx/native/sun/awt/splashscreen
 endif
 
-
 LIBSPLASHSCREEN_CFLAGS:=-DSPLASHSCREEN -DPNG_NO_MMX_CODE \
 	$(foreach dir,$(LIBSPLASHSCREEN_DIRS),-I$(dir))
 
@@ -2448,11 +2452,11 @@
 		EXCLUDE_FILES:=imageioJPEG.c jpegdecoder.c pngtest.c,\
 		LANG:=C,\
 		OPTIMIZATION:=LOW, \
-		CFLAGS:=$(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB),\
+		CFLAGS:=$(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS),\
 		MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
 		LDFLAGS:=$(LDFLAGS_JDKLIB) \
 			 $(call SET_SHARED_LIBRARY_ORIGIN),\
-		LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ),\
+		LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS),\
 		LDFLAGS_SUFFIX_solaris:=-lc,\
 		VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
 		RC_FLAGS:=$(RC_FLAGS)\
@@ -2663,11 +2667,8 @@
 
 ##########################################################################################
 
-ifndef DISABLE_INTREE_EC
-#
-# TODO Set DISABLE_INTREE_EC in configure if src/share/native/sun/security/ec/impl
-#      is not present
-#
+ifeq ($(ENABLE_INTREE_EC),yes)
+
 BUILD_LIBSUNEC_FLAGS:= -I$(JDK_TOPDIR)/src/share/native/sun/security/ec \
                        -I$(JDK_TOPDIR)/src/share/native/sun/security/ec/impl
 
@@ -2907,7 +2908,8 @@
 		OPTIMIZATION:=LOW, \
 		CFLAGS:=$(CFLAGS_JDKLIB) \
 			$(LIBJSOUND_CFLAGS) \
-			-DUSE_DAUDIO=TRUE, \
+			-DUSE_DAUDIO=TRUE \
+                        -I$(DXSDK_INCLUDE_PATH), \
 		LDFLAGS:=$(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
 			 $(call SET_SHARED_LIBRARY_ORIGIN),\
 		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX) dsound.lib winmm.lib user32.lib ole32.lib,\
--- a/makefiles/CopyFiles.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/CopyFiles.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -46,14 +46,10 @@
 		$(OPENJDK_TARGET_OS_INCLUDE)/jawt_md.h
 
 $(INCLUDEDIR)/%.h: $(JDK_TOPDIR)/src/share/javavm/export/%.h
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 $(OPENJDK_TARGET_OS_INCLUDE)/%.h: $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/javavm/export/%.h
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES = $(H_TARGET_FILES)
 
@@ -81,17 +77,6 @@
 ##########################################################################################
 
 LIBDIR = $(JDK_OUTPUTDIR)/lib
-SERVICETAG_LIBDIR = $(LIBDIR)/servicetag
-
-$(SERVICETAG_LIBDIR)/jdk_header.png: $(JDK_TOPDIR)/src/share/classes/com/sun/servicetag/resources/jdk_header.png
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
-	$(CHMOD) 444 $@
-
-COPY_FILES += $(SERVICETAG_LIBDIR)/jdk_header.png
-
-##########################################################################################
 
 MGMT_LIBDIR = $(LIBDIR)/management
 MGMT_LIB_SRC = $(JDK_TOPDIR)/src/share/lib/management
@@ -99,22 +84,16 @@
 MGMT_TARGET_FILES = $(subst $(MGMT_LIB_SRC),$(MGMT_LIBDIR),$(MGMT_SRC_FILES))
 
 $(MGMT_LIBDIR)/management.properties: $(MGMT_LIB_SRC)/management.properties
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 	$(CHMOD) 644 $@
 
 # this file has different permissions...don't know why...
 $(MGMT_LIBDIR)/jmxremote.access: $(MGMT_LIB_SRC)/jmxremote.access
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 	$(CHMOD) 644 $@
 
 $(MGMT_LIBDIR)/%: $(MGMT_LIB_SRC)/%
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 	$(CHMOD) 444 $@
 
 COPY_FILES += $(MGMT_TARGET_FILES)
@@ -124,9 +103,7 @@
 LOGGING_LIB_SRC = $(JDK_TOPDIR)/src/share/lib
 
 $(LIBDIR)/logging.properties: $(LOGGING_LIB_SRC)/logging.properties
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(LIBDIR)/logging.properties
 
@@ -139,9 +116,7 @@
 PSFONTPROPFILE_TARGET_FILES = $(subst $(PSFONTPROPFILE_SRC_DIR),$(LIBDIR),$(PSFONTPROPFILE_SRCS))
 
 $(LIBDIR)/%: $(PSFONTPROPFILE_SRC_DIR)/%
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(PSFONTPROPFILE_TARGET_FILES)
 
@@ -156,9 +131,7 @@
 endif
 
 $(LIBDIR)/flavormap.properties: $(OPENJDK_TARGET_OS_LIB_SRC)/flavormap.properties
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(LIBDIR)/flavormap.properties
 
@@ -166,9 +139,7 @@
 CURSORS_OPENJDK_TARGET_OS_LIB_SRC = $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/lib/images/cursors
 
 $(CURSORS_DEST_DIR)/cursors.properties: $(CURSORS_OPENJDK_TARGET_OS_LIB_SRC)/cursors.properties
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(CURSORS_DEST_DIR)/cursors.properties
 
@@ -181,9 +152,7 @@
 CURSORS_TARGET_FILES =  $(subst $(CURSORS_LIB_SRC),$(CURSORS_DEST_DIR),$(CURSORS_SRC_FILES))
 
 $(CURSORS_DEST_DIR)/%: $(CURSORS_LIB_SRC)/%
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(CURSORS_TARGET_FILES)
 
@@ -192,9 +161,7 @@
 CONTENT_TYPES_SRC=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/lib
 
 $(LIBDIR)/content-types.properties: $(CONTENT_TYPES_SRC)/content-types.properties
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(LIBDIR)/content-types.properties
 
@@ -203,11 +170,16 @@
 CALENDARS_SRC := $(JDK_TOPDIR)/src/share/lib
 
 $(LIBDIR)/calendars.properties: $(CALENDARS_SRC)/calendars.properties
+	$(call install-file)
+
+COPY_FILES += $(LIBDIR)/calendars.properties
+
+$(LIBDIR)/hijrah-config-umalqura.properties: $(CALENDARS_SRC)/hijrah-config-umalqura.properties
 	$(MKDIR) -p $(@D)
 	$(RM) $@
 	$(CP) $< $@
 
-COPY_FILES += $(LIBDIR)/calendars.properties
+COPY_FILES += $(LIBDIR)/hijrah-config-umalqura.properties
 
 ##########################################################################################
 
@@ -216,9 +188,7 @@
 TZMAPPINGS_SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/lib
 
 $(LIBDIR)/tzmappings: $(TZMAPPINGS_SRC)/tzmappings
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(LIBDIR)/tzmappings
 
@@ -238,9 +208,7 @@
 ICCPROFILE_TARGET_FILES:=$(subst $(ICCPROFILE_SRC_DIR),$(ICCPROFILE_DEST_DIR),$(ICCPROFILE_SRCS))
 
 $(ICCPROFILE_DEST_DIR)%.pf: $(ICCPROFILE_SRC_DIR)%.pf
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 	$(CHMOD) 444 $@
 
 COPY_FILES += $(ICCPROFILE_TARGET_FILES)
@@ -290,9 +258,7 @@
     MSVCR_TARGET := $(JDK_OUTPUTDIR)/bin/$(notdir $(MSVCR_DLL))
     # Chmod to avoid permission issues if bundles are unpacked on unix platforms.
     $(MSVCR_TARGET): $(MSVCR_DLL)
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 	$(CHMOD) a+rx $@
 
     COPY_FILES += $(MSVCR_TARGET)
@@ -303,9 +269,7 @@
 HPROF_SRC=$(JDK_TOPDIR)/src/share/demo/jvmti/hprof/jvm.hprof.txt
 
 $(LIBDIR)/jvm.hprof.txt : $(HPROF_SRC)
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(LIBDIR)/jvm.hprof.txt
 
@@ -362,17 +326,13 @@
         else
             # Use the default jvm.cfg for this 32 bit setup. 
             $(JVMCFG): $(JVMCFG_SRC)
-	    	$(MKDIR) -p $(@D)
-		$(RM) $@
-		$(CP) $< $@
+	    	$(call install-file)
         endif
     endif
 else
     # Use the default jvm.cfg for this 64 bit setup.
     $(JVMCFG): $(JVMCFG_SRC)
-		$(MKDIR) -p $(@D)
-		$(RM) $@
-		$(CP) $< $@
+		$(call install-file)
 endif
 
 COPY_FILES += $(JVMCFG)
@@ -383,9 +343,7 @@
 PROPS_DST := $(JDK_OUTPUTDIR)/lib/security/java.security
 
 $(PROPS_DST): $(PROPS_SRC)
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(PROPS_DST)
 
@@ -395,9 +353,7 @@
 POLICY_DST := $(JDK_OUTPUTDIR)/lib/security/java.policy
 
 $(POLICY_DST): $(POLICY_SRC)
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(POLICY_DST)
 
@@ -407,9 +363,7 @@
 CACERTS_DST := $(JDK_OUTPUTDIR)/lib/security/cacerts
 
 $(CACERTS_DST): $(CACERTS_SRC)
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(CACERTS_DST)
 
@@ -424,16 +378,12 @@
 TRUSTEDLIBS_DST := $(JDK_OUTPUTDIR)/lib/security/trusted.libraries
 
 $(BLACKLIST_DST): $(BLACKLIST_SRC)
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(BLACKLIST_DST)
 
 $(TRUSTEDLIBS_DST): $(TRUSTEDLIBS_SRC)
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(TRUSTEDLIBS_DST)
 
@@ -459,14 +409,10 @@
 SHARED_FONTS_DST := $(foreach F,$(SHARED_FONTS_FILES),$(SHARED_FONTS_DST_DIR)/$(F))
 
 $(SHARED_FONTS_DST_DIR)/%.ttf : $(SHARED_FONTS_SRC_DIR)/%.ttf
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 $(SHARED_FONTS_DST_DIR)/fonts.dir : $(JDK_TOPDIR)/src/solaris/classes/sun/awt/motif/java.fonts.dir
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(SHARED_FONTS_DST)
 
@@ -487,14 +433,10 @@
 OBL_FONTS_DST := $(foreach F,$(OBL_FONTS_FILES),$(OBL_FONTS_DST_DIR)/$(F))
 
 $(OBL_FONTS_DST_DIR)/%.ttf : $(OBL_FONTS_SRC_DIR)/%.ttf
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 $(OBL_FONTS_DST_DIR)/fonts.dir : $(JDK_TOPDIR)/src/solaris/classes/sun/awt/motif/java.oblique-fonts.dir
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(OBL_FONTS_DST) $(OBL_FONTS_DST_DIR)/fonts.dir
 
@@ -513,9 +455,7 @@
 JS_RESOURCES_DST := $(foreach F,$(JS_RESOURCES_FILES),$(JS_RESOURCES_DST_DIR)/$(F))
 
 $(JS_RESOURCES_DST_DIR)/% : $(JS_RESOURCES_SRC_DIR)/%
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(JS_RESOURCES_DST)
 
@@ -550,15 +490,11 @@
 DGALIBS = $(_DGALIBS_$(OPENJDK_TARGET_CPU_LEGACY):%=$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/%)
 
 $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libxinerama.so: $(JDK_TOPDIR)/src/closed/solaris/lib/$(OPENJDK_TARGET_CPU_LEGACY)/libxinerama.so
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 	$(CHMOD) 755 $@
 
 $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjdgaSUNW%.so: $(JDK_TOPDIR)/src/closed/solaris/lib/$(OPENJDK_TARGET_CPU_LEGACY)/libjdgaSUNW%.so
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 	$(CHMOD) 755 $@
 
 $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjdgaSUNWafb.so: $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjdgaSUNWffb.so
@@ -578,9 +514,7 @@
 SUNPKCS11_CFG_DST := $(JDK_OUTPUTDIR)/lib/security/sunpkcs11-solaris.cfg
 
 $(SUNPKCS11_CFG_DST) : $(SUNPKCS11_CFG_SRC)
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(SUNPKCS11_CFG_DST)
 
@@ -595,9 +529,7 @@
 UCRYPTO_CFG_DST := $(JDK_OUTPUTDIR)/lib/security/ucrypto-solaris.cfg
 
 $(UCRYPTO_CFG_DST) : $(UCRYPTO_CFG_SRC)
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(UCRYPTO_CFG_DST)
 
@@ -607,9 +539,7 @@
 ##########################################################################################
 
 $(JDK_OUTPUTDIR)/lib/sound.properties : $(JDK_TOPDIR)/src/share/lib/sound.properties
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $(@)
+	$(call install-file)
 
 COPY_FILES += $(JDK_OUTPUTDIR)/lib/sound.properties
 
--- a/makefiles/CopyIntoClasses.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/CopyIntoClasses.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -59,15 +59,6 @@
 COPY_FILES += \
   $(JDK_TOPDIR)/src/share/classes/sun/jvmstat/perfdata/resources/aliasmap
 
-# Servicetag resources
-SERVICETAG_RESOURCES_DIR = $(JDK_TOPDIR)/src/share/classes/com/sun/servicetag/resources
-COPY_FILES += \
-  $(SERVICETAG_RESOURCES_DIR)/product_registration.xsd \
-  $(SERVICETAG_RESOURCES_DIR)/register.html \
-  $(SERVICETAG_RESOURCES_DIR)/register_ja.html \
-  $(SERVICETAG_RESOURCES_DIR)/register_zh_CN.html \
-  $(wildcard  $(SERVICETAG_RESOURCES_DIR)/javase_*.properties)
-
 # JConsole resources
 JCONSOLE_RESOURCES_DIR = $(JDK_TOPDIR)/src/share/classes/sun/tools/jconsole/resources
 COPY_FILES += \
@@ -232,9 +223,7 @@
 ###
 
 $(JDK_OUTPUTDIR)/classes/sun/nio/cs/ext/sjis0213.dat : $(JDK_OUTPUTDIR)/gensrc/sun/nio/cs/ext/sjis0213.dat
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $(@)
+	$(call install-file)
 
 COPY_EXTRA += $(JDK_OUTPUTDIR)/classes/sun/nio/cs/ext/sjis0213.dat
 
--- a/makefiles/CopySamples.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/CopySamples.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -53,19 +53,13 @@
 endif
 
 $(SAMPLE_TARGET_DIR)/dtrace/%: $(SAMPLE_SOLARIS_SOURCE_DIR)/dtrace/%
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 $(SAMPLE_TARGET_DIR)/webservices/%: $(SAMPLE_CLOSED_SOURCE_DIR)/webservices/%
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 $(SAMPLE_TARGET_DIR)/%: $(SAMPLE_SOURCE_DIR)/%
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 
 COPY_FILES += $(SAMPLE_TARGET)
 
--- a/makefiles/CreateJars.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/CreateJars.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -73,13 +73,6 @@
 
 ##########################################################################################
 
-$(IMAGES_OUTPUTDIR)/lib/tzdb.jar: $(JDK_OUTPUTDIR)/lib/tzdb.jar
-	$(install-file)
-
-JARS += $(IMAGES_OUTPUTDIR)/lib/tzdb.jar 
-
-##########################################################################################
-
 LOCALEDATA_INCLUDE_LOCALES := ar be bg ca cs da de el es et fi fr ga hi hr hu in is it \
                               iw ja ko lt lv mk ms mt nl no pl pt ro ru sk sl sq sr sv \
                               th tr uk vi zh
@@ -213,28 +206,28 @@
 	org/relaxng/datatype \
 	sun/awt/HKSCS.class \
 	sun/awt/motif/X11GB2312.class \
-	sun/awt/motif/X11GB2312\$$Decoder.class \
-	sun/awt/motif/X11GB2312\$$Encoder.class \
+	sun/awt/motif/X11GB2312\$$$$Decoder.class \
+	sun/awt/motif/X11GB2312\$$$$Encoder.class \
 	sun/awt/motif/X11GBK.class \
-	sun/awt/motif/X11GBK\$$Encoder.class \
+	sun/awt/motif/X11GBK\$$$$Encoder.class \
 	sun/awt/motif/X11KSC5601.class \
-	sun/awt/motif/X11KSC5601\$$Decoder.class \
-	sun/awt/motif/X11KSC5601\$$Encoder.class \
+	sun/awt/motif/X11KSC5601\$$$$Decoder.class \
+	sun/awt/motif/X11KSC5601\$$$$Encoder.class \
 	sun/jvmstat \
 	sun/net/spi/nameservice/dns \
 	sun/nio/cs/ext \
 	sun/rmi/rmic \
 	sun/security/ec/ECDHKeyAgreement.class \
 	sun/security/ec/ECDSASignature.class \
-	sun/security/ec/ECDSASignature\$$Raw.class \
-	sun/security/ec/ECDSASignature\$$SHA1.class \
-	sun/security/ec/ECDSASignature\$$SHA224.class \
-	sun/security/ec/ECDSASignature\$$SHA256.class \
-	sun/security/ec/ECDSASignature\$$SHA384.class \
-	sun/security/ec/ECDSASignature\$$SHA512.class \
+	sun/security/ec/ECDSASignature\$$$$Raw.class \
+	sun/security/ec/ECDSASignature\$$$$SHA1.class \
+	sun/security/ec/ECDSASignature\$$$$SHA224.class \
+	sun/security/ec/ECDSASignature\$$$$SHA256.class \
+	sun/security/ec/ECDSASignature\$$$$SHA384.class \
+	sun/security/ec/ECDSASignature\$$$$SHA512.class \
 	sun/security/ec/ECKeyFactory.class \
 	sun/security/ec/ECKeyPairGenerator.class \
-	sun/security/ec/SunEC\$$1.class \
+	sun/security/ec/SunEC\$$$$1.class \
 	sun/security/ec/SunEC.class \
 	sun/security/ec/SunECEntries.class \
 	sun/security/internal \
@@ -357,23 +350,25 @@
 
 
 # Support for removing the addPropertyChangeListener and removePropertyChangeListener
-# methods from classes that only go into the profile builds. For now the Pack200.Packer
-# and Packer200.Unpacker classes have special handling because of the $ in the file
-# name.
+# methods from classes that only go into the profile builds. 
 BEANLESS_CLASSES = $(IMAGES_OUTPUTDIR)/beanless
 
+# When there are $ characters in filenames we have some very subtle interactions between
+# make expansion and shell expansion. In this particular case $< will contain a single $ while
+# $@ will contain \$. So we have to pass $< in single-quotes to avoid shell expansion
 $(BEANLESS_CLASSES)/%: $(JDK_OUTPUTDIR)/classes/%
 	$(MKDIR) -p $(@D)
-	$(TOOL_REMOVEMETHODS) $< $@ addPropertyChangeListener removePropertyChangeListener
+	$(TOOL_REMOVEMETHODS) '$<' $@ addPropertyChangeListener removePropertyChangeListener
 
 CLASSES_TO_DEBEAN = \
     java/util/logging/LogManager.class \
+    java/util/jar/Pack200\$$Packer.class \
+    java/util/jar/Pack200\$$Unpacker.class \
     com/sun/java/util/jar/pack/PackerImpl.class \
-    com/sun/java/util/jar/pack/UnpackerImpl.class
+    com/sun/java/util/jar/pack/UnpackerImpl.class 
 
-BEANLESS_CLASSES_TARGETS =
 ifneq ($(PROFILE),)
-    BEANLESS_CLASSES_TARGETS := $(foreach c, $(CLASSES_TO_DEBEAN), $(BEANLESS_CLASSES)/$c)
+    BEANLESS_CLASSES_TARGETS := $(addprefix $(BEANLESS_CLASSES)/, $(CLASSES_TO_DEBEAN))
 endif
 
 
@@ -400,13 +395,8 @@
 	      $(ECHO)  Updating rt.jar $(PROFILE) && \
 	      $(CD) $(patsubst %$(VERSION_CLASS_PATH),%,$(CLASS_FILE)) && \
                 $(JAR) $(RT_JAR_UPDATE_OPTIONS) $@.tmp $(VERSION_CLASS_PATH); \
-	      $(MKDIR) -p $(BEANLESS_CLASSES)/java/util/jar; \
-	      $(TOOL_REMOVEMETHODS) $(JDK_OUTPUTDIR)/classes/java/util/jar/Pack200\$$Packer.class \
-		$(BEANLESS_CLASSES)/java/util/jar/Pack200\$$Packer.class addPropertyChangeListener removePropertyChangeListener; \
-	      $(TOOL_REMOVEMETHODS) $(JDK_OUTPUTDIR)/classes/java/util/jar/Pack200\$$Unpacker.class \
-		$(BEANLESS_CLASSES)/java/util/jar/Pack200\$$Unpacker.class addPropertyChangeListener removePropertyChangeListener; \
 	      $(CD) $(BEANLESS_CLASSES) && \
-		$(JAR) $(RT_JAR_UPDATE_OPTIONS) $@.tmp $(CLASSES_TO_DEBEAN) java/util/jar/* ; \
+		$(JAR) $(RT_JAR_UPDATE_OPTIONS) $@.tmp $(CLASSES_TO_DEBEAN); \
             fi
 	$(MV) $@.tmp $@
 
@@ -871,8 +861,7 @@
 # This is an interim solution until the ct.sym is replaced
 # with a new module system (being discussed for JDK 8).
 #
-EXPORTED_PRIVATE_PKGS = com.sun.servicetag \
-                        com.oracle.net \
+EXPORTED_PRIVATE_PKGS = com.oracle.net \
                         com.oracle.nio
 
 $(IMAGES_OUTPUTDIR)/symbols/_the.symbols: $(IMAGES_OUTPUTDIR)/lib/rt.jar
@@ -1123,8 +1112,6 @@
 $(IMAGES_OUTPUTDIR)/lib/ext/nashorn.jar: $(NASHORN_DIST)/nashorn.jar
 	$(install-file)
 
-JARS += $(IMAGES_OUTPUTDIR)/lib/ext/nashorn.jar
-
 ##########################################################################################
 
 -include $(CUSTOM_MAKE_DIR)/CreateJars.gmk
--- a/makefiles/GendataFontConfig.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/GendataFontConfig.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -72,9 +72,7 @@
 
 $(GENDATA_FONT_CONFIG_DST)/%.src : \
     $(GENDATA_FONT_CONFIG_SRC_DIR)/$(GENDATA_FONT_CONFIG_SRC_PREFIX)%
-	$(RM) $@
-	$(MKDIR) -p $(@D)
-	$(CP) $< $@
+	$(call install-file)
 
 $(GENDATA_FONT_CONFIG_DST)/%.bfc : \
     $(GENDATA_FONT_CONFIG_SRC_DIR)/$(GENDATA_FONT_CONFIG_SRC_PREFIX)%.properties
--- a/makefiles/GendataTZDB.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/GendataTZDB.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -29,16 +29,13 @@
 # Time zone data file creation
 #
 TZDATA_DIR := $(JDK_TOPDIR)/make/sun/javazic/tzdata
-TZDATA_VER := $(subst tzdata,,$(shell $(GREP) '^tzdata' $(TZDATA_DIR)/VERSION))
 TZDATA_TZFILE := africa antarctica asia australasia europe northamerica pacificnew southamerica backward etcetera gmt jdk11_backward
 TZDATA_TZFILES := $(addprefix $(TZDATA_DIR)/,$(TZDATA_TZFILE))
 
-GENDATA_TZDB_DST := $(JDK_OUTPUTDIR)/lib
-GENDATA_TZDB_JAR := tzdb.jar
+GENDATA_TZDB_DAT := $(JDK_OUTPUTDIR)/lib/tzdb.dat
 
-$(GENDATA_TZDB_DST)/$(GENDATA_TZDB_JAR) : $(TZDATA_TZFILES)
-	$(RM) $(GENDATA_TZDB_DST)/$(GENDATA_TZDB_JAR)
-	echo building tzdb from version $(TZDATA_VER)
-	$(TOOL_TZDB) -version $(TZDATA_VER) -srcdir $(TZDATA_DIR) -dstdir $(GENDATA_TZDB_DST) $(TZDATA_TZFILE)
+$(GENDATA_TZDB_DAT) : $(TZDATA_TZFILES)
+	$(RM) $(GENDATA_TZDB_DAT)
+	$(TOOL_TZDB) -srcdir $(TZDATA_DIR) -dstfile $(GENDATA_TZDB_DAT) $(TZDATA_TZFILE)
 
-GENDATA_TZDB += $(GENDATA_TZDB_DST)/$(GENDATA_TZDB_JAR)
+GENDATA_TZDB += $(GENDATA_TZDB_DAT)
--- a/makefiles/GensrcCharacterData.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/GensrcCharacterData.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -55,9 +55,8 @@
 
 # Copy two Java files that need no preprocessing.
 $(JDK_OUTPUTDIR)/gensrc/java/lang/%.java : $(CHARACTERDATA)/%.java.template
-	$(MKDIR) -p $(@D)
 	$(ECHO) $(LOG_INFO) Generating $(@F)
-	$(CP) -f $< $@
+	$(call install-file)
 
 GENSRC_CHARACTERDATA += $(JDK_OUTPUTDIR)/gensrc/java/lang/CharacterDataUndefined.java \
                        $(JDK_OUTPUTDIR)/gensrc/java/lang/CharacterDataPrivateUse.java
--- a/makefiles/GensrcMisc.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/GensrcMisc.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -72,9 +72,8 @@
 
     $(JDK_OUTPUTDIR)/gensrc/java/lang/UNIXProcess.java : \
               $(JDK_TOPDIR)/src/solaris/classes/java/lang/UNIXProcess.java.$(UPSUFFIX)
-	$(MKDIR) -p $(@D)
 	$(ECHO) $(LOG_INFO) Copying UNIXProcess.java.$(OPENJDK_TARGET_OS) to java/lang/UNIXProcess.java
-	$(CP) $< $@
+	$(call install-file)
 	$(CHMOD) u+rw $@
 
     GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc/java/lang/UNIXProcess.java
@@ -114,9 +113,7 @@
 	$(MV) $@.tmp $@
 else
 $(JDK_OUTPUTDIR)/gensrc/sun/nio/ch/SocketOptionRegistry.java : $(JDK_TOPDIR)/src/closed/solaris/classes/sun/nio/ch/SocketOptionRegistry-$(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH).java
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 endif
 
 ##########################################################################################
@@ -156,9 +153,7 @@
 	$(MV) $@.tmp $@
 else
 $(JDK_OUTPUTDIR)/gensrc/sun/nio/fs/UnixConstants.java : $(JDK_TOPDIR)/src/closed/solaris/classes/sun/nio/fs/UnixConstants-$(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH).java
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+	$(call install-file)
 endif
 
 endif
--- a/makefiles/GensrcProperties.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/GensrcProperties.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -194,7 +194,6 @@
 	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/rowset)),\
 	%zh_TW,%zh_HK))
 
-#com/sun/servicetag/resources
 #com/sun/swing/internal/plaf/basic/resources
 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_BASIC,\
 	$(filter %.properties,\
--- a/makefiles/GensrcSwing.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/GensrcSwing.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -85,14 +85,12 @@
 # For some reason it is under $(JDK_TOPDIR)/make/tools/swing-beans/javax/swing
 # Should it be moved under $(JDK_TOPDIR)/src/share/classes/javax/swing instead?
 $(JDK_OUTPUTDIR)/gensrc_no_srczip/javax/swing/SwingBeanInfoBase.java: $(DOCLETSRC_DIR)/javax/swing/SwingBeanInfoBase.java
-	$(MKDIR) -p $(@D)
-	$(CP) $< $@
+	$(call install-file)
 
 # This file is the part of dt.jar 
 # For some reason it is under $(JDK_TOPDIR)/make/tools/swing-beans/sun/swing
 # Should it be moved under $(JDK_TOPDIR)/src/share/classes/sun/swing instead?
 $(JDK_OUTPUTDIR)/gensrc/sun/swing/BeanInfoUtils.java: $(DOCLETSRC_DIR)/sun/swing/BeanInfoUtils.java
-	$(MKDIR) -p $(@D)
-	$(CP) $< $@
+	$(call install-file)
 
 GENSRC_SWING_BEANINFO = $(JDK_OUTPUTDIR)/gensrc_no_srczip/_the.generated_beaninfo
--- a/makefiles/Images.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/Images.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -264,6 +264,13 @@
 $(foreach f,$(filter $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_ISADIR)/%,$(JDKJRE_JDKOUT_LIB_LIST)),\
     $(eval $(call AddFileToCopy,$(JDK_OUTPUTDIR),$(JDK_OVERLAY_IMAGE_DIR)/jre,$f,JDKJRE_OVERLAY_LIB_TARGETS)))
 
+ifneq ($(PROFILE),)
+# Files in lib$(PROFILE) are excluded from the generic copying routines so 
+# we have to add them back in here
+$(foreach f,$(CUSTOM_PROFILE_JARS),\
+    $(eval $(call AddFileToCopy,$(IMAGES_OUTPUTDIR)/lib$(PROFILE),$(JRE_IMAGE_DIR)/lib,$f,JRE_LIB_TARGETS)))
+endif
+
 # CTE plugin security change require new empty directory lib/applet
 $(JRE_IMAGE_DIR)/lib/applet: 
 	$(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@)
@@ -642,7 +649,7 @@
         EXEC_LIST_BIN:=$(filter-out %$(notdir $(MSVCR_DLL)),$(filter %.exe %.dll,$(ALL_BIN_LIST)))
     else
         # Find all executables in JDK_OUTPUTDIR since they exist when this makefile is parsed
-        EXEC_LIST_BIN:=$(shell $(FILE) `$(FIND) $(JDK_OUTPUTDIR)/bin -type f -name \*$(EXE_SUFFIX)` \
+        EXEC_LIST_BIN:=$(shell $(FILE) `$(FIND) $(JDK_OUTPUTDIR)/bin -type f -name \*$(EXE_SUFFIX) ! -name \*.debuginfo` \
 		| $(EGREP) 'ELF' | $(CUT) -d':' -f1)
         # On mac, the old build searches for static libraries for stripping instead of shared.
         # Not clear if it's intentional.
@@ -739,11 +746,6 @@
 	$(JDKJRE_OVERLAY_STRIP_LIST) $(JDK_OVERLAY_BIN_STRIP_LIST) 
 
 ifneq ($(PROFILE),)
-# Files in lib$(PROFILE) are excluded from the generic copying routines so
-# we have to add them back in here
-$(foreach f,$(CUSTOM_PROFILE_JARS),\
-    $(eval $(call AddFileToCopy,$(IMAGES_OUTPUTDIR)/lib$(PROFILE),$(JRE_IMAGE_DIR)/lib,$f,JRE_LIB_TARGETS)))
-
 PROFILE_IMAGE_JARS := $(filter %.jar, $(JRE_LIB_TARGETS))
 
 PROFILE_IMAGE_JARS_CHECKED := $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_jars_checked
--- a/makefiles/ProfileNames.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/ProfileNames.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -30,9 +30,8 @@
 
 PROFILE_NAMES := compact1 compact2 compact3
 
-# The include files use 1,2,3,4 for simplicity and conciseness. Internally we
-# use profile_1, profile_2 and profile_3. Note that profile_4 is a full JRE so
-# we never have to use it directly.
+# The include files use 1,2,3 for simplicity and conciseness. Internally we
+# use profile_1, profile_2 and profile_3. 
 
 ALL_PROFILES := profile_1 profile_2 profile_3
 
--- a/makefiles/Profiles.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/Profiles.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -74,28 +74,30 @@
     $(PROFILE_2_JARS)
 
 ifdef OPENJDK
-  PROFILE_4_JRE_JAR_FILES := $(filter-out alt-rt.jar, $(PROFILE_4_JRE_JAR_FILES))
+  FULL_JRE_JAR_FILES := $(filter-out alt-rt.jar, $(FULL_JRE_JAR_FILES))
 endif
 
-PROFILE_4_JARS := \
-    $(addprefix $(IMAGES_OUTPUTDIR)/lib/, $(PROFILE_4_JRE_JAR_FILES)) \
+FULL_JRE_JARS := \
+    $(addprefix $(IMAGES_OUTPUTDIR)/lib/, $(FULL_JRE_JAR_FILES)) \
     $(PROFILE_3_JARS)
 
 # The full set of "jar" files needed for a complete JDK (ct.sym and src.zip
 # are also included.)
 # Note we need to add back the regular form of all the custom profile jars e.g.
-# rt.jar and resources.jar
+# rt.jar and resources.jar that we filtered out above
 
-ALL_JARS := $(PROFILE_4_JARS) \
+ALL_JARS := $(FULL_JRE_JARS) \
         $(IMAGES_OUTPUTDIR)/lib/rt.jar \
         $(IMAGES_OUTPUTDIR)/lib/resources.jar \
         $(IMAGES_OUTPUTDIR)/lib/jconsole.jar \
         $(IMAGES_OUTPUTDIR)/lib/dt.jar \
         $(IMAGES_OUTPUTDIR)/lib/tools.jar \
         $(IMAGES_OUTPUTDIR)/lib/ct.sym \
-        $(IMAGES_OUTPUTDIR)/src.zip \
-        $(IMAGES_OUTPUTDIR)/lib/ext/cldrdata.jar \
-        $(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar
+        $(IMAGES_OUTPUTDIR)/src.zip
+
+ifeq ($(INCLUDE_SA),true)
+    ALL_JARS += $(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar
+endif
 
 ifeq ($(OPENJDK_TARGET_OS),solaris)
     ifndef OPENJDK
@@ -140,7 +142,7 @@
    $(PROFILE_1_JRE_BIN_FILES) \
    $(PROFILE_2_JRE_BIN_FILES) \
    $(PROFILE_3_JRE_BIN_FILES) \
-   $(PROFILE_4_JRE_BIN_FILES) 
+   $(FULL_JRE_BIN_FILES) 
 
 NOT_JRE_BIN_FILES := $(filter-out $(ALL_JRE_BIN_FILES), $(NEW_ALL_BIN_LIST))
 
@@ -149,18 +151,18 @@
     NOT_JRE_BIN_FILES += \
         $(PROFILE_2_JRE_BIN_FILES) \
         $(PROFILE_3_JRE_BIN_FILES) \
-        $(PROFILE_4_JRE_BIN_FILES) 
+        $(FULL_JRE_BIN_FILES) 
 endif
 
 ifeq ($(PROFILE), profile_2)
     NOT_JRE_BIN_FILES += \
         $(PROFILE_3_JRE_BIN_FILES) \
-        $(PROFILE_4_JRE_BIN_FILES) 
+        $(FULL_JRE_BIN_FILES) 
 endif
 
 ifeq ($(PROFILE), profile_3)
     NOT_JRE_BIN_FILES += \
-        $(PROFILE_4_JRE_BIN_FILES) 
+        $(FULL_JRE_BIN_FILES) 
 endif
 
 NOT_JRE_BIN_FILES := $(addprefix $(JDK_OUTPUTDIR)/bin/, $(NOT_JRE_BIN_FILES))
@@ -173,7 +175,7 @@
    $(PROFILE_1_JRE_LIB_FILES) \
    $(PROFILE_2_JRE_LIB_FILES) \
    $(PROFILE_3_JRE_LIB_FILES) \
-   $(PROFILE_4_JRE_LIB_FILES) 
+   $(FULL_JRE_LIB_FILES) 
 
 NOT_JRE_LIB_FILES := $(filter-out $(ALL_JRE_LIB_FILES), $(NEW_ALL_LIB_LIST))
 
@@ -189,18 +191,18 @@
     NOT_JRE_LIB_FILES += \
         $(PROFILE_2_JRE_LIB_FILES) \
         $(PROFILE_3_JRE_LIB_FILES) \
-        $(PROFILE_4_JRE_LIB_FILES) 
+        $(FULL_JRE_LIB_FILES) 
 endif
 
 ifeq ($(PROFILE), profile_2)
     NOT_JRE_LIB_FILES += \
         $(PROFILE_3_JRE_LIB_FILES) \
-        $(PROFILE_4_JRE_LIB_FILES) 
+        $(FULL_JRE_LIB_FILES) 
 endif
 
 ifeq ($(PROFILE), profile_3)
     NOT_JRE_LIB_FILES += \
-        $(PROFILE_4_JRE_LIB_FILES) 
+        $(FULL_JRE_LIB_FILES) 
 endif
 
 # Exclude the custom jar files as these will be added back via a special rule
@@ -279,13 +281,13 @@
 
 ifeq ($(PROFILE), profile_1)
   RT_JAR_EXCLUDES += \
-    $(PROFILE_1_RTJAR_EXCLUDE_TYPES) \
+    $(call class_list, $(PROFILE_1_RTJAR_EXCLUDE_TYPES)) \
     $(PROFILE_2_RTJAR_INCLUDE_PACKAGES) \
     $(call class_list, $(PROFILE_2_RTJAR_INCLUDE_TYPES)) \
     $(PROFILE_3_RTJAR_INCLUDE_PACKAGES) \
     $(call class_list, $(PROFILE_3_RTJAR_INCLUDE_TYPES)) \
-    $(PROFILE_4_RTJAR_INCLUDE_PACKAGES) \
-    $(call class_list, $(PROFILE_4_RTJAR_INCLUDE_TYPES))
+    $(FULL_JRE_RTJAR_INCLUDE_PACKAGES) \
+    $(call class_list, $(FULL_JRE_RTJAR_INCLUDE_TYPES))
   RT_JAR_INCLUDE_TYPES := \
 	$(call class_list, $(PROFILE_1_RTJAR_INCLUDE_TYPES))
   PROFILE_INCLUDE_METAINF_SERVICES := \
@@ -293,11 +295,11 @@
 endif
 ifeq ($(PROFILE), profile_2)
   RT_JAR_EXCLUDES += \
-    $(PROFILE_2_RTJAR_EXCLUDE_TYPES) \
+    $(call class_list, $(PROFILE_2_RTJAR_EXCLUDE_TYPES)) \
     $(PROFILE_3_RTJAR_INCLUDE_PACKAGES) \
     $(call class_list, $(PROFILE_3_RTJAR_INCLUDE_TYPES)) \
-    $(PROFILE_4_RTJAR_INCLUDE_PACKAGES) \
-    $(call class_list, $(PROFILE_4_RTJAR_INCLUDE_TYPES))
+    $(FULL_JRE_RTJAR_INCLUDE_PACKAGES) \
+    $(call class_list, $(FULL_JRE_RTJAR_INCLUDE_TYPES))
   RT_JAR_INCLUDE_TYPES := \
 	$(call class_list, $(PROFILE_1_RTJAR_INCLUDE_TYPES)) \
 	$(call class_list, $(PROFILE_2_RTJAR_INCLUDE_TYPES))
@@ -307,9 +309,9 @@
 endif
 ifeq ($(PROFILE), profile_3)
   RT_JAR_EXCLUDES += \
-    $(PROFILE_3_RTJAR_EXCLUDE_TYPES) \
-    $(PROFILE_4_RTJAR_INCLUDE_PACKAGES) \
-    $(call class_list, $(PROFILE_4_RTJAR_INCLUDE_TYPES))
+    $(call class_list, $(PROFILE_3_RTJAR_EXCLUDE_TYPES)) \
+    $(FULL_JRE_RTJAR_INCLUDE_PACKAGES) \
+    $(call class_list, $(FULL_JRE_RTJAR_INCLUDE_TYPES))
   RT_JAR_INCLUDE_TYPES := \
 	$(call class_list, $(PROFILE_1_RTJAR_INCLUDE_TYPES)) \
 	$(call class_list, $(PROFILE_2_RTJAR_INCLUDE_TYPES)) \
--- a/makefiles/SignJars.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/SignJars.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -79,8 +79,7 @@
 	fi
 
 $(JCE_OUTPUTDIR)/%: $(IMAGES_OUTPUTDIR)/unsigned/%
-	$(MKDIR) -p $(@D)
-	$(CP) $< $@
+	$(call install-file)
 	$(JARSIGNER) -keystore $(SIGNING_KEYSTORE) \
 	    $@ $(SIGNING_ALIAS) < $(SIGNING_PASSPHRASE)
 	@$(PRINTF) "\nJar codesigning finished.\n"
--- a/makefiles/Tools.gmk	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/Tools.gmk	Mon Apr 22 23:17:22 2013 -0700
@@ -47,17 +47,15 @@
 endif
 
 $(JDK_OUTPUTDIR)/btclasses/build/tools/generatenimbus/resources/%.template : \
-	$(JDK_TOPDIR)/src/share/classes/javax/swing/plaf/nimbus/%.template
-	$(MKDIR) -p $(@D)
-	$(CP) $< $@
+		$(JDK_TOPDIR)/src/share/classes/javax/swing/plaf/nimbus/%.template
+	$(call install-file)
 
 BUILD_TOOLS += $(foreach i,$(wildcard $(JDK_TOPDIR)/src/share/classes/javax/swing/plaf/nimbus/*.template),$(JDK_OUTPUTDIR)/btclasses/build/tools/generatenimbus/resources/$(notdir $i))
 
 # Resources used by CheckDeps tool
 $(JDK_OUTPUTDIR)/btclasses/build/tools/deps/% : \
-	$(JDK_TOPDIR)/make/tools/src/build/tools/deps/%
-	$(MKDIR) -p $(@D)
-	$(CP) $< $@
+		$(JDK_TOPDIR)/make/tools/src/build/tools/deps/%
+	$(call install-file)
 
 BUILD_TOOLS += $(JDK_OUTPUTDIR)/btclasses/build/tools/deps/refs.allowed
 
--- a/makefiles/mapfiles/libjava/mapfile-vers	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/mapfiles/libjava/mapfile-vers	Mon Apr 22 23:17:22 2013 -0700
@@ -133,7 +133,7 @@
 		Java_java_lang_ClassLoader_00024NativeLibrary_find;
 		Java_java_lang_ClassLoader_00024NativeLibrary_load;
 		Java_java_lang_ClassLoader_00024NativeLibrary_unload;
-		Java_java_lang_ClassLoader_getCaller; 
+		Java_java_lang_ClassLoader_00024NativeLibrary_findBuiltinLib;
 		Java_java_lang_ClassLoader_registerNatives;
 		Java_java_lang_Compiler_registerNatives;
 		Java_java_lang_Double_longBitsToDouble;
@@ -216,7 +216,7 @@
 		Java_java_lang_Throwable_fillInStackTrace;
                 Java_java_lang_Throwable_getStackTraceDepth;
                 Java_java_lang_Throwable_getStackTraceElement;
-		Java_java_lang_UNIXProcess_initIDs;
+		Java_java_lang_UNIXProcess_init;
 		Java_java_lang_UNIXProcess_waitForProcessExit;
 		Java_java_lang_UNIXProcess_forkAndExec;
 		Java_java_lang_UNIXProcess_destroyProcess;
@@ -232,7 +232,6 @@
 		Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2Ljava_security_AccessControlContext_2;
 		Java_java_security_AccessController_getStackAccessControlContext;
 		Java_java_security_AccessController_getInheritedAccessControlContext;
-		Java_java_util_ResourceBundle_getClassContext;
 		Java_java_util_TimeZone_getSystemTimeZoneID;
 		Java_java_util_TimeZone_getSystemGMTOffsetID;
 		Java_java_util_concurrent_atomic_AtomicLong_VMSupportsCS8;
--- a/makefiles/mapfiles/libjava/reorder-sparc	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/mapfiles/libjava/reorder-sparc	Mon Apr 22 23:17:22 2013 -0700
@@ -78,7 +78,6 @@
 # Test Sleep
 # Test IntToString
 # Test LoadToolkit
-text: .text%Java_java_util_ResourceBundle_getClassContext;
 text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2Ljava_security_AccessControlContext_2;
 text: .text%JNU_GetEnv;
 text: .text%Java_java_io_UnixFileSystem_checkAccess;
--- a/makefiles/mapfiles/libjava/reorder-sparcv9	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/mapfiles/libjava/reorder-sparcv9	Mon Apr 22 23:17:22 2013 -0700
@@ -74,7 +74,6 @@
 # Test Sleep
 # Test IntToString
 # Test LoadToolkit
-text: .text%Java_java_util_ResourceBundle_getClassContext;
 text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2Ljava_security_AccessControlContext_2;
 text: .text%JNU_GetEnv;
 text: .text%Java_java_io_UnixFileSystem_checkAccess;
--- a/makefiles/mapfiles/libjava/reorder-x86	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/mapfiles/libjava/reorder-x86	Mon Apr 22 23:17:22 2013 -0700
@@ -73,7 +73,6 @@
 # Test Sleep
 # Test IntToString
 # Test LoadToolkit
-text: .text%Java_java_util_ResourceBundle_getClassContext;
 text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2Ljava_security_AccessControlContext_2;
 text: .text%JNU_GetEnv;
 text: .text%Java_java_io_UnixFileSystem_checkAccess;
--- a/makefiles/mapfiles/liblcms/mapfile-vers	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/mapfiles/liblcms/mapfile-vers	Mon Apr 22 23:17:22 2013 -0700
@@ -27,13 +27,12 @@
 
 SUNWprivate_1.1 {
 	global:
-        Java_sun_java2d_cmm_lcms_LCMS_loadProfile;
-        Java_sun_java2d_cmm_lcms_LCMS_freeProfile;
+        Java_sun_java2d_cmm_lcms_LCMS_loadProfileNative;
+        Java_sun_java2d_cmm_lcms_LCMS_freeProfileNative;
         Java_sun_java2d_cmm_lcms_LCMS_getProfileSize;
         Java_sun_java2d_cmm_lcms_LCMS_getProfileData;
-        Java_sun_java2d_cmm_lcms_LCMS_getTagSize;
-        Java_sun_java2d_cmm_lcms_LCMS_getTagData;
-        Java_sun_java2d_cmm_lcms_LCMS_setTagData;
+        Java_sun_java2d_cmm_lcms_LCMS_getTagNative;
+        Java_sun_java2d_cmm_lcms_LCMS_setTagDataNative;
         Java_sun_java2d_cmm_lcms_LCMS_colorConvert;
         Java_sun_java2d_cmm_lcms_LCMS_getProfileID;
         Java_sun_java2d_cmm_lcms_LCMS_initLCMS;
--- a/makefiles/profile-includes.txt	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/profile-includes.txt	Mon Apr 22 23:17:22 2013 -0700
@@ -27,6 +27,7 @@
     keytool$(EXE_SUFFIX)
 
 PROFILE_1_JRE_LIB_FILES := \
+    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)j2pkcs11$(SHARED_LIBRARY_SUFFIX) \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)java$(SHARED_LIBRARY_SUFFIX) \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsig.diz \
@@ -34,6 +35,7 @@
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)nio$(SHARED_LIBRARY_SUFFIX) \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)npt$(SHARED_LIBRARY_SUFFIX) \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)npt.diz \
+    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)sunec$(SHARED_LIBRARY_SUFFIX) \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)unpack$(SHARED_LIBRARY_SUFFIX) \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)verify$(SHARED_LIBRARY_SUFFIX) \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)verify.diz \
@@ -61,7 +63,10 @@
     currency.data \
     ext/localedata.jar \
     ext/meta-index \
+    ext/sunec.jar \
     ext/sunjce_provider.jar \
+    ext/sunpkcs11.jar \
+    hijrah-config-umalqura.properties \
     jce.jar \
     jsse.jar \
     logging.properties \
@@ -76,7 +81,7 @@
     security/java.security \
     security/local_policy.jar \
     security/trusted.libraries \
-    tzdb.jar
+    tzdb.dat
 
 PROFILE_1_JRE_OTHER_FILES := \
     COPYRIGHT \
@@ -88,15 +93,15 @@
 
 PROFILE_1_JRE_JAR_FILES := \
     ext/localedata.jar \
+    ext/sunec.jar \
     ext/sunjce_provider.jar \
+    ext/sunpkcs11.jar \
     jce.jar \
     jsse.jar \
     resources.jar \
     rt.jar \
     security/US_export_policy.jar \
-    security/local_policy.jar \
-    tzdb.jar
-
+    security/local_policy.jar
 
 PROFILE_2_JRE_BIN_FILES := \
     rmid$(EXE_SUFFIX) \
@@ -142,7 +147,7 @@
     management-agent.jar
 
 
-PROFILE_4_JRE_BIN_FILES := \
+FULL_JRE_BIN_FILES := \
     orbd$(EXE_SUFFIX) \
     pack200$(EXE_SUFFIX) \
     policytool$(EXE_SUFFIX) \
@@ -150,7 +155,7 @@
     tnameserv$(EXE_SUFFIX) \
     unpack200$(EXE_SUFFIX)
 
-PROFILE_4_JRE_LIB_FILES := \
+FULL_JRE_LIB_FILES := \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)awt$(SHARED_LIBRARY_SUFFIX) \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)awt_headless$(SHARED_LIBRARY_SUFFIX) \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)awt_xawt$(SHARED_LIBRARY_SUFFIX) \
@@ -158,7 +163,6 @@
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)dt_socket$(SHARED_LIBRARY_SUFFIX) \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)dt_socket.diz \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)fontmanager$(SHARED_LIBRARY_SUFFIX) \
-    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)j2pkcs11$(SHARED_LIBRARY_SUFFIX) \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX) \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jdwp$(SHARED_LIBRARY_SUFFIX) \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jpeg$(SHARED_LIBRARY_SUFFIX) \
@@ -167,7 +171,6 @@
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)kcms$(SHARED_LIBRARY_SUFFIX) \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)mlib_image$(SHARED_LIBRARY_SUFFIX) \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)splashscreen$(SHARED_LIBRARY_SUFFIX) \
-    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)sunec$(SHARED_LIBRARY_SUFFIX) \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)t2k$(SHARED_LIBRARY_SUFFIX) \
     alt-rt.jar \
     charsets.jar \
@@ -178,8 +181,7 @@
     cmm/sRGB.pf \
     ext/cldrdata.jar \
     ext/dnsns.jar \
-    ext/sunec.jar \
-    ext/sunpkcs11.jar \
+    ext/nashorn.jar \
     ext/zipfs.jar \
     flavormap.properties \
     fontconfig.RedHat.5.bfc \
@@ -219,10 +221,9 @@
     oblique-fonts/fonts.dir \
     psfont.properties.ja \
     psfontj2d.properties \
-    servicetag/jdk_header.png \
     sound.properties
 
-PROFILE_4_JRE_OTHER_FILES := \
+FULL_JRE_OTHER_FILES := \
     man/ja_JP.UTF-8/man1/java.1 \
     man/ja_JP.UTF-8/man1/javaws.1 \
     man/ja_JP.UTF-8/man1/keytool.1 \
@@ -246,13 +247,12 @@
     man/man1/tnameserv.1 \
     man/man1/unpack200.1
 
-PROFILE_4_JRE_JAR_FILES := \
+FULL_JRE_JAR_FILES := \
     alt-rt.jar \
     charsets.jar \
     ext/cldrdata.jar \
     ext/dnsns.jar \
-    ext/sunec.jar \
-    ext/sunpkcs11.jar \
+    ext/nashorn.jar \
     ext/zipfs.jar
 
 
--- a/makefiles/profile-rtjar-includes.txt	Mon Mar 25 16:49:25 2013 -0700
+++ b/makefiles/profile-rtjar-includes.txt	Mon Apr 22 23:17:22 2013 -0700
@@ -22,119 +22,55 @@
 # or visit www.oracle.com if you need additional information or have any
 # questions.
 #
+
+# Included or excluded types must take one of two forms
+# - *.class   to indicate all classes; or else
+# - a full single type name e.g.
+#      com/sun/security/auth/callback/DialogCallbackHandler$$1.class
+# You can not use arbitrary wildcards like DialogCallbackHandler*.class.
+#
+# Notes:
+#  -  Nested types must use $$ in place of $ as $ is the make meta-character
+#  -  If a package is not listed in any profile's inclusion list then it will
+#     not appear in any profile. But if a package is also missing from the
+#     full JRE's inclusion list then it will still be part of the full JRE.
+#     This is because the full JRE's inclusion lists are only used to define
+#     the exclusion lists for profiles; they are not used to define the full
+#     JRE contents - that is still done with the pre-profile legacy mechanism
+#     (all packagesthat can be found, less those not intended for rt.jar).
+#     This was done to minimize the impact of profiles on the regular
+#     non-profile build.
+#
 PROFILE_1_RTJAR_INCLUDE_PACKAGES := \
     com/sun/demo/jvmti/hprof \
     com/sun/java/util/jar/pack \
     com/sun/net/ssl \
-    com/sun/net/ssl/internal/www/protocol/https \
     com/sun/nio/file \
     com/sun/security/cert/internal/x509 \
     java/io \
     java/lang \
-    java/lang/annotation \
-    java/lang/invoke \
-    java/lang/ref \
-    java/lang/reflect \
     java/math \
     java/net \
     java/nio \
-    java/nio/channels \
-    java/nio/channels/spi \
-    java/nio/charset \
-    java/nio/charset/spi \
-    java/nio/file \
-    java/nio/file/attribute \
-    java/nio/file/spi \
     java/security \
-    java/security/cert \
-    java/security/interfaces \
-    java/security/spec \
     java/text \
-    java/text/spi \
     java/time \
     java/util \
-    java/util/concurrent \
-    java/util/concurrent/atomic \
-    java/util/concurrent/locks \
-    java/util/function \
-    java/util/jar \
-    java/util/logging \
-    java/util/regex \
-    java/util/spi \
-    java/util/zip \
     javax/net \
-    javax/net/ssl \
-    javax/security/auth \
-    javax/security/auth/callback \
-    javax/security/auth/login \
-    javax/security/auth/spi \
-    javax/security/auth/x500 \
-    javax/security/cert \
-    jdk/internal \
+    javax/security \
+    jdk \
     sun/invoke \
-    sun/invoke/anon \
-    sun/invoke/empty \
-    sun/invoke/util \
     sun/launcher \
-    sun/launcher/resources \
     sun/misc \
-    sun/misc/resources \
     sun/net/ \
-    sun/net/idn \
-    sun/net/sdp \
-    sun/net/spi \
-    sun/net/spi/nameservice \
-    sun/net/util \
-    sun/net/www \
-    sun/net/www/http \
-    sun/net/www/protocol/file \
-    sun/net/www/protocol/http/ \
-    sun/net/www/protocol/http/logging \
-    sun/net/www/protocol/https \
-    sun/net/www/protocol/jar \
     sun/nio \
-    sun/nio/ch \
-    sun/nio/cs \
-    sun/nio/fs \
     sun/reflect \
-    sun/reflect/annotation \
-    sun/reflect/generics/factory \
-    sun/reflect/generics/parser \
-    sun/reflect/generics/reflectiveObjects \
-    sun/reflect/generics/repository \
-    sun/reflect/generics/scope \
-    sun/reflect/generics/tree \
-    sun/reflect/generics/visitor \
-    sun/reflect/misc \
-    sun/security/action \
-    sun/security/ec \
-    sun/security/jca \
-    sun/security/pkcs \
-    sun/security/pkcs10 \
-    sun/security/pkcs12 \
-    sun/security/provider \
-    sun/security/provider/certpath \
-    sun/security/provider/certpath/ssl \
-    sun/security/rsa \
-    sun/security/timestamp \
-    sun/security/tools \
-    sun/security/tools/keytool \
-    sun/security/util \
-    sun/security/validator \
-    sun/security/x509 \
+    sun/security \
     sun/text \
-    sun/text/bidi \
-    sun/text/normalizer \
-    sun/text/resources \
     sun/usagetracker \
-    sun/util \
-    sun/util/calendar \
-    sun/util/locale \
-    sun/util/logging \
-    sun/util/logging/resources \
-    sun/util/resources
+    sun/util
 
-PROFILE_1_RTJAR_INCLUDE_TYPES :=
+PROFILE_1_RTJAR_INCLUDE_TYPES := 
 
 PROFILE_1_RTJAR_EXCLUDE_TYPES := 
 
@@ -144,139 +80,19 @@
 PROFILE_2_RTJAR_INCLUDE_PACKAGES := \
     com/sun/java_cup/internal/runtime \
     com/sun/net/httpserver \
-    com/sun/net/httpserver/spi \
-    com/sun/org/apache/bcel/internal \
-    com/sun/org/apache/bcel/internal/classfile \
-    com/sun/org/apache/bcel/internal/generic \
-    com/sun/org/apache/bcel/internal/util \
-    com/sun/org/apache/regexp/internal \
-    com/sun/org/apache/xalan/internal \
-    com/sun/org/apache/xalan/internal/extensions \
-    com/sun/org/apache/xalan/internal/lib \
-    com/sun/org/apache/xalan/internal/res \
-    com/sun/org/apache/xalan/internal/templates \
-    com/sun/org/apache/xalan/internal/utils \
-    com/sun/org/apache/xalan/internal/xslt \
-    com/sun/org/apache/xalan/internal/xsltc \
-    com/sun/org/apache/xalan/internal/xsltc/cmdline \
-    com/sun/org/apache/xalan/internal/xsltc/cmdline/getopt \
-    com/sun/org/apache/xalan/internal/xsltc/compiler \
-    com/sun/org/apache/xalan/internal/xsltc/compiler/util \
-    com/sun/org/apache/xalan/internal/xsltc/dom \
-    com/sun/org/apache/xalan/internal/xsltc/runtime \
-    com/sun/org/apache/xalan/internal/xsltc/runtime/output \
-    com/sun/org/apache/xalan/internal/xsltc/trax \
-    com/sun/org/apache/xalan/internal/xsltc/util \
-    com/sun/org/apache/xerces/internal/dom \
-    com/sun/org/apache/xerces/internal/dom/events \
-    com/sun/org/apache/xerces/internal/impl \
-    com/sun/org/apache/xerces/internal/impl/dtd \
-    com/sun/org/apache/xerces/internal/impl/dtd/models \
-    com/sun/org/apache/xerces/internal/impl/dv \
-    com/sun/org/apache/xerces/internal/impl/dv/dtd \
-    com/sun/org/apache/xerces/internal/impl/dv/util \
-    com/sun/org/apache/xerces/internal/impl/dv/xs \
-    com/sun/org/apache/xerces/internal/impl/io \
-    com/sun/org/apache/xerces/internal/impl/msg \
-    com/sun/org/apache/xerces/internal/impl/validation \
-    com/sun/org/apache/xerces/internal/impl/xpath \
-    com/sun/org/apache/xerces/internal/impl/xpath/regex \
-    com/sun/org/apache/xerces/internal/impl/xs \
-    com/sun/org/apache/xerces/internal/impl/xs/identity \
-    com/sun/org/apache/xerces/internal/impl/xs/models \
-    com/sun/org/apache/xerces/internal/impl/xs/opti \
-    com/sun/org/apache/xerces/internal/impl/xs/traversers \
-    com/sun/org/apache/xerces/internal/impl/xs/util \
-    com/sun/org/apache/xerces/internal/jaxp \
-    com/sun/org/apache/xerces/internal/jaxp/datatype \
-    com/sun/org/apache/xerces/internal/jaxp/validation \
-    com/sun/org/apache/xerces/internal/parsers \
-    com/sun/org/apache/xerces/internal/util \
-    com/sun/org/apache/xerces/internal/utils \
-    com/sun/org/apache/xerces/internal/xinclude \
-    com/sun/org/apache/xerces/internal/xni \
-    com/sun/org/apache/xerces/internal/xni/grammars \
-    com/sun/org/apache/xerces/internal/xni/parser \
-    com/sun/org/apache/xerces/internal/xpointer \
-    com/sun/org/apache/xerces/internal/xs \
-    com/sun/org/apache/xerces/internal/xs/datatypes \
-    com/sun/org/apache/xml/internal/dtm \
-    com/sun/org/apache/xml/internal/dtm/ref \
-    com/sun/org/apache/xml/internal/dtm/ref/dom2dtm \
-    com/sun/org/apache/xml/internal/dtm/ref/sax2dtm \
-    com/sun/org/apache/xml/internal/res \
-    com/sun/org/apache/xml/internal/resolver \
-    com/sun/org/apache/xml/internal/resolver/helpers \
-    com/sun/org/apache/xml/internal/resolver/readers \
-    com/sun/org/apache/xml/internal/resolver/tools \
-    com/sun/org/apache/xml/internal/serialize \
-    com/sun/org/apache/xml/internal/serializer \
-    com/sun/org/apache/xml/internal/serializer/utils \
-    com/sun/org/apache/xml/internal/utils \
-    com/sun/org/apache/xml/internal/utils/res \
-    com/sun/org/apache/xpath/internal \
-    com/sun/org/apache/xpath/internal/axes \
-    com/sun/org/apache/xpath/internal/compiler \
-    com/sun/org/apache/xpath/internal/domapi \
-    com/sun/org/apache/xpath/internal/functions \
-    com/sun/org/apache/xpath/internal/jaxp \
-    com/sun/org/apache/xpath/internal/objects \
-    com/sun/org/apache/xpath/internal/operations \
-    com/sun/org/apache/xpath/internal/patterns \
-    com/sun/org/apache/xpath/internal/res \
+    com/sun/org/apache \
     com/sun/rmi/rmid \
-    com/sun/xml/internal/stream/ \
-    com/sun/xml/internal/stream/dtd \
-    com/sun/xml/internal/stream/dtd/nonvalidating \
-    com/sun/xml/internal/stream/events \
-    com/sun/xml/internal/stream/util \
-    com/sun/xml/internal/stream/writers \
+    com/sun/xml/internal/stream \
     java/rmi \
-    java/rmi/activation \
-    java/rmi/dgc \
-    java/rmi/registry \
-    java/rmi/server \
     java/sql \
     javax/rmi/ssl \
     javax/sql \
     javax/transaction \
-    javax/transaction/xa \
     javax/xml \
-    javax/xml/datatype \
-    javax/xml/namespace \
-    javax/xml/parsers \
-    javax/xml/stream \
-    javax/xml/stream/events \
-    javax/xml/stream/util \
-    javax/xml/transform \
-    javax/xml/transform/dom \
-    javax/xml/transform/sax \
-    javax/xml/transform/stax \
-    javax/xml/transform/stream \
-    javax/xml/validation \
-    javax/xml/xpath \
-    org/w3c/dom \
-    org/w3c/dom/bootstrap \
-    org/w3c/dom/css \
-    org/w3c/dom/events \
-    org/w3c/dom/html \
-    org/w3c/dom/ls \
-    org/w3c/dom/ranges \
-    org/w3c/dom/stylesheets \
-    org/w3c/dom/traversal \
-    org/w3c/dom/views \
-    org/w3c/dom/xpath \
+    org/w3c \
     org/xml/sax \
-    org/xml/sax/ext \
-    org/xml/sax/helpers \
     sun/net/httpserver \
-    sun/rmi/log \
-    sun/rmi/registry \
-    sun/rmi/runtime \
-    sun/rmi/server \
-    sun/rmi/transport \
-    sun/rmi/transport/proxy \
-    sun/rmi/transport/tcp \
+    sun/rmi \
     sun/util/xml
 
 PROFILE_2_RTJAR_INCLUDE_TYPES := 
@@ -284,287 +100,83 @@
 PROFILE_2_RTJAR_EXCLUDE_TYPES := 
 
 PROFILE_2_INCLUDE_METAINF_SERVICES := \
-    META-INF/services/sun.util.spi.XmlPropertiesProvider
+    META-INF/services/sun.util.spi.XmlPropertiesProvider 
 
 
 PROFILE_3_RTJAR_INCLUDE_PACKAGES := \
-    com/sun/jmx/defaults \
-    com/sun/jmx/interceptor \
-    com/sun/jmx/mbeanserver \
-    com/sun/jmx/remote/internal \
-    com/sun/jmx/remote/protocol/rmi \
-    com/sun/jmx/remote/security \
-    com/sun/jmx/remote/util \
-    com/sun/jmx/snmp \
-    com/sun/jmx/snmp/IPAcl \
-    com/sun/jmx/snmp/agent \
-    com/sun/jmx/snmp/daemon \
-    com/sun/jmx/snmp/defaults \
-    com/sun/jmx/snmp/internal \
-    com/sun/jmx/snmp/mpm \
-    com/sun/jmx/snmp/tasks \
-    com/sun/jmx/trace \
-    com/sun/jndi/dns \
-    com/sun/jndi/ldap \
-    com/sun/jndi/ldap/ext \
-    com/sun/jndi/ldap/pool \
-    com/sun/jndi/ldap/sasl \
-    com/sun/jndi/rmi/registry \
-    com/sun/jndi/toolkit/ctx \
-    com/sun/jndi/toolkit/dir \
-    com/sun/jndi/toolkit/url \
-    com/sun/jndi/url/dns \
-    com/sun/jndi/url/ldap \
-    com/sun/jndi/url/ldaps \
-    com/sun/jndi/url/rmi \
+    com/sun/jmx \
+    com/sun/jndi \
     com/sun/management \
-    com/sun/management/jmx \
     com/sun/naming/internal \
     com/sun/nio/sctp \
     com/sun/org/apache/xml/internal/security \
-    com/sun/org/apache/xml/internal/security/algorithms \
-    com/sun/org/apache/xml/internal/security/algorithms/implementations \
-    com/sun/org/apache/xml/internal/security/c14n \
-    com/sun/org/apache/xml/internal/security/c14n/helper \
-    com/sun/org/apache/xml/internal/security/c14n/implementations \
-    com/sun/org/apache/xml/internal/security/encryption \
-    com/sun/org/apache/xml/internal/security/exceptions \
-    com/sun/org/apache/xml/internal/security/keys \
-    com/sun/org/apache/xml/internal/security/keys/content \
-    com/sun/org/apache/xml/internal/security/keys/content/keyvalues \
-    com/sun/org/apache/xml/internal/security/keys/content/x509 \
-    com/sun/org/apache/xml/internal/security/keys/keyresolver \
-    com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations \
-    com/sun/org/apache/xml/internal/security/keys/storage \
-    com/sun/org/apache/xml/internal/security/keys/storage/implementations \
-    com/sun/org/apache/xml/internal/security/signature \
-    com/sun/org/apache/xml/internal/security/transforms \
-    com/sun/org/apache/xml/internal/security/transforms/implementations \
-    com/sun/org/apache/xml/internal/security/transforms/params \
-    com/sun/org/apache/xml/internal/security/utils \
-    com/sun/org/apache/xml/internal/security/utils/resolver \
-    com/sun/org/apache/xml/internal/security/utils/resolver/implementations \
     com/sun/rowset \
-    com/sun/rowset/internal \
-    com/sun/rowset/providers \
-    com/sun/script/javascript \
-    com/sun/script/util \
+    com/sun/script \
     com/sun/security/auth \
-    com/sun/security/auth/callback \
-    com/sun/security/auth/login \
-    com/sun/security/auth/module \
     com/sun/security/jgss \
     com/sun/security/ntlm \
     com/sun/security/sasl \
-    com/sun/security/sasl/digest \
-    com/sun/security/sasl/gsskerb \
-    com/sun/security/sasl/ntlm \
-    com/sun/security/sasl/util \
     com/sun/tracing \
-    com/sun/tracing/dtrace \
     java/lang/instrument \
     java/lang/management \
     java/security/acl \
     java/util/prefs \
     javax/annotation/processing \
     javax/lang/model \
-    javax/lang/model/element \
-    javax/lang/model/type \
-    javax/lang/model/util \
     javax/management \
-    javax/management/loading \
-    javax/management/modelmbean \
-    javax/management/monitor \
-    javax/management/openmbean \
-    javax/management/relation \
-    javax/management/remote \
-    javax/management/remote/rmi \
-    javax/management/timer \
     javax/naming \
-    javax/naming/directory \
-    javax/naming/event \
-    javax/naming/ldap \
-    javax/naming/spi \
     javax/script \
     javax/security/auth/kerberos \
     javax/security/sasl \
     javax/smartcardio \
     javax/sql/rowset \
-    javax/sql/rowset/serial \
-    javax/sql/rowset/spi \
     javax/tools \
-    javax/tools/annotation \
     javax/xml/crypto \
-    javax/xml/crypto/dom \
-    javax/xml/crypto/dsig \
-    javax/xml/crypto/dsig/dom \
-    javax/xml/crypto/dsig/keyinfo \
-    javax/xml/crypto/dsig/spec \
     org/ietf/jgss \
-    org/jcp/xml/dsig/internal \
-    org/jcp/xml/dsig/internal/dom \
+    org/jcp/xml \
     sun/instrument \
     sun/management \
-    sun/management/counter \
-    sun/management/counter/perf \
-    sun/management/jmxremote \
-    sun/management/resources \
-    sun/management/snmp \
-    sun/management/snmp/jvminstr \
-    sun/management/snmp/jvmmib \
-    sun/management/snmp/util \
     sun/net/dns \
     sun/net/www/protocol/http/ntlm \
     sun/net/www/protocol/http/spnego \
     sun/nio/ch/sctp \
-    sun/org/mozilla/classfile/internal \
-    sun/org/mozilla/javascript/internal \
-    sun/org/mozilla/javascript/internal/annotations \
-    sun/org/mozilla/javascript/internal/ast \
-    sun/org/mozilla/javascript/internal/debug \
-    sun/org/mozilla/javascript/internal/jdk13 \
-    sun/org/mozilla/javascript/internal/jdk15 \
-    sun/org/mozilla/javascript/internal/json \
-    sun/org/mozilla/javascript/internal/optimizer \
-    sun/org/mozilla/javascript/internal/regexp \
-    sun/org/mozilla/javascript/internal/serialize \
-    sun/org/mozilla/javascript/internal/xml \
-    sun/org/mozilla/javascript/internal/xmlimpl \
+    sun/org/mozilla \
     sun/security/acl \
     sun/security/jgss \
-    sun/security/jgss/krb5 \
-    sun/security/jgss/spi \
-    sun/security/jgss/spnego \
-    sun/security/jgss/wrapper \
     sun/security/krb5 \
-    sun/security/krb5/internal \
-    sun/security/krb5/internal/ccache \
-    sun/security/krb5/internal/crypto \
-    sun/security/krb5/internal/crypto/dk \
-    sun/security/krb5/internal/ktab \
-    sun/security/krb5/internal/rcache \
-    sun/security/krb5/internal/util \
     sun/security/provider/certpath/ldap \
     sun/security/smartcardio \
-    sun/tracing \
-    sun/tracing/dtrace
+    sun/tracing
 
-PROFILE_3_RTJAR_INCLUDE_TYPES :=
+PROFILE_3_RTJAR_INCLUDE_TYPES := 
 
 PROFILE_3_RTJAR_EXCLUDE_TYPES := \
+    com/sun/security/auth/callback/DialogCallbackHandler$$1.class \
+    com/sun/security/auth/callback/DialogCallbackHandler$$2.class \
+    com/sun/security/auth/callback/DialogCallbackHandler$$Action.class \
+    com/sun/security/auth/callback/DialogCallbackHandler$$ConfirmationInfo.class \
+    com/sun/security/auth/callback/DialogCallbackHandler.class \
     javax/management/remote/rmi/_RMIConnectionImpl_Tie.class \
     javax/management/remote/rmi/_RMIConnection_Stub.class \
     javax/management/remote/rmi/_RMIServerImpl_Tie.class \
-    javax/management/remote/rmi/_RMIServer_Stub.class \
-    com/sun/security/auth/callback/DialogCallbackHandler.class \
-    com/sun/security/auth/callback/DialogCallbackHandler\$$1.class \
-    com/sun/security/auth/callback/DialogCallbackHandler\$$2.class \
-    com/sun/security/auth/callback/DialogCallbackHandler\$$Action.class \
-    com/sun/security/auth/callback/DialogCallbackHandler\$$ConfirmationInfo.class
+    javax/management/remote/rmi/_RMIServer_Stub.class
 
 PROFILE_3_INCLUDE_METAINF_SERVICES := \
     META-INF/services/javax.script.ScriptEngineFactory 
 
 
-PROFILE_4_RTJAR_INCLUDE_PACKAGES := \
-    com/oracle/net \
-    com/oracle/nio \
-    com/oracle/util \
+FULL_JRE_RTJAR_INCLUDE_PACKAGES := \
+    com/oracle \
     com/sun/accessibility/internal/resources \
     com/sun/activation/registries \
     com/sun/awt \
     com/sun/beans \
-    com/sun/beans/decoder \
-    com/sun/beans/finder \
-    com/sun/corba/se/impl/activation \
-    com/sun/corba/se/impl/copyobject \
-    com/sun/corba/se/impl/corba \
-    com/sun/corba/se/impl/dynamicany \
-    com/sun/corba/se/impl/encoding \
-    com/sun/corba/se/impl/interceptors \
-    com/sun/corba/se/impl/io \
-    com/sun/corba/se/impl/ior \
-    com/sun/corba/se/impl/ior/iiop \
-    com/sun/corba/se/impl/javax/rmi \
-    com/sun/corba/se/impl/javax/rmi/CORBA \
-    com/sun/corba/se/impl/legacy/connection \
-    com/sun/corba/se/impl/logging \
-    com/sun/corba/se/impl/monitoring \
-    com/sun/corba/se/impl/naming/cosnaming \
-    com/sun/corba/se/impl/naming/namingutil \
-    com/sun/corba/se/impl/naming/pcosnaming \
-    com/sun/corba/se/impl/oa \
-    com/sun/corba/se/impl/oa/poa \
-    com/sun/corba/se/impl/oa/toa \
-    com/sun/corba/se/impl/orb \
-    com/sun/corba/se/impl/orbutil \
-    com/sun/corba/se/impl/orbutil/closure \
-    com/sun/corba/se/impl/orbutil/concurrent \
-    com/sun/corba/se/impl/orbutil/fsm \
-    com/sun/corba/se/impl/orbutil/graph \
-    com/sun/corba/se/impl/orbutil/threadpool \
-    com/sun/corba/se/impl/presentation/rmi \
-    com/sun/corba/se/impl/protocol \
-    com/sun/corba/se/impl/protocol/giopmsgheaders \
-    com/sun/corba/se/impl/resolver \
-    com/sun/corba/se/impl/transport \
-    com/sun/corba/se/impl/util \
-    com/sun/corba/se/internal/CosNaming \
-    com/sun/corba/se/internal/Interceptors \
-    com/sun/corba/se/internal/POA \
-    com/sun/corba/se/internal/corba \
-    com/sun/corba/se/internal/iiop \
-    com/sun/corba/se/org/omg/CORBA \
-    com/sun/corba/se/pept/broker \
-    com/sun/corba/se/pept/encoding \
-    com/sun/corba/se/pept/protocol \
-    com/sun/corba/se/pept/transport \
-    com/sun/corba/se/spi/activation \
-    com/sun/corba/se/spi/activation/InitialNameServicePackage \
-    com/sun/corba/se/spi/activation/LocatorPackage \
-    com/sun/corba/se/spi/activation/RepositoryPackage \
-    com/sun/corba/se/spi/copyobject \
-    com/sun/corba/se/spi/encoding \
-    com/sun/corba/se/spi/extension \
-    com/sun/corba/se/spi/ior \
-    com/sun/corba/se/spi/ior/iiop \
-    com/sun/corba/se/spi/legacy/connection \
-    com/sun/corba/se/spi/legacy/interceptor \
-    com/sun/corba/se/spi/logging \
-    com/sun/corba/se/spi/monitoring \
-    com/sun/corba/se/spi/oa \
-    com/sun/corba/se/spi/orb \
-    com/sun/corba/se/spi/orbutil/closure \
-    com/sun/corba/se/spi/orbutil/fsm \
-    com/sun/corba/se/spi/orbutil/proxy \
-    com/sun/corba/se/spi/orbutil/threadpool \
-    com/sun/corba/se/spi/presentation/rmi \
-    com/sun/corba/se/spi/protocol \
-    com/sun/corba/se/spi/resolver \
-    com/sun/corba/se/spi/servicecontext \
-    com/sun/corba/se/spi/transport \
+    com/sun/corba \
     com/sun/image/codec/jpeg \
-    com/sun/imageio/plugins/bmp \
-    com/sun/imageio/plugins/common \
-    com/sun/imageio/plugins/gif \
-    com/sun/imageio/plugins/jpeg \
-    com/sun/imageio/plugins/png \
-    com/sun/imageio/plugins/wbmp \
-    com/sun/imageio/spi \
-    com/sun/imageio/stream \
-    com/sun/istack/internal \
-    com/sun/istack/internal/localization \
-    com/sun/istack/internal/logging \
-    com/sun/java/browser/dom \
-    com/sun/java/browser/net \
+    com/sun/imageio \
+    com/sun/istack \
+    com/sun/java/browser \
     com/sun/java/swing \
-    com/sun/java/swing/plaf/gtk \
-    com/sun/java/swing/plaf/gtk/resources \
-    com/sun/java/swing/plaf/motif \
-    com/sun/java/swing/plaf/motif/resources \
-    com/sun/java/swing/plaf/nimbus \
-    com/sun/java/swing/plaf/windows \
-    com/sun/java/swing/plaf/windows/resources \
     com/sun/jmx/remote/protocol/iiop \
     com/sun/jndi/cosnaming \
     com/sun/jndi/toolkit/corba \
@@ -572,313 +184,40 @@
     com/sun/jndi/url/iiop \
     com/sun/jndi/url/iiopname \
     com/sun/media/sound \
-    com/sun/org/glassfish/external/amx \
-    com/sun/org/glassfish/external/arc \
-    com/sun/org/glassfish/external/probe/provider \
-    com/sun/org/glassfish/external/probe/provider/annotations \
-    com/sun/org/glassfish/external/statistics \
-    com/sun/org/glassfish/external/statistics/annotations \
-    com/sun/org/glassfish/external/statistics/impl \
-    com/sun/org/glassfish/gmbal \
-    com/sun/org/glassfish/gmbal/util \
-    com/sun/org/omg/CORBA \
-    com/sun/org/omg/CORBA/ValueDefPackage \
-    com/sun/org/omg/CORBA/portable \
-    com/sun/org/omg/SendingContext \
-    com/sun/org/omg/SendingContext/CodeBasePackage \
-    com/sun/servicetag \
-    com/sun/swing/internal/plaf/basic/resources \
-    com/sun/swing/internal/plaf/metal/resources \
-    com/sun/swing/internal/plaf/synth/resources \
+    com/sun/org/glassfish \
+    com/sun/org/omg \
+    com/sun/swing \
     com/sun/xml/internal/bind \
-    com/sun/xml/internal/bind/annotation \
-    com/sun/xml/internal/bind/api \
-    com/sun/xml/internal/bind/api/impl \
-    com/sun/xml/internal/bind/marshaller \
-    com/sun/xml/internal/bind/unmarshaller \
-    com/sun/xml/internal/bind/util \
-    com/sun/xml/internal/bind/v2 \
-    com/sun/xml/internal/bind/v2/bytecode \
-    com/sun/xml/internal/bind/v2/model/annotation \
-    com/sun/xml/internal/bind/v2/model/core \
-    com/sun/xml/internal/bind/v2/model/impl \
-    com/sun/xml/internal/bind/v2/model/nav \
-    com/sun/xml/internal/bind/v2/model/runtime \
-    com/sun/xml/internal/bind/v2/runtime \
-    com/sun/xml/internal/bind/v2/runtime/output \
-    com/sun/xml/internal/bind/v2/runtime/property \
-    com/sun/xml/internal/bind/v2/runtime/reflect \
-    com/sun/xml/internal/bind/v2/runtime/reflect/opt \
-    com/sun/xml/internal/bind/v2/runtime/unmarshaller \
-    com/sun/xml/internal/bind/v2/schemagen \
-    com/sun/xml/internal/bind/v2/schemagen/episode \
-    com/sun/xml/internal/bind/v2/schemagen/xmlschema \
-    com/sun/xml/internal/bind/v2/util \
     com/sun/xml/internal/fastinfoset \
-    com/sun/xml/internal/fastinfoset/algorithm \
-    com/sun/xml/internal/fastinfoset/alphabet \
-    com/sun/xml/internal/fastinfoset/dom \
-    com/sun/xml/internal/fastinfoset/org/apache/xerces/util \
-    com/sun/xml/internal/fastinfoset/sax \
-    com/sun/xml/internal/fastinfoset/stax \
-    com/sun/xml/internal/fastinfoset/stax/events \
-    com/sun/xml/internal/fastinfoset/stax/factory \
-    com/sun/xml/internal/fastinfoset/stax/util \
-    com/sun/xml/internal/fastinfoset/tools \
-    com/sun/xml/internal/fastinfoset/util \
-    com/sun/xml/internal/fastinfoset/vocab \
-    com/sun/xml/internal/messaging/saaj \
-    com/sun/xml/internal/messaging/saaj/client/p2p \
-    com/sun/xml/internal/messaging/saaj/packaging/mime \
-    com/sun/xml/internal/messaging/saaj/packaging/mime/internet \
-    com/sun/xml/internal/messaging/saaj/packaging/mime/util \
-    com/sun/xml/internal/messaging/saaj/soap \
-    com/sun/xml/internal/messaging/saaj/soap/dynamic \
-    com/sun/xml/internal/messaging/saaj/soap/impl \
-    com/sun/xml/internal/messaging/saaj/soap/name \
-    com/sun/xml/internal/messaging/saaj/soap/ver1_1 \
-    com/sun/xml/internal/messaging/saaj/soap/ver1_2 \
-    com/sun/xml/internal/messaging/saaj/util \
-    com/sun/xml/internal/messaging/saaj/util/transform \
-    com/sun/xml/internal/org/jvnet/fastinfoset \
-    com/sun/xml/internal/org/jvnet/fastinfoset/sax \
-    com/sun/xml/internal/org/jvnet/fastinfoset/sax/helpers \
-    com/sun/xml/internal/org/jvnet/fastinfoset/stax \
-    com/sun/xml/internal/org/jvnet/mimepull \
-    com/sun/xml/internal/org/jvnet/staxex \
-    com/sun/xml/internal/org/jvnet/ws \
-    com/sun/xml/internal/org/jvnet/ws/databinding \
-    com/sun/xml/internal/org/jvnet/ws/message \
+    com/sun/xml/internal/messaging \
+    com/sun/xml/internal/org \
     com/sun/xml/internal/stream/buffer \
-    com/sun/xml/internal/stream/buffer/sax \
-    com/sun/xml/internal/stream/buffer/stax \
     com/sun/xml/internal/txw2 \
-    com/sun/xml/internal/txw2/annotation \
-    com/sun/xml/internal/txw2/output \
-    com/sun/xml/internal/ws/addressing \
-    com/sun/xml/internal/ws/addressing/model \
-    com/sun/xml/internal/ws/addressing/policy \
-    com/sun/xml/internal/ws/addressing/v200408 \
-    com/sun/xml/internal/ws/api \
-    com/sun/xml/internal/ws/api/addressing \
-    com/sun/xml/internal/ws/api/client \
-    com/sun/xml/internal/ws/api/config/management \
-    com/sun/xml/internal/ws/api/config/management/policy \
-    com/sun/xml/internal/ws/api/databinding \
-    com/sun/xml/internal/ws/api/fastinfoset \
-    com/sun/xml/internal/ws/api/ha \
-    com/sun/xml/internal/ws/api/handler \
-    com/sun/xml/internal/ws/api/message \
-    com/sun/xml/internal/ws/api/message/saaj \
-    com/sun/xml/internal/ws/api/message/stream \
-    com/sun/xml/internal/ws/api/model \
-    com/sun/xml/internal/ws/api/model/soap \
-    com/sun/xml/internal/ws/api/model/wsdl \
-    com/sun/xml/internal/ws/api/pipe \
-    com/sun/xml/internal/ws/api/pipe/helper \
-    com/sun/xml/internal/ws/api/policy \
-    com/sun/xml/internal/ws/api/policy/subject \
-    com/sun/xml/internal/ws/api/server \
-    com/sun/xml/internal/ws/api/streaming \
-    com/sun/xml/internal/ws/api/wsdl/parser \
-    com/sun/xml/internal/ws/api/wsdl/writer \
-    com/sun/xml/internal/ws/binding \
-    com/sun/xml/internal/ws/client \
-    com/sun/xml/internal/ws/client/dispatch \
-    com/sun/xml/internal/ws/client/sei \
-    com/sun/xml/internal/ws/config/management/policy \
-    com/sun/xml/internal/ws/db \
-    com/sun/xml/internal/ws/db/glassfish \
-    com/sun/xml/internal/ws/developer \
-    com/sun/xml/internal/ws/encoding \
-    com/sun/xml/internal/ws/encoding/fastinfoset \
-    com/sun/xml/internal/ws/encoding/policy \
-    com/sun/xml/internal/ws/encoding/soap \
-    com/sun/xml/internal/ws/encoding/soap/streaming \
-    com/sun/xml/internal/ws/encoding/xml \
-    com/sun/xml/internal/ws/fault \
-    com/sun/xml/internal/ws/handler \
-    com/sun/xml/internal/ws/message \
-    com/sun/xml/internal/ws/message/jaxb \
-    com/sun/xml/internal/ws/message/saaj \
-    com/sun/xml/internal/ws/message/source \
-    com/sun/xml/internal/ws/message/stream \
-    com/sun/xml/internal/ws/model \
-    com/sun/xml/internal/ws/model/soap \
-    com/sun/xml/internal/ws/model/wsdl \
-    com/sun/xml/internal/ws/org/objectweb/asm \
-    com/sun/xml/internal/ws/policy \
-    com/sun/xml/internal/ws/policy/jaxws \
-    com/sun/xml/internal/ws/policy/jaxws/spi \
-    com/sun/xml/internal/ws/policy/privateutil \
-    com/sun/xml/internal/ws/policy/sourcemodel \
-    com/sun/xml/internal/ws/policy/sourcemodel/attach \
-    com/sun/xml/internal/ws/policy/sourcemodel/wspolicy \
-    com/sun/xml/internal/ws/policy/spi \
-    com/sun/xml/internal/ws/policy/subject \
-    com/sun/xml/internal/ws/protocol/soap \
-    com/sun/xml/internal/ws/protocol/xml \
-    com/sun/xml/internal/ws/resources \
-    com/sun/xml/internal/ws/server \
-    com/sun/xml/internal/ws/server/provider \
-    com/sun/xml/internal/ws/server/sei \
-    com/sun/xml/internal/ws/spi \
-    com/sun/xml/internal/ws/spi/db \
-    com/sun/xml/internal/ws/streaming \
-    com/sun/xml/internal/ws/transport \
-    com/sun/xml/internal/ws/transport/http \
-    com/sun/xml/internal/ws/transport/http/client \
-    com/sun/xml/internal/ws/transport/http/server \
-    com/sun/xml/internal/ws/util \
-    com/sun/xml/internal/ws/util/exception \
-    com/sun/xml/internal/ws/util/localization \
-    com/sun/xml/internal/ws/util/pipe \
-    com/sun/xml/internal/ws/util/xml \
-    com/sun/xml/internal/ws/wsdl \
-    com/sun/xml/internal/ws/wsdl/parser \
-    com/sun/xml/internal/ws/wsdl/writer \
-    com/sun/xml/internal/ws/wsdl/writer/document \
-    com/sun/xml/internal/ws/wsdl/writer/document/http \
-    com/sun/xml/internal/ws/wsdl/writer/document/soap \
-    com/sun/xml/internal/ws/wsdl/writer/document/soap12 \
-    com/sun/xml/internal/ws/wsdl/writer/document/xsd \
+    com/sun/xml/internal/ws \
     java/applet \
     java/awt \
-    java/awt/color \
-    java/awt/datatransfer \
-    java/awt/dnd \
-    java/awt/dnd/peer \
-    java/awt/event \
-    java/awt/font \
-    java/awt/geom \
-    java/awt/im \
-    java/awt/im/spi \
-    java/awt/image \
-    java/awt/image/renderable \
-    java/awt/peer \
-    java/awt/print \
     java/beans \
     javax/accessibility \
     javax/activation \
     javax/activity \
     javax/imageio \
-    javax/imageio/event \
-    javax/imageio/metadata \
-    javax/imageio/plugins/bmp \
-    javax/imageio/plugins/jpeg \
-    javax/imageio/spi \
-    javax/imageio/stream \
     javax/jws \
-    javax/jws/soap \
     javax/print \
-    javax/print/attribute \
-    javax/print/attribute/standard \
-    javax/print/event \
     javax/rmi/CORBA \
-    javax/sound/midi \
-    javax/sound/midi/spi \
-    javax/sound/sampled \
-    javax/sound/sampled/spi \
+    javax/sound \
     javax/swing \
-    javax/swing/border \
-    javax/swing/colorchooser \
-    javax/swing/event \
-    javax/swing/filechooser \
-    javax/swing/plaf \
-    javax/swing/plaf/basic \
-    javax/swing/plaf/metal \
-    javax/swing/plaf/multi \
-    javax/swing/plaf/nimbus \
-    javax/swing/plaf/synth \
-    javax/swing/table \
-    javax/swing/text \
-    javax/swing/text/html \
-    javax/swing/text/html/parser \
-    javax/swing/text/rtf \
-    javax/swing/tree \
-    javax/swing/undo \
     javax/xml/bind \
-    javax/xml/bind/annotation \
-    javax/xml/bind/annotation/adapters \
-    javax/xml/bind/attachment \
-    javax/xml/bind/helpers \
-    javax/xml/bind/util \
     javax/xml/soap \
     javax/xml/ws \
-    javax/xml/ws/handler \
-    javax/xml/ws/handler/soap \
-    javax/xml/ws/http \
-    javax/xml/ws/soap \
-    javax/xml/ws/spi \
-    javax/xml/ws/spi/http \
-    javax/xml/ws/wsaddressing \
-    org/omg/CORBA \
-    org/omg/CORBA/DynAnyPackage \
-    org/omg/CORBA/ORBPackage \
-    org/omg/CORBA/TypeCodePackage \
-    org/omg/CORBA/portable \
-    org/omg/CORBA_2_3 \
-    org/omg/CORBA_2_3/portable \
-    org/omg/CosNaming \
-    org/omg/CosNaming/NamingContextExtPackage \
-    org/omg/CosNaming/NamingContextPackage \
-    org/omg/Dynamic \
-    org/omg/DynamicAny \
-    org/omg/DynamicAny/DynAnyFactoryPackage \
-    org/omg/DynamicAny/DynAnyPackage \
-    org/omg/IOP \
-    org/omg/IOP/CodecFactoryPackage \
-    org/omg/IOP/CodecPackage \
-    org/omg/Messaging \
-    org/omg/PortableInterceptor \
-    org/omg/PortableInterceptor/ORBInitInfoPackage \
-    org/omg/PortableServer \
-    org/omg/PortableServer/CurrentPackage \
-    org/omg/PortableServer/POAManagerPackage \
-    org/omg/PortableServer/POAPackage \
-    org/omg/PortableServer/ServantLocatorPackage \
-    org/omg/PortableServer/portable \
-    org/omg/SendingContext \
-    org/omg/stub/java/rmi \
-    org/omg/stub/javax/management/remote/rmi \
+    org/omg \
     sun/applet \
-    sun/applet/resources \
     sun/audio \
     sun/awt \
-    sun/awt/X11 \
-    sun/awt/datatransfer \
-    sun/awt/dnd \
-    sun/awt/event \
-    sun/awt/geom \
-    sun/awt/im \
-    sun/awt/image \
-    sun/awt/image/codec \
-    sun/awt/motif \
-    sun/awt/resources \
-    sun/awt/shell \
-    sun/awt/util \
-    sun/awt/windows \
-    sun/beans/editors \
-    sun/beans/infos \
     sun/corba \
     sun/dc \
-    sun/dc/path \
-    sun/dc/pr \
     sun/font \
     sun/java2d \
-    sun/java2d/cmm \
-    sun/java2d/cmm/kcms \
-    sun/java2d/cmm/lcms \
-    sun/java2d/jules \
-    sun/java2d/loops \
-    sun/java2d/opengl \
-    sun/java2d/pipe \
-    sun/java2d/pipe/hw \
-    sun/java2d/pisces \
-    sun/java2d/x11 \
-    sun/java2d/xr \
     sun/net/ftp \
-    sun/net/ftp/impl \
     sun/net/smtp \
     sun/net/www/content/audio \
     sun/net/www/content/image \
@@ -887,27 +226,26 @@
     sun/net/www/protocol/mailto \
     sun/net/www/protocol/netdoc \
     sun/print \
-    sun/print/resources \
     sun/security/tools/policytool \
     sun/swing \
-    sun/swing/icon \
-    sun/swing/plaf \
-    sun/swing/plaf/synth \
-    sun/swing/plaf/windows \
-    sun/swing/table \
-    sun/swing/text \
-    sun/swing/text/html \
-    sun/tools/jar \
-    sun/tools/jar/resources
+    sun/tools/jar
 
-PROFILE_4_RTJAR_INCLUDE_TYPES := \
-    com/sun/xml/internal/ws/*.class \
+FULL_JRE_RTJAR_INCLUDE_TYPES := \
+    com/sun/security/auth/callback/DialogCallbackHandler$$1.class \
+    com/sun/security/auth/callback/DialogCallbackHandler$$2.class \
+    com/sun/security/auth/callback/DialogCallbackHandler$$Action.class \
+    com/sun/security/auth/callback/DialogCallbackHandler$$ConfirmationInfo.class \
+    com/sun/security/auth/callback/DialogCallbackHandler.class \
     javax/annotation/*.class \
+    javax/management/remote/rmi/_RMIConnectionImpl_Tie.class \
+    javax/management/remote/rmi/_RMIConnection_Stub.class \
+    javax/management/remote/rmi/_RMIServerImpl_Tie.class \
+    javax/management/remote/rmi/_RMIServer_Stub.class \
     javax/rmi/*.class
 
-PROFILE_4_RTJAR_EXCLUDE_TYPES := 
+FULL_JRE_RTJAR_EXCLUDE_TYPES := 
 
-PROFILE_4_INCLUDE_METAINF_SERVICES := \
+FULL_JRE_INCLUDE_METAINF_SERVICES := \
     META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin  \
     META-INF/services/com.sun.tools.internal.xjc.Plugin  \
     META-INF/services/javax.print.PrintServiceLookup  \
--- a/src/macosx/classes/apple/laf/JRSUIConstants.java	Mon Mar 25 16:49:25 2013 -0700
+++ b/src/macosx/classes/apple/laf/JRSUIConstants.java	Mon Apr 22 23:17:22 2013 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,27 +28,25 @@
 import java.lang.reflect.Field;
 import java.nio.ByteBuffer;
 
-import javax.tools.annotation.GenerateNativeHeader;
+import java.lang.annotation.Native;
 
 public final class JRSUIConstants {
     private static native long getPtrForConstant(final int constant);
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     static class Key {
-        protected static final int _value = 20;
+        @Native protected static final int _value = 20;
         public static final Key VALUE = new Key(_value);
 
-        protected static final int _thumbProportion = 24;
+        @Native protected static final int _thumbProportion = 24;
         public static final Key THUMB_PROPORTION = new Key(_thumbProportion);
 
-        protected static final int _thumbStart = 25;
+        @Native protected static final int _thumbStart = 25;
         public static final Key THUMB_START = new Key(_thumbStart);
 
-        protected static final int _windowTitleBarHeight = 28;
+        @Native protected static final int _windowTitleBarHeight = 28;
         public static final Key WINDOW_TITLE_BAR_HEIGHT = new Key(_windowTitleBarHeight);
 
-        protected static final int _animationFrame = 23;
+        @Native protected static final int _animationFrame = 23;
         public static final Key ANIMATION_FRAME = new Key(_animationFrame);
 
         final int constant;
@@ -70,10 +68,8 @@
         }
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     static class DoubleValue {
-        protected static final byte TYPE_CODE = 1;
+        @Native protected static final byte TYPE_CODE = 1;
 
         final double doubleValue;
 
@@ -139,684 +135,634 @@
         }
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class Size extends Property {
-        private static final byte SHIFT = 0;
-        private static final byte SIZE = 3;
-        private static final long MASK = (long)0x7 << SHIFT;
+        @Native private static final byte SHIFT = 0;
+        @Native private static final byte SIZE = 3;
+        @Native private static final long MASK = (long)0x7 << SHIFT;
         private static final PropertyEncoding size = new PropertyEncoding(MASK, SHIFT);
 
         Size(final byte value) {
             super(size, value);
         }
 
-        private static final byte _mini = 1;
+        @Native private static final byte _mini = 1;
         public static final Size MINI = new Size(_mini);
-        private static final byte _small = 2;
+        @Native private static final byte _small = 2;
         public static final Size SMALL = new Size(_small);
-        private static final byte _regular = 3;
+        @Native private static final byte _regular = 3;
         public static final Size REGULAR = new Size(_regular);
-        private static final byte _large = 4;
+        @Native private static final byte _large = 4;
         public static final Size LARGE = new Size(_large);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class State extends Property {
-        private static final byte SHIFT = Size.SHIFT + Size.SIZE;
-        private static final byte SIZE = 4;
-        private static final long MASK = (long)0xF << SHIFT;
+        @Native private static final byte SHIFT = Size.SHIFT + Size.SIZE;
+        @Native private static final byte SIZE = 4;
+        @Native private static final long MASK = (long)0xF << SHIFT;
         private static final PropertyEncoding state = new PropertyEncoding(MASK, SHIFT);
 
         State(final byte value) {
             super(state, value);
         }
 
-        private static final byte _active = 1;
+        @Native private static final byte _active = 1;
         public static final State ACTIVE = new State(_active);
-        private static final byte _inactive = 2;
+        @Native private static final byte _inactive = 2;
         public static final State INACTIVE = new State(_inactive);
-        private static final byte _disabled = 3;
+        @Native private static final byte _disabled = 3;
         public static final State DISABLED = new State(_disabled);
-        private static final byte _pressed = 4;
+        @Native private static final byte _pressed = 4;
         public static final State PRESSED = new State(_pressed);
-        private static final byte _pulsed = 5;
+        @Native private static final byte _pulsed = 5;
         public static final State PULSED = new State(_pulsed);
-        private static final byte _rollover = 6;
+        @Native private static final byte _rollover = 6;
         public static final State ROLLOVER = new State(_rollover);
-        private static final byte _drag = 7;
+        @Native private static final byte _drag = 7;
         public static final State DRAG = new State(_drag);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class Direction extends Property {
-        private static final byte SHIFT = State.SHIFT + State.SIZE;
-        private static final byte SIZE = 4;
-        private static final long MASK = (long)0xF << SHIFT;
+        @Native private static final byte SHIFT = State.SHIFT + State.SIZE;
+        @Native private static final byte SIZE = 4;
+        @Native private static final long MASK = (long)0xF << SHIFT;
         private static final PropertyEncoding direction = new PropertyEncoding(MASK, SHIFT);
 
         Direction(final byte value) {
             super(direction, value);
         }
 
-        private static final byte _none = 1;
+        @Native private static final byte _none = 1;
         public static final Direction NONE = new Direction(_none);
-        private static final byte _up = 2;
+        @Native private static final byte _up = 2;
         public static final Direction UP = new Direction(_up);
-        private static final byte _down = 3;
+        @Native private static final byte _down = 3;
         public static final Direction DOWN = new Direction(_down);
-        private static final byte _left = 4;
+        @Native private static final byte _left = 4;
         public static final Direction LEFT = new Direction(_left);
-        private static final byte _right = 5;
+        @Native private static final byte _right = 5;
         public static final Direction RIGHT = new Direction(_right);
-        private static final byte _north = 6;
+        @Native private static final byte _north = 6;
         public static final Direction NORTH = new Direction(_north);
-        private static final byte _south = 7;
+        @Native private static final byte _south = 7;
         public static final Direction SOUTH = new Direction(_south);
-        private static final byte _east = 8;
+        @Native private static final byte _east = 8;
         public static final Direction EAST = new Direction(_east);
-        private static final byte _west = 9;
+        @Native private static final byte _west = 9;
         public static final Direction WEST = new Direction(_west);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class Orientation extends Property {
-        private static final byte SHIFT = Direction.SHIFT + Direction.SIZE;
-        private static final byte SIZE = 2;
-        private static final long MASK = (long)0x3 << SHIFT;
+        @Native private static final byte SHIFT = Direction.SHIFT + Direction.SIZE;
+        @Native private static final byte SIZE = 2;
+        @Native private static final long MASK = (long)0x3 << SHIFT;
         private static final PropertyEncoding orientation = new PropertyEncoding(MASK, SHIFT);
 
         Orientation(final byte value) {
             super(orientation, value);
         }
 
-        private static final byte _horizontal = 1;
+        @Native private static final byte _horizontal = 1;
         public static final Orientation HORIZONTAL = new Orientation(_horizontal);
-        private static final byte _vertical = 2;
+        @Native private static final byte _vertical = 2;
         public static final Orientation VERTICAL = new Orientation(_vertical);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class AlignmentVertical extends Property {
-        private static final byte SHIFT = Orientation.SHIFT + Orientation.SIZE;
-        private static final byte SIZE = 2;
-        private static final long MASK = (long)0x3 << SHIFT;
+        @Native private static final byte SHIFT = Orientation.SHIFT + Orientation.SIZE;
+        @Native private static final byte SIZE = 2;
+        @Native private static final long MASK = (long)0x3 << SHIFT;
         private static final PropertyEncoding alignmentVertical = new PropertyEncoding(MASK, SHIFT);
 
         AlignmentVertical(final byte value){
             super(alignmentVertical, value);
         }
 
-        private static final byte _top = 1;
+        @Native private static final byte _top = 1;
         public static final AlignmentVertical TOP = new AlignmentVertical(_top);
-        private static final byte _center = 2;
+        @Native private static final byte _center = 2;
         public static final AlignmentVertical CENTER = new AlignmentVertical(_center);
-        private static final byte _bottom = 3;
+        @Native private static final byte _bottom = 3;
         public static final AlignmentVertical BOTTOM = new AlignmentVertical(_bottom);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class AlignmentHorizontal extends Property {
-        private static final byte SHIFT = AlignmentVertical.SHIFT + AlignmentVertical.SIZE;
-        private static final byte SIZE = 2;
-        private static final long MASK = (long)0x3 << SHIFT;
+        @Native private static final byte SHIFT = AlignmentVertical.SHIFT + AlignmentVertical.SIZE;
+        @Native private static final byte SIZE = 2;
+        @Native private static final long MASK = (long)0x3 << SHIFT;
         private static final PropertyEncoding alignmentHorizontal = new PropertyEncoding(MASK, SHIFT);
 
         AlignmentHorizontal(final byte value){
             super(alignmentHorizontal, value);
         }
 
-        private static final byte _left = 1;
+        @Native private static final byte _left = 1;
         public static final AlignmentHorizontal LEFT = new AlignmentHorizontal(_left);
-        private static final byte _center =  2;
+        @Native private static final byte _center =  2;
         public static final AlignmentHorizontal CENTER = new AlignmentHorizontal(_center);
-        private static final byte _right = 3;
+        @Native private static final byte _right = 3;
         public static final AlignmentHorizontal RIGHT = new AlignmentHorizontal(_right);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class SegmentPosition extends Property {
-        private static final byte SHIFT = AlignmentHorizontal.SHIFT + AlignmentHorizontal.SIZE;
-        private static final byte SIZE = 3;
-        private static final long MASK = (long)0x7 << SHIFT;
+        @Native private static final byte SHIFT = AlignmentHorizontal.SHIFT + AlignmentHorizontal.SIZE;
+        @Native private static final byte SIZE = 3;
+        @Native private static final long MASK = (long)0x7 << SHIFT;
         private static final PropertyEncoding segmentPosition = new PropertyEncoding(MASK, SHIFT);
 
         SegmentPosition(final byte value) {
             super(segmentPosition, value);
         }
 
-        private static final byte _first = 1;
+        @Native private static final byte _first = 1;
         public static final SegmentPosition FIRST = new SegmentPosition(_first);
-        private static final byte _middle = 2;
+        @Native private static final byte _middle = 2;
         public static final SegmentPosition MIDDLE = new SegmentPosition(_middle);
-        private static final byte _last = 3;
+        @Native private static final byte _last = 3;
         public static final SegmentPosition LAST = new SegmentPosition(_last);
-        private static final byte _only = 4;
+        @Native private static final byte _only = 4;
         public static final SegmentPosition ONLY = new SegmentPosition(_only);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class ScrollBarPart extends Property {
-        private static final byte SHIFT = SegmentPosition.SHIFT + SegmentPosition.SIZE;
-        private static final byte SIZE = 4;
-        private static final long MASK = (long)0xF << SHIFT;
+        @Native private static final byte SHIFT = SegmentPosition.SHIFT + SegmentPosition.SIZE;
+        @Native private static final byte SIZE = 4;
+        @Native private static final long MASK = (long)0xF << SHIFT;
         private static final PropertyEncoding scrollBarPart = new PropertyEncoding(MASK, SHIFT);
 
         ScrollBarPart(final byte value) {
             super(scrollBarPart, value);
         }
 
-        private static final byte _none = 1;
+        @Native private static final byte _none = 1;
         public static final ScrollBarPart NONE = new ScrollBarPart(_none);
-        private static final byte _thumb = 2;
+        @Native private static final byte _thumb = 2;
         public static final ScrollBarPart THUMB = new ScrollBarPart(_thumb);
-        private static final byte _arrowMin = 3;
+        @Native private static final byte _arrowMin = 3;
         public static final ScrollBarPart ARROW_MIN = new ScrollBarPart(_arrowMin);
-        private static final byte _arrowMax = 4;
+        @Native private static final byte _arrowMax = 4;
         public static final ScrollBarPart ARROW_MAX = new ScrollBarPart(_arrowMax);
-        private static final byte _arrowMaxInside = 5;
+        @Native private static final byte _arrowMaxInside = 5;
         public static final ScrollBarPart ARROW_MAX_INSIDE = new ScrollBarPart(_arrowMaxInside);
-        private static final byte _arrowMinInside = 6;
+        @Native private static final byte _arrowMinInside = 6;
         public static final ScrollBarPart ARROW_MIN_INSIDE = new ScrollBarPart(_arrowMinInside);
-        private static final byte _trackMin = 7;
+        @Native private static final byte _trackMin = 7;
         public static final ScrollBarPart TRACK_MIN = new ScrollBarPart(_trackMin);
-        private static final byte _trackMax = 8;
+        @Native private static final byte _trackMax = 8;
         public static final ScrollBarPart TRACK_MAX = new ScrollBarPart(_trackMax);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class Variant extends Property {
-        private static final byte SHIFT = ScrollBarPart.SHIFT + ScrollBarPart.SIZE;
-        private static final byte SIZE = 4;
-        private static final long MASK = (long)0xF << SHIFT;
+        @Native private static final byte SHIFT = ScrollBarPart.SHIFT + ScrollBarPart.SIZE;
+        @Native private static final byte SIZE = 4;
+        @Native private static final long MASK = (long)0xF << SHIFT;
         private static final PropertyEncoding variant = new PropertyEncoding(MASK, SHIFT);
 
         Variant(final byte value) {
             super(variant, value);
         }
 
-        private static final byte _menuGlyph = 1;
+        @Native private static final byte _menuGlyph = 1;
         public static final Variant MENU_GLYPH = new Variant(_menuGlyph);
-        private static final byte _menuPopup = Variant._menuGlyph + 1;
+        @Native private static final byte _menuPopup = Variant._menuGlyph + 1;
         public static final Variant MENU_POPUP = new Variant(_menuPopup);
-        private static final byte _menuPulldown = Variant._menuPopup + 1;
+        @Native private static final byte _menuPulldown = Variant._menuPopup + 1;
         public static final Variant MENU_PULLDOWN = new Variant(_menuPulldown);
-        private static final byte _menuHierarchical = Variant._menuPulldown + 1;
+        @Native private static final byte _menuHierarchical = Variant._menuPulldown + 1;
         public static final Variant MENU_HIERARCHICAL = new Variant(_menuHierarchical);
 
-        private static final byte _gradientListBackgroundEven = Variant._menuHierarchical + 1;
+        @Native private static final byte _gradientListBackgroundEven = Variant._menuHierarchical + 1;
         public static final Variant GRADIENT_LIST_BACKGROUND_EVEN = new Variant(_gradientListBackgroundEven);
-        private static final byte _gradientListBackgroundOdd = Variant._gradientListBackgroundEven + 1;
+        @Native private static final byte _gradientListBackgroundOdd = Variant._gradientListBackgroundEven + 1;
         public static final Variant GRADIENT_LIST_BACKGROUND_ODD = new Variant(_gradientListBackgroundOdd);
-        private static final byte _gradientSideBar = Variant._gradientListBackgroundOdd + 1;
+        @Native private static final byte _gradientSideBar = Variant._gradientListBackgroundOdd + 1;
         public static final Variant GRADIENT_SIDE_BAR = new Variant(_gradientSideBar);
-        private static final byte _gradientSideBarSelection = Variant._gradientSideBar + 1;
+        @Native private static final byte _gradientSideBarSelection = Variant._gradientSideBar + 1;
         public static final Variant GRADIENT_SIDE_BAR_SELECTION = new Variant(_gradientSideBarSelection);
-        private static final byte _gradientSideBarFocusedSelection = Variant._gradientSideBarSelection + 1;
+        @Native private static final byte _gradientSideBarFocusedSelection = Variant._gradientSideBarSelection + 1;
         public static final Variant GRADIENT_SIDE_BAR_FOCUSED_SELECTION = new Variant(_gradientSideBarFocusedSelection);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class WindowType extends Property {
-        private static final byte SHIFT = Variant.SHIFT + Variant.SIZE;
-        private static final byte SIZE = 2;
-        private static final long MASK = (long)0x3 << SHIFT;
+        @Native private static final byte SHIFT = Variant.SHIFT + Variant.SIZE;
+        @Native private static final byte SIZE = 2;
+        @Native private static final long MASK = (long)0x3 << SHIFT;
         private static final PropertyEncoding windowType = new PropertyEncoding(MASK, SHIFT);
 
         WindowType(final byte value){
             super(windowType, value);
         }
 
-        private static final byte _document = 1;
+        @Native private static final byte _document = 1;
         public static final WindowType DOCUMENT = new WindowType(_document);
-        private static final byte _utility = 2;
+        @Native private static final byte _utility = 2;
         public static final WindowType UTILITY = new WindowType(_utility);
-        private static final byte _titlelessUtility = 3;
+        @Native private static final byte _titlelessUtility = 3;
         public static final WindowType TITLELESS_UTILITY = new WindowType(_titlelessUtility);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class Focused extends Property {
-        private static final byte SHIFT = WindowType.SHIFT + WindowType.SIZE;
-        private static final byte SIZE = 1;
-        private static final long MASK = (long)0x1 << SHIFT;
+        @Native private static final byte SHIFT = WindowType.SHIFT + WindowType.SIZE;
+        @Native private static final byte SIZE = 1;
+        @Native private static final long MASK = (long)0x1 << SHIFT;
         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 
         Focused(final byte value) {
             super(focused, value);
         }
 
-        private static final byte _no = 0;
+        @Native private static final byte _no = 0;
         public static final Focused NO = new Focused(_no);
-        private static final byte _yes = 1;
+        @Native private static final byte _yes = 1;
         public static final Focused YES = new Focused(_yes);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class IndicatorOnly extends Property {
-        private static final byte SHIFT = Focused.SHIFT + Focused.SIZE;
-        private static final byte SIZE = 1;
-        private static final long MASK = (long)0x1 << SHIFT;
+        @Native private static final byte SHIFT = Focused.SHIFT + Focused.SIZE;
+        @Native private static final byte SIZE = 1;
+        @Native private static final long MASK = (long)0x1 << SHIFT;
         private static final PropertyEncoding indicatorOnly = new PropertyEncoding(MASK, SHIFT);
 
         IndicatorOnly(final byte value) {
             super(indicatorOnly, value);
         }
 
-        private static final byte _no = 0;
+        @Native private static final byte _no = 0;
         public static final IndicatorOnly NO = new IndicatorOnly(_no);
-        private static final byte _yes = 1;
+        @Native private static final byte _yes = 1;
         public static final IndicatorOnly YES = new IndicatorOnly(_yes);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class NoIndicator extends Property {
-        private static final byte SHIFT = IndicatorOnly.SHIFT + IndicatorOnly.SIZE;
-        private static final byte SIZE = 1;
-        private static final long MASK = (long)0x1 << SHIFT;
+        @Native private static final byte SHIFT = IndicatorOnly.SHIFT + IndicatorOnly.SIZE;
+        @Native private static final byte SIZE = 1;
+        @Native private static final long MASK = (long)0x1 << SHIFT;
         private static final PropertyEncoding noIndicator = new PropertyEncoding(MASK, SHIFT);
 
         NoIndicator(final byte value) {
             super(noIndicator, value);
         }
 
-        private static final byte _no = 0;
+        @Native private static final byte _no = 0;
         public static final NoIndicator NO = new NoIndicator(_no);
-        private static final byte _yes = 1;
+        @Native private static final byte _yes = 1;
         public static final NoIndicator YES = new NoIndicator(_yes);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class ArrowsOnly extends Property {
-        private static final byte SHIFT = NoIndicator.SHIFT + NoIndicator.SIZE;
-        private static final byte SIZE = 1;
-        private static final long MASK = (long)0x1 << SHIFT;
+        @Native private static final byte SHIFT = NoIndicator.SHIFT + NoIndicator.SIZE;
+        @Native private static final byte SIZE = 1;
+        @Native private static final long MASK = (long)0x1 << SHIFT;
         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 
         ArrowsOnly(final byte value) {
             super(focused, value);
         }
 
-        private static final byte _no = 0;
+        @Native private static final byte _no = 0;
         public static final ArrowsOnly NO = new ArrowsOnly(_no);
-        private static final byte _yes = 1;
+        @Native private static final byte _yes = 1;
         public static final ArrowsOnly YES = new ArrowsOnly(_yes);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class FrameOnly extends Property {
-        private static final byte SHIFT = ArrowsOnly.SHIFT + ArrowsOnly.SIZE;
-        private static final byte SIZE = 1;
-        private static final long MASK = (long)0x1 << SHIFT;
+        @Native private static final byte SHIFT = ArrowsOnly.SHIFT + ArrowsOnly.SIZE;
+        @Native private static final byte SIZE = 1;
+        @Native private static final long MASK = (long)0x1 << SHIFT;
         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 
         FrameOnly(final byte value) {
             super(focused, value);
         }
 
-        private static final byte _no = 0;
+        @Native private static final byte _no = 0;
         public static final FrameOnly NO = new FrameOnly(_no);
-        private static final byte _yes = 1;
+        @Native private static final byte _yes = 1;
         public static final FrameOnly YES = new FrameOnly(_yes);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class SegmentTrailingSeparator extends Property {
-        private static final byte SHIFT = FrameOnly.SHIFT + FrameOnly.SIZE;
-        private static final byte SIZE = 1;
-        private static final long MASK = (long)0x1 << SHIFT;
+        @Native private static final byte SHIFT = FrameOnly.SHIFT + FrameOnly.SIZE;
+        @Native private static final byte SIZE = 1;
+        @Native private static final long MASK = (long)0x1 << SHIFT;
         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 
         SegmentTrailingSeparator(final byte value) {
             super(focused, value);
         }
 
-        private static final byte _no = 0;
+        @Native private static final byte _no = 0;
         public static final SegmentTrailingSeparator NO = new SegmentTrailingSeparator(_no);
-        private static final byte _yes = 1;
+        @Native private static final byte _yes = 1;
         public static final SegmentTrailingSeparator YES = new SegmentTrailingSeparator(_yes);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class SegmentLeadingSeparator extends Property {
-        private static final byte SHIFT = SegmentTrailingSeparator.SHIFT + SegmentTrailingSeparator.SIZE;
-        private static final byte SIZE = 1;
-        private static final long MASK = (long)0x1 << SHIFT;
+        @Native private static final byte SHIFT = SegmentTrailingSeparator.SHIFT + SegmentTrailingSeparator.SIZE;
+        @Native private static final byte SIZE = 1;
+        @Native private static final long MASK = (long)0x1 << SHIFT;
         private static final PropertyEncoding leadingSeparator = new PropertyEncoding(MASK, SHIFT);
 
         SegmentLeadingSeparator(final byte value) {
             super(leadingSeparator, value);
         }
 
-        private static final byte _no = 0;
+        @Native private static final byte _no = 0;
         public static final SegmentLeadingSeparator NO = new SegmentLeadingSeparator(_no);
-        private static final byte _yes = 1;
+        @Native private static final byte _yes = 1;
         public static final SegmentLeadingSeparator YES = new SegmentLeadingSeparator(_yes);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class NothingToScroll extends Property {
-        private static final byte SHIFT = SegmentLeadingSeparator.SHIFT + SegmentLeadingSeparator.SIZE;
-        private static final byte SIZE = 1;
-        private static final long MASK = (long)0x1 << SHIFT;
+        @Native private static final byte SHIFT = SegmentLeadingSeparator.SHIFT + SegmentLeadingSeparator.SIZE;
+        @Native private static final byte SIZE = 1;
+        @Native private static final long MASK = (long)0x1 << SHIFT;
         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 
         NothingToScroll(final byte value) {
             super(focused, value);
         }
 
-        private static final byte _no = 0;
+        @Native private static final byte _no = 0;
         public static final NothingToScroll NO = new NothingToScroll(_no);
-        private static final byte _yes = 1;
+        @Native private static final byte _yes = 1;
         public static final NothingToScroll YES = new NothingToScroll(_yes);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class WindowTitleBarSeparator extends Property {
-        private static final byte SHIFT = NothingToScroll.SHIFT + NothingToScroll.SIZE;
-        private static final byte SIZE = 1;
-        private static final long MASK = (long)0x1 << SHIFT;
+        @Native private static final byte SHIFT = NothingToScroll.SHIFT + NothingToScroll.SIZE;
+        @Native private static final byte SIZE = 1;
+        @Native private static final long MASK = (long)0x1 << SHIFT;
         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 
         WindowTitleBarSeparator(final byte value) {
             super(focused, value);
         }
 
-        private static final byte _no = 0;
+        @Native private static final byte _no = 0;
         public static final WindowTitleBarSeparator NO = new WindowTitleBarSeparator(_no);
-        private static final byte _yes = 1;
+        @Native private static final byte _yes = 1;
         public static final WindowTitleBarSeparator YES = new WindowTitleBarSeparator(_yes);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class WindowClipCorners extends Property {
-        private static final byte SHIFT = WindowTitleBarSeparator.SHIFT + WindowTitleBarSeparator.SIZE;
-        private static final byte SIZE = 1;
-        private static final long MASK = (long)0x1 << SHIFT;
+        @Native private static final byte SHIFT = WindowTitleBarSeparator.SHIFT + WindowTitleBarSeparator.SIZE;
+        @Native private static final byte SIZE = 1;
+        @Native private static final long MASK = (long)0x1 << SHIFT;
         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 
         WindowClipCorners(final byte value) {
             super(focused, value);
         }
 
-        private static final byte _no = 0;
+        @Native private static final byte _no = 0;
         public static final WindowClipCorners NO = new WindowClipCorners(_no);
-        private static final byte _yes = 1;
+        @Native private static final byte _yes = 1;
         public static final WindowClipCorners YES = new WindowClipCorners(_yes);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class ShowArrows extends Property {
-        private static final byte SHIFT = WindowClipCorners.SHIFT + WindowClipCorners.SIZE;
-        private static final byte SIZE = 1;
-        private static final long MASK = (long)0x1 << SHIFT;
+        @Native private static final byte SHIFT = WindowClipCorners.SHIFT + WindowClipCorners.SIZE;
+        @Native private static final byte SIZE = 1;
+        @Native private static final long MASK = (long)0x1 << SHIFT;
         private static final PropertyEncoding showArrows = new PropertyEncoding(MASK, SHIFT);
 
         ShowArrows(final byte value) {
             super(showArrows, value);
         }
 
-        private static final byte _no = 0;
+        @Native private static final byte _no = 0;
         public static final ShowArrows NO = new ShowArrows(_no);
-        private static final byte _yes = 1;
+        @Native private static final byte _yes = 1;
         public static final ShowArrows YES = new ShowArrows(_yes);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class BooleanValue extends Property {
-        private static final byte SHIFT = ShowArrows.SHIFT + ShowArrows.SIZE;
-        private static final byte SIZE = 1;
-        private static final long MASK = (long)0x1 << SHIFT;
+        @Native private static final byte SHIFT = ShowArrows.SHIFT + ShowArrows.SIZE;
+        @Native private static final byte SIZE = 1;
+        @Native private static final long MASK = (long)0x1 << SHIFT;
         private static final PropertyEncoding booleanValue = new PropertyEncoding(MASK, SHIFT);
 
         BooleanValue(final byte value) {
             super(booleanValue, value);
         }
 
-        private static final byte _no = 0;
+        @Native private static final byte _no = 0;
         public static final BooleanValue NO = new BooleanValue(_no);
-        private static final byte _yes = 1;
+        @Native private static final byte _yes = 1;
         public static final BooleanValue YES = new BooleanValue(_yes);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class Animating extends Property {
-        private static final byte SHIFT = BooleanValue.SHIFT + BooleanValue.SIZE;
-        private static final byte SIZE = 1;
-        private static final long MASK = (long)0x1 << SHIFT;
+        @Native private static final byte SHIFT = BooleanValue.SHIFT + BooleanValue.SIZE;
+        @Native private static final byte SIZE = 1;
+        @Native private static final long MASK = (long)0x1 << SHIFT;
         private static final PropertyEncoding animating = new PropertyEncoding(MASK, SHIFT);
 
         Animating(final byte value) {
             super(animating, value);
         }
 
-        private static final byte _no = 0;
+        @Native private static final byte _no = 0;
         public static final Animating NO = new Animating(_no);
-        private static final byte _yes = 1;
+        @Native private static final byte _yes = 1;
         public static final Animating YES = new Animating(_yes);
     }
 
-    /* No native methods here, but the constants are needed in the supporting JNI code */
-    @GenerateNativeHeader
     public static class Widget extends Property {
-        private static final byte SHIFT = Animating.SHIFT + Animating.SIZE;
-        private static final byte SIZE = 7;
-        private static final long MASK = (long)0x7F << SHIFT;
+        @Native private static final byte SHIFT = Animating.SHIFT + Animating.SIZE;
+        @Native private static final byte SIZE = 7;
+        @Native private static final long MASK = (long)0x7F << SHIFT;
         private static final PropertyEncoding widget = new PropertyEncoding(MASK, SHIFT);
 
         Widget(final byte constant) {
             super(widget, constant);
         }
 
-        private static final byte _background = 1;
+        @Native private static final byte _background = 1;
         public static final Widget BACKGROUND = new Widget(_background);
 
-        private static final byte _buttonBevel = _background + 1;
+        @Native private static final byte _buttonBevel = _background + 1;
         public static final Widget BUTTON_BEVEL = new Widget(_buttonBevel);
-        private static final byte _buttonBevelInset = _buttonBevel + 1;
+        @Native private static final byte _buttonBevelInset = _buttonBevel + 1;
         public static final Widget BUTTON_BEVEL_INSET = new Widget(_buttonBevelInset);
-        private static final byte _buttonBevelRound = _buttonBevelInset + 1;
+        @Native private static final byte _buttonBevelRound = _buttonBevelInset + 1;
         public static final Widget BUTTON_BEVEL_ROUND = new Widget(_buttonBevelRound);
 
-        private static final byte _buttonCheckBox = _buttonBevelRound + 1;
+        @Native private static final byte _buttonCheckBox = _buttonBevelRound + 1;
         public static final Widget BUTTON_CHECK_BOX = new Widget(_buttonCheckBox);
 
-        private static final byte _buttonComboBox = _buttonCheckBox + 1;
+        @Native private static final byte _buttonComboBox = _buttonCheckBox + 1;
         public static final Widget BUTTON_COMBO_BOX = new Widget(_buttonComboBox);
-        private static final byte _buttonComboBoxInset = _buttonComboBox + 1;
+        @Native private static final byte _buttonComboBoxInset = _buttonComboBox + 1;
         public static final Widget BUTTON_COMBO_BOX_INSET = new Widget(_buttonComboBoxInset); // not hooked up in JRSUIConstants.m
 
-        private static final byte _buttonDisclosure = _buttonComboBoxInset + 1;
+        @Native private static final byte _buttonDisclosure = _buttonComboBoxInset + 1;
         public static final Widget BUTTON_DISCLOSURE = new Widget(_buttonDisclosure);
 
-        private static final byte _buttonListHeader = _buttonDisclosure + 1;
+        @Native private static final byte _buttonListHeader = _buttonDisclosure + 1;
         public static final Widget BUTTON_LIST_HEADER = new Widget(_buttonListHeader);
 
-        private static final byte _buttonLittleArrows = _buttonListHeader + 1;
+        @Native private static final byte _buttonLittleArrows = _buttonListHeader + 1;
         public static final Widget BUTTON_LITTLE_ARROWS = new Widget(_buttonLittleArrows);
 
-        private static final byte _buttonPopDown = _buttonLittleArrows + 1;
+        @Native private static final byte _buttonPopDown = _buttonLittleArrows + 1;
         public static final Widget BUTTON_POP_DOWN = new Widget(_buttonPopDown);
-        private static final byte _buttonPopDownInset = _buttonPopDown + 1;
+        @Native private static final byte _buttonPopDownInset = _buttonPopDown + 1;
         public static final Widget BUTTON_POP_DOWN_INSET = new Widget(_buttonPopDownInset);
-        private static final byte _buttonPopDownSquare = _buttonPopDownInset + 1;
+        @Native private static final byte _buttonPopDownSquare = _buttonPopDownInset + 1;
         public static final Widget BUTTON_POP_DOWN_SQUARE = new Widget(_buttonPopDownSquare);
 
-        private static final byte _buttonPopUp = _buttonPopDownSquare + 1;
+        @Native private static final byte _buttonPopUp = _buttonPopDownSquare + 1;
         public static final Widget BUTTON_POP_UP = new Widget(_buttonPopUp);
-        private static final byte _buttonPopUpInset = _buttonPopUp + 1;
+        @Native private static final byte _buttonPopUpInset = _buttonPopUp + 1;
         public static final Widget BUTTON_POP_UP_INSET = new Widget(_buttonPopUpInset);
-        private static final byte _buttonPopUpSquare = _buttonPopUpInset + 1;
+        @Native private static final byte _buttonPopUpSquare = _buttonPopUpInset + 1;
         public static final Widget BUTTON_POP_UP_SQUARE = new Widget(_buttonPopUpSquare);
 
-        private static final byte _buttonPush = _buttonPopUpSquare + 1;
+        @Native private static final byte _buttonPush = _buttonPopUpSquare + 1;
         public static final Widget BUTTON_PUSH = new Widget(_buttonPush);
-        private static final byte _buttonPushScope = _buttonPush + 1;
+        @Native private static final byte _buttonPushScope = _buttonPush + 1;
         public static final Widget BUTTON_PUSH_SCOPE = new Widget(_buttonPushScope);
-        private static final byte _buttonPushScope2 = _buttonPushScope + 1;
+        @Native private static final byte _buttonPushScope2 = _buttonPushScope + 1;
         public static final Widget BUTTON_PUSH_SCOPE2 = new Widget(_buttonPushScope2);
-        private static final byte _buttonPushTextured = _buttonPushScope2 + 1;
+        @Native private static final byte _buttonPushTextured = _buttonPushScope2 + 1;
         public static final Widget BUTTON_PUSH_TEXTURED = new Widget(_buttonPushTextured);
-        private static final byte _buttonPushInset = _buttonPushTextured + 1;
+        @Native private static final byte _buttonPushInset = _buttonPushTextured + 1;
         public static final Widget BUTTON_PUSH_INSET = new Widget(_buttonPushInset);
-        private static final byte _buttonPushInset2 = _buttonPushInset + 1;
+        @Native private static final byte _buttonPushInset2 = _buttonPushInset + 1;
         public static final Widget BUTTON_PUSH_INSET2 = new Widget(_buttonPushInset2);
 
-        private static final byte _buttonRadio = _buttonPushInset2 + 1;
+        @Native private static final byte _buttonRadio = _buttonPushInset2 + 1;
         public static final Widget BUTTON_RADIO = new Widget(_buttonRadio);
 
-        private static final byte _buttonRound = _buttonRadio + 1;
+        @Native private static final byte _buttonRound = _buttonRadio + 1;
         public static final Widget BUTTON_ROUND = new Widget(_buttonRound);
-        private static final byte _buttonRoundHelp = _buttonRound + 1;
+        @Native private static final byte _buttonRoundHelp = _buttonRound + 1;
         public static final Widget BUTTON_ROUND_HELP = new Widget(_buttonRoundHelp);
-        private static final byte _buttonRoundInset = _buttonRoundHelp + 1;
+        @Native private static final byte _buttonRoundInset = _buttonRoundHelp + 1;
         public static final Widget BUTTON_ROUND_INSET = new Widget(_buttonRoundInset);
-        private static final byte _buttonRoundInset2 =_buttonRoundInset + 1;
+        @Native private static final byte _buttonRoundInset2 =_buttonRoundInset + 1;
         public static final Widget BUTTON_ROUND_INSET2 = new Widget(_buttonRoundInset2);
 
-        private static final byte _buttonSearchFieldCancel = _buttonRoundInset2 + 1;
+        @Native private static final byte _buttonSearchFieldCancel = _buttonRoundInset2 + 1;
         public static final Widget BUTTON_SEARCH_FIELD_CANCEL = new Widget(_buttonSearchFieldCancel);
-        private static final byte _buttonSearchFieldFind = _buttonSearchFieldCancel + 1;
+        @Native private static final byte _buttonSearchFieldFind = _buttonSearchFieldCancel + 1;
         public static final Widget BUTTON_SEARCH_FIELD_FIND = new Widget(_buttonSearchFieldFind);
 
-        private static final byte _buttonSegmented = _buttonSearchFieldFind + 1;
+        @Native private static final byte _buttonSegmented = _buttonSearchFieldFind + 1;
         public static final Widget BUTTON_SEGMENTED = new Widget(_buttonSegmented);
-        private static final byte _buttonSegmentedInset = _buttonSegmented + 1;
+        @Native private static final byte _buttonSegmentedInset = _buttonSegmented + 1;
         public static final Widget BUTTON_SEGMENTED_INSET = new Widget(_buttonSegmentedInset);
-        private static final byte _buttonSegmentedInset2 = _buttonSegmentedInset + 1;
+        @Native private static final byte _buttonSegmentedInset2 = _buttonSegmentedInset + 1;
         public static final Widget BUTTON_SEGMENTED_INSET2 = new Widget(_buttonSegmentedI