--- old/make/common/Release.gmk 2013-01-18 01:38:48.201138833 -0500
+++ new/make/common/Release.gmk 2013-01-18 01:38:47.281087558 -0500
@@ -1056,6 +1056,7 @@
-processor com.sun.tools.javac.sym.CreateSymbols \
-Acom.sun.tools.javac.sym.Jar=$(RT_JAR) \
-Acom.sun.tools.javac.sym.Dest=$(OUTPUTDIR)/symbols/META-INF/sym/rt.jar \
+ -Acom.sun.tools.javac.sym.Profiles=$(JDK_TOPDIR)/makefiles/profile-rtjar-includes.txt \
$(CORE_PKGS) $(NON_CORE_PKGS) $(EXCLUDE_PROPWARN_PKGS) $(EXPORTED_PRIVATE_PKGS)
$(BOOT_JAR_CMD) $(CREATE_JAR_OPTS_NOMANIFEST) $(LIBDIR)/ct.sym \
-C $(OUTPUTDIR)/symbols META-INF $(BOOT_JAR_JFLAGS)
--- old/make/docs/Makefile 2013-01-18 01:38:51.013295555 -0500
+++ new/make/docs/Makefile 2013-01-18 01:38:50.105244949 -0500
@@ -1,4 +1,4 @@
-# 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
@@ -207,6 +207,7 @@
-quiet \
-use \
-keywords \
+ -Xprofilespath $(JDK_TOPDIR)/makefiles/profile-rtjar-includes.txt \
$(ADDITIONAL_JAVADOCFLAGS)
ifdef OPENJDK
--- old/make/java/version/Makefile 2013-01-18 01:38:53.841453169 -0500
+++ new/make/java/version/Makefile 2013-01-18 01:38:52.921401895 -0500
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2012, 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
@@ -40,6 +40,7 @@
-e 's/@@java_version@@/$(RELEASE)/g' \
-e 's/@@java_runtime_version@@/$(FULL_VERSION)/g' \
-e 's/@@java_runtime_name@@/$(RUNTIME_NAME)/g' \
+ -e 's/@@java_profile_name@@//g' \
$< > $@.temp
@$(MV) $@.temp $@
--- old/make/tools/src/build/tools/jarreorder/JarReorder.java 2013-01-18 01:38:56.713613235 -0500
+++ new/make/tools/src/build/tools/jarreorder/JarReorder.java 2013-01-18 01:38:55.805562629 -0500
@@ -162,8 +162,9 @@
for (int i = orderList.size() - 1; i >= 0; --i) {
String s = orderList.get(i);
if (allFilesExcluded.contains(s)) {
- System.err.println("Included order file " + s
- + " is also excluded, skipping.");
+ // Disable this warning until 8005688 is fixed
+ // System.err.println("Included order file " + s
+ // + " is also excluded, skipping.");
} else if (new File(s).exists()) {
allFiles.add(s);
} else {
--- old/makefiles/BuildJdk.gmk 2013-01-18 01:38:59.605774419 -0500
+++ new/makefiles/BuildJdk.gmk 2013-01-18 01:38:58.689723364 -0500
@@ -39,6 +39,12 @@
# Setup the java compilers for the JDK build.
include Setup.gmk
+# Include Profile information
+include ProfileNames.gmk
+
+# Include the corresponding custom file, if present.
+-include $(CUSTOM_MAKE_DIR)/BuildJdk.gmk
+
import: import-only
import-only:
# Import (corba jaxp jaxws langtools hotspot)
@@ -97,6 +103,13 @@
+$(MAKE) -f CompileLaunchers.gmk OVERLAY_IMAGES=true
+$(MAKE) -f Images.gmk overlay-images
+# Create Compact Profile images
+$(ALL_PROFILES):
+ +$(MAKE) PROFILE=$@ -f CreateJars.gmk
+ +$(MAKE) PROFILE=$@ JRE_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/j2re-$(word $(call profile_number,$@),$(PROFILE_NAMES))-image -f Images.gmk profile-image
+
+profiles: $(ALL_PROFILES)
+
sign-jars:
+$(MAKE) -f SignJars.gmk
@@ -121,3 +134,4 @@
.PHONY: import gensrc gendata classes libs launchers genclasses
.PHONY: import-only gensrc-only gendata-only classes-only libs-only launchers-only genclasses-only
.PHONY: all jdk demos images overlay-images bundles install
+.PHONY: profiles $(ALL_PROFILES)
--- old/makefiles/CreateJars.gmk 2013-01-18 01:39:02.489935147 -0500
+++ new/makefiles/CreateJars.gmk 2013-01-18 01:39:01.585884768 -0500
@@ -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
@@ -35,16 +35,19 @@
include Tools.gmk
+include Profiles.gmk
+
#
# This makefile...so that altering will trigger rebuilding include/exclude-lists => jars
#
MAKEFILE=$(JDK_TOPDIR)/makefiles/CreateJars.gmk
+#
+# And similarly for the Profiles
+PROFILE_MAKEFILES=$(JDK_TOPDIR)/makefiles/Profiles.gmk $(JDK_TOPDIR)/makefiles/profile-rtjar-includes.txt
MAINMANIFEST := $(JDK_TOPDIR)/make/tools/manifest.mf
BEANMANIFEST := $(JDK_TOPDIR)/make/javax/swing/beaninfo/manifest
-JARS:=
-
$(eval $(call MakeDir,$(IMAGES_OUTPUTDIR)/lib))
##########################################################################################
@@ -57,7 +60,6 @@
JAR:=$(IMAGES_OUTPUTDIR)/lib/jconsole.jar,\
SKIP_METAINF:=true))
-JARS+=$(IMAGES_OUTPUTDIR)/lib/jconsole.jar
##########################################################################################
@@ -68,7 +70,6 @@
JAR:=$(IMAGES_OUTPUTDIR)/lib/ext/dnsns.jar,\
SKIP_METAINF:=true))
-JARS+=$(IMAGES_OUTPUTDIR)/lib/ext/dnsns.jar
##########################################################################################
@@ -120,15 +121,20 @@
JAR:=$(IMAGES_OUTPUTDIR)/lib/ext/localedata.jar,\
SKIP_METAINF:=true))
-JARS+=$(IMAGES_OUTPUTDIR)/lib/ext/localedata.jar
-
##########################################################################################
-# rt.jar and resources.jar are being built in the same way as in the old build. They require
-# the files to be in a certain order and converting that is not easy and will not be needed
-# in jigsaw anyway.
+#
+# Different variants of rt.jar are built based on the current profile. The output
+# directory is augmented with the profile name so that the final jar file and all the
+# intermediary list files will be in directory. This has the form lib$PROFILE rather than
+# lib/$PROFILE so that it won't get copied as part of the image generation process.
+# Each profile customizes the RT_JAR_EXCLUDES variable.
+#
+##########################################################################################
-# Exclude list for rt.jar and resources.jar
-RT_JAR_EXCLUDES := \
+# Full JRE exclude list for rt.jar and resources.jar
+# This value should exclude types destined for jars other than rt.jar and resources.jar.
+# When building a Profile this value augments the profile specific exclusions
+RT_JAR_EXCLUDES += \
com/oracle/security \
com/sun/codemodel \
com/sun/crypto/provider \
@@ -250,24 +256,9 @@
sun/tools/util \
sun/util/cldr/CLDRLocaleDataMetaInfo.class \
sun/util/resources/cldr \
- $(LOCALEDATA_INCLUDES)
-
-# These files should never be put into rt.jar
-# but due to a misstake...some are put there if embedded
-#
-ifneq ($(JAVASE_EMBEDDED), true)
-# normal (correct) case
-RT_JAR_EXCLUDES += \
+ $(LOCALEDATA_INCLUDES) \
com/oracle/jrockit/jfr \
oracle/jrockit/jfr
-else
-# embedded (broken) case
-RT_JAR_EXCLUDES += \
- oracle/jrockit/jfr/parser \
- oracle/jrockit/jfr/tools \
- oracle/jrockit/jfr/NativeOptions.class \
- oracle/jrockit/jfr/RepositoryChunkHandler.class
-endif
ifeq ($(OPENJDK_TARGET_OS), macosx)
RT_JAR_EXCLUDES += com/sun/nio/sctp \
@@ -278,8 +269,8 @@
ALL_FILES_IN_CLASSES := $(call not-containing,_the.,$(filter-out %javac_state,\
$(call CacheFind,$(JDK_OUTPUTDIR)/classes)))
-RT_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib/_the.rt.jar_manifest
-RESOURCE_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib/_the.resources.jar_manifest
+RT_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar_manifest
+RESOURCE_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar_manifest
$(RT_JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST)
$(MKDIR) -p $(@D)
@@ -299,7 +290,7 @@
$(MAINMANIFEST) >> $@.tmp
$(MV) $@.tmp $@
-$(IMAGES_OUTPUTDIR)/lib/_the.jars.exclude: $(MAKEFILE)
+$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.exclude: $(MAKEFILE) $(PROFILE_MAKEFILES)
$(MKDIR) -p $(@D)
$(RM) $@ $@.tmp
$(call ListPathsSafely,RT_JAR_EXCLUDES,\n, >> $@.tmp)
@@ -312,55 +303,115 @@
$(TOOL_ADDJSUM) $< $@.tmp
$(MV) $@.tmp $@
-$(IMAGES_OUTPUTDIR)/lib/_the.jars.contents: $(BUILD_TOOLS) $(IMAGES_OUTPUTDIR)/lib/_the.jars.exclude \
+$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents: $(BUILD_TOOLS) $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.exclude \
$(ALL_FILES_IN_CLASSES) $(IMAGES_OUTPUTDIR)/lib/classlist
$(MKDIR) -p $(@D)
$(RM) $@ $@.tmp
($(CD) $(JDK_OUTPUTDIR)/classes && \
$(TOOL_JARREORDER) \
- -o $@.tmp $(IMAGES_OUTPUTDIR)/lib/classlist $(IMAGES_OUTPUTDIR)/lib/_the.jars.exclude . )
+ -o $@.tmp $(IMAGES_OUTPUTDIR)/lib/classlist $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.exclude . )
$(MV) $@.tmp $@
-$(IMAGES_OUTPUTDIR)/lib/_the.rt.jar.contents: $(IMAGES_OUTPUTDIR)/lib/_the.jars.contents
+$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents
$(MKDIR) -p $(@D)
$(RM) $@ $@.tmp
- $(GREP) -e '\.class$$' $(IMAGES_OUTPUTDIR)/lib/_the.jars.contents > $@.tmp
+ $(GREP) -e '\.class$$' $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents > $@.tmp
+ifneq ($(PROFILE),)
+# # Add back classes from excluded packages (fixing the $ substitution in the process)
+ for type in $(subst \$$,\, $(RT_JAR_INCLUDE_TYPES)) ; do \
+ $(ECHO) $$type >> $@.tmp ; \
+ done
+endif
$(MV) $@.tmp $@
-$(IMAGES_OUTPUTDIR)/lib/_the.resources.jar.contents: $(IMAGES_OUTPUTDIR)/lib/_the.jars.contents
+$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents
$(MKDIR) -p $(@D)
$(RM) $@ $@.tmp
$(GREP) -v -e '\.class$$' \
-e '/_the\.*' -e '^_the\.*' -e '\\_the\.*' -e 'javac_state' \
- $(IMAGES_OUTPUTDIR)/lib/_the.jars.contents > $@.tmp
+ $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.jars.contents > $@.tmp
+ifneq ($(PROFILE),)
+# # Strip out all META-INF/services/ entries
+ $(GREP) -v -e 'META-INF/services/' $@.tmp > $@.tmp2
+# # Add back the required services
+# # FIXME: On Solaris if PROFILE_INCLUDE_METAINF_SERVICES is not defined
+# # we get a syntax error from sh. That doesn't happen on linux
+ for service in $(PROFILE_INCLUDE_METAINF_SERVICES) ; do \
+ $(ECHO) $$service >> $@.tmp2; \
+ done
+ $(MV) $@.tmp2 $@.tmp
+endif
$(MV) $@.tmp $@
+# This is a hack but I don't know how to make this fit into the existing scheme
+$(PROFILE_VERSION_CLASS_TARGETS) : $(PROFILE_VERSION_JAVA_TARGETS)
+ @$(JAVAC) -d $(@D)/../../ $(@D)/$(VERSION_JAVA_FILE)
+
+
+# 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.
+BEANLESS_CLASSES = $(IMAGES_OUTPUTDIR)/beanless
+
+$(BEANLESS_CLASSES)/%: $(JDK_OUTPUTDIR)/classes/%
+ $(MKDIR) -p $(@D)
+ $(TOOL_REMOVEMETHODS) $< $@ addPropertyChangeListener removePropertyChangeListener
+
+CLASSES_TO_DEBEAN = \
+ java/util/logging/LogManager.class \
+ com/sun/java/util/jar/pack/PackerImpl.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)
+endif
+
+
RT_JAR_CREATE_OPTIONS := c0fm
+RT_JAR_UPDATE_OPTIONS := u0f
ifeq ($(COMPRESS_JARS), true)
RT_JAR_CREATE_OPTIONS := cfm
+ RT_JAR_UPDATE_OPTIONS := uf
endif
-$(IMAGES_OUTPUTDIR)/lib/rt.jar: $(IMAGES_OUTPUTDIR)/lib/_the.rt.jar.contents $(RT_JAR_MANIFEST_FILE)
- $(ECHO) Creating rt.jar
+# This defines a target-specific variables to make the shell logic easier to see.
+# We need to find the Version.class file for the profile currently being built
+$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/rt.jar: \
+ CLASS_FILE = $(if $(PROFILE),$(strip $(foreach class,$(PROFILE_VERSION_CLASS_TARGETS),$(if $(findstring $(PROFILE),$(class)),$(class)))), NO_SUCH_FILE)
+# This is the real target
+$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/rt.jar: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents $(RT_JAR_MANIFEST_FILE) $(PROFILE_VERSION_CLASS_TARGETS) $(BEANLESS_CLASSES_TARGETS)
+ $(ECHO) Creating rt.jar $(PROFILE) Compressed=$(COMPRESS_JARS)
$(MKDIR) -p $(@D)
$(RM) $@ $@.tmp
$(CD) $(JDK_OUTPUTDIR)/classes && \
$(JAR) $(RT_JAR_CREATE_OPTIONS) $@.tmp $(RT_JAR_MANIFEST_FILE) \
- @$(IMAGES_OUTPUTDIR)/lib/_the.rt.jar.contents
+ @$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.rt.jar.contents && \
+ if [ -f $(CLASS_FILE) ]; then \
+ $(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/* ; \
+ fi
$(MV) $@.tmp $@
-$(IMAGES_OUTPUTDIR)/lib/resources.jar: $(IMAGES_OUTPUTDIR)/lib/_the.resources.jar.contents \
+$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/resources.jar: $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents \
$(RESOURCE_JAR_MANIFEST_FILE)
$(ECHO) Creating resources.jar
$(MKDIR) -p $(@D)
$(RM) $@ $@.tmp
$(CD) $(JDK_OUTPUTDIR)/classes && \
$(JAR) $(RT_JAR_CREATE_OPTIONS) $@.tmp $(RESOURCE_JAR_MANIFEST_FILE) \
- @$(IMAGES_OUTPUTDIR)/lib/_the.resources.jar.contents
+ @$(IMAGES_OUTPUTDIR)/lib$(PROFILE)/_the.resources.jar.contents
$(MV) $@.tmp $@
-JARS+=$(IMAGES_OUTPUTDIR)/lib/rt.jar $(IMAGES_OUTPUTDIR)/lib/resources.jar
-
##########################################################################################
ifneq ($(OPENJDK_TARGET_OS), windows)
@@ -385,8 +436,6 @@
SKIP_METAINF := true, \
CHECK_COMPRESS_JAR:=true))
-JARS+=$(IMAGES_OUTPUTDIR)/lib/charsets.jar
-
##########################################################################################
ifndef OPENJDK
@@ -400,7 +449,6 @@
MANIFEST:=$(MAINMANIFEST), \
CHECK_COMPRESS_JAR:=true))
- JARS+=$(IMAGES_OUTPUTDIR)/lib/jfr.jar
endif
endif
@@ -417,8 +465,6 @@
MANIFEST:=$(MAINMANIFEST), \
CHECK_COMPRESS_JAR:=true))
-JARS+=$(IMAGES_OUTPUTDIR)/lib/jsse.jar
-
##########################################################################################
# Create manifest for security jars
@@ -438,7 +484,8 @@
##########################################################################################
# For all security jars, always build the jar, but for closed, install the prebuilt signed
-# version instead of the newly built jar. For open, signing is not needed. See SignJars.gmk
+# version instead of the newly built jar. Unsigned jars are treated as intermediate targets
+# and explicitly added to the JARS list. For open, signing is not needed. See SignJars.gmk
# for more information.
SUNPKCS11_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunpkcs11.jar
@@ -464,7 +511,7 @@
$(install-file)
endif
-JARS += $(SUNPKCS11_JAR_DST) $(SUNPKCS11_JAR_UNSIGNED)
+JARS += $(SUNPKCS11_JAR_UNSIGNED)
##########################################################################################
@@ -491,7 +538,7 @@
$(install-file)
endif
-JARS += $(SUNEC_JAR_DST) $(SUNEC_JAR_UNSIGNED)
+JARS += $(SUNEC_JAR_UNSIGNED)
##########################################################################################
@@ -504,8 +551,6 @@
JAR:=$(IMAGES_OUTPUTDIR)/lib/dt.jar,\
SKIP_METAINF:=true))
-JARS+=$(IMAGES_OUTPUTDIR)/lib/dt.jar
-
##########################################################################################
SUNJCE_PROVIDER_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunjce_provider.jar
@@ -531,7 +576,7 @@
$(install-file)
endif
-JARS += $(SUNJCE_PROVIDER_JAR_DST) $(SUNJCE_PROVIDER_JAR_UNSIGNED)
+JARS += $(SUNJCE_PROVIDER_JAR_UNSIGNED)
##########################################################################################
@@ -558,7 +603,7 @@
$(install-file)
endif
-JARS += $(JCE_JAR_DST) $(JCE_JAR_UNSIGNED)
+JARS += $(JCE_JAR_UNSIGNED)
##########################################################################################
@@ -596,7 +641,7 @@
$(install-file)
endif
-JARS += $(US_EXPORT_POLICY_JAR_DST) $(US_EXPORT_POLICY_JAR_UNSIGNED)
+JARS += $(US_EXPORT_POLICY_JAR_UNSIGNED)
##########################################################################################
@@ -639,7 +684,7 @@
$(install-file)
endif
-JARS += $(LOCAL_POLICY_JAR_DST) $(LOCAL_POLICY_JAR_UNSIGNED)
+JARS += $(LOCAL_POLICY_JAR_UNSIGNED)
##########################################################################################
@@ -668,7 +713,7 @@
$(install-file)
endif
-JARS += $(SUNMSCAPI_JAR_DST) $(SUNMSCAPI_JAR_UNSIGNED)
+JARS += $(SUNMSCAPI_JAR_UNSIGNED)
endif
@@ -695,7 +740,7 @@
@$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt OracleUcrypto provider..."
$(install-file)
-JARS += $(UCRYPTO_JAR_DST) $(UCRYPTO_JAR_UNSIGNED)
+JARS += $(UCRYPTO_JAR_UNSIGNED)
endif
endif
@@ -718,8 +763,6 @@
EXTRA_MANIFEST_ATTR:=CLDR-Version: $(CLDRVERSION),\
SKIP_METAINF:=true))
-JARS += $(CLDRDATA_JAR_DST)
-
##########################################################################################
TOOLS_JAR_INCLUDES := \
@@ -793,7 +836,6 @@
SKIP_METAINF:=true, \
CHECK_COMPRESS_JAR:=true))
-JARS+=$(IMAGES_OUTPUTDIR)/lib/tools.jar
##########################################################################################
@@ -834,6 +876,7 @@
-processor com.sun.tools.javac.sym.CreateSymbols \
-Acom.sun.tools.javac.sym.Jar=$(IMAGES_OUTPUTDIR)/lib/rt.jar \
-Acom.sun.tools.javac.sym.Dest=$(IMAGES_OUTPUTDIR)/symbols/META-INF/sym/rt.jar \
+ -Acom.sun.tools.javac.sym.Profiles=profile-rtjar-includes.txt \
$(CORE_PKGS) $(NON_CORE_PKGS) $(EXCLUDE_PROPWARN_PKGS) $(EXPORTED_PRIVATE_PKGS)
$(TOUCH) $@
@@ -844,7 +887,6 @@
JAR:=$(IMAGES_OUTPUTDIR)/lib/ct.sym, \
CHECK_COMPRESS_JAR:=true))
-JARS+=$(IMAGES_OUTPUTDIR)/lib/ct.sym
##########################################################################################
@@ -930,8 +972,6 @@
ZIP:=$(IMAGES_OUTPUTDIR)/src.zip,\
EXTRA_DEPS:=$(LAUNCHER_ZIP_SRC)))
-JARS+=$(IMAGES_OUTPUTDIR)/src.zip
-
##########################################################################################
#
@@ -941,15 +981,11 @@
$(IMAGES_OUTPUTDIR)/lib/management-agent.jar : $(JDK_TOPDIR)/src/share/classes/sun/management/manifest
$(JAR) cfm $@ $<
-JARS += $(IMAGES_OUTPUTDIR)/lib/management-agent.jar
-
##########################################################################################
$(IMAGES_OUTPUTDIR)/lib/ext/zipfs.jar : $(JDK_OUTPUTDIR)/demo/nio/zipfs/zipfs.jar
$(install-file)
-JARS += $(IMAGES_OUTPUTDIR)/lib/ext/zipfs.jar
-
##########################################################################################
ifeq ($(OPENJDK_TARGET_OS),macosx)
@@ -957,8 +993,6 @@
SRCS:=$(JDK_OUTPUTDIR)/jobjc_classes,\
JAR:=$(IMAGES_OUTPUTDIR)/lib/JObjC.jar, \
JARINDEX:=true))
-
- JARS += $(IMAGES_OUTPUTDIR)/lib/JObjC.jar
endif
##########################################################################################
@@ -968,7 +1002,6 @@
SRCS:=$(JDK_OUTPUTDIR)/altclasses_classes,\
JAR:=$(IMAGES_OUTPUTDIR)/lib/alt-rt.jar))
- JARS += $(IMAGES_OUTPUTDIR)/lib/alt-rt.jar
endif
##########################################################################################
@@ -979,8 +1012,6 @@
$(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar: $(JDK_OUTPUTDIR)/lib/sa-jdi.jar
$(install-file)
-JARS += $(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar
-
##########################################################################################
#
# sec-bin.zip is used by builds where the corresponding sources are not available
--- old/makefiles/GensrcMisc.gmk 2013-01-18 01:39:05.390096775 -0500
+++ new/makefiles/GensrcMisc.gmk 2013-01-18 01:39:04.474045723 -0500
@@ -23,24 +23,29 @@
# questions.
#
+include ProfileNames.gmk
+
##########################################################################################
# Install the launcher name, release version string, full version
# string and the runtime name into the Version.java file.
# To be printed by java -version
-$(JDK_OUTPUTDIR)/gensrc/sun/misc/Version.java: \
- $(JDK_TOPDIR)/src/share/classes/sun/misc/Version.java.template
+$(JDK_OUTPUTDIR)/gensrc/sun/misc/Version.java \
+$(PROFILE_VERSION_JAVA_TARGETS): \
+ $(JDK_TOPDIR)/src/share/classes/sun/misc/Version.java.template
$(MKDIR) -p $(@D)
$(RM) $@ $@.tmp
- $(ECHO) $(LOG_INFO) Generating sun/misc/Version.java
+ $(ECHO) Generating sun/misc/Version.java $(call profile_version_name, $@)
$(SED) -e 's/@@launcher_name@@/$(LAUNCHER_NAME)/g' \
-e 's/@@java_version@@/$(RELEASE)/g' \
-e 's/@@java_runtime_version@@/$(FULL_VERSION)/g' \
-e 's/@@java_runtime_name@@/$(RUNTIME_NAME)/g' \
+ -e 's/@@java_profile_name@@/$(call profile_version_name, $@)/g' \
$< > $@.tmp
$(MV) $@.tmp $@
-GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc/sun/misc/Version.java
+GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc/sun/misc/Version.java \
+ $(PROFILE_VERSION_JAVA_TARGETS)
##########################################################################################
# Version file for jconsole
--- old/makefiles/GensrcX11Wrappers.gmk 2013-01-18 01:39:08.342261300 -0500
+++ new/makefiles/GensrcX11Wrappers.gmk 2013-01-18 01:39:07.346205788 -0500
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 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
@@ -64,8 +64,6 @@
$(MKDIR) -p $(@D)
$(RM) $@ $@.tmp
(cd $(@D) && $(BUILD_CC) -m$* -o $@.tmp $< \
- $(X_CFLAGS) \
- $(X_LIBS) \
-I$(JDK_OUTPUTDIR)/include \
-I$(JDK_TOPDIR)/src/share/javavm/export \
-I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/javavm/export \
--- old/makefiles/Images.gmk 2013-01-18 01:39:11.298426046 -0500
+++ new/makefiles/Images.gmk 2013-01-18 01:39:10.358373655 -0500
@@ -41,6 +41,8 @@
include Tools.gmk
+include Profiles.gmk
+
# Note: This double-colon rule is intentional, to support
# custom make file integration.
images:: jre-image jdk-image
@@ -84,7 +86,7 @@
################################################################################
#
# Variable prefixes explained:
-# JRE_ refers to files in the j2re-image.
+# JRE_ refers to files in the j2re-*-image.
# JDK_ refers to files in the j2sdk-image outside of the jre subdir.
# JDKJRE_ refers to files in the j2sdk-image inside the jre subdir.
#
@@ -92,7 +94,8 @@
################################################################################
# /bin dir
-NOT_JRE_BIN_FILES := \
+ifeq ($(PROFILE),)
+ NOT_JRE_BIN_FILES := \
appletviewer$(EXE_SUFFIX) \
extcheck$(EXE_SUFFIX) \
idlj$(EXE_SUFFIX) \
@@ -125,6 +128,7 @@
schemagen$(EXE_SUFFIX) \
jsadebugd$(EXE_SUFFIX) \
jhat$(EXE_SUFFIX)
+endif
WINDOWS_JDK_BIN_FILES = \
$(EXE_SUFFIX) \
@@ -196,7 +200,8 @@
$(SALIB_NAME)
endif
-NOT_JRE_LIB_FILES := \
+ifeq ($(PROFILE),)
+ NOT_JRE_LIB_FILES := \
tools.jar \
jconsole.jar \
sa-jdi.jar \
@@ -205,8 +210,9 @@
ir.idl \
ct.sym
-ifeq ($(OPENJDK_TARGET_OS), windows)
- NOT_JRE_LIB_FILES += jawt.lib jvm.lib
+ ifeq ($(OPENJDK_TARGET_OS), windows)
+ NOT_JRE_LIB_FILES += jawt.lib jvm.lib
+ endif
endif
JDK_LIB_FILES := $(NOT_JRE_LIB_FILES)
@@ -607,6 +613,9 @@
$(JRE_INFO_FILE): $(OUTPUT_ROOT)/spec.gmk $(OUTPUT_ROOT)/source_tips
$(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@)
$(call create-info-file)
+ifneq ($(PROFILE),)
+ $(call info-file-item, "JAVA_PROFILE", "$(call profile_name, $(call profile_number, $(PROFILE)))")
+endif
$(JDK_INFO_FILE): $(OUTPUT_ROOT)/spec.gmk $(OUTPUT_ROOT)/source_tips
$(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@)
@@ -648,7 +657,7 @@
EXEC_LIST_OVERLAY:=$(filter $(OVERLAY_FILTER),$(EXEC_LIST_BIN)) $(EXEC_LIST_LIB)
# Filter out non JRE files and convert to unique touch files to depend on
- JRE_STRIP_LIST:=$(patsubst $(JDK_OUTPUTDIR)/%,$(IMAGES_OUTPUTDIR)/_strip_jre/%.stripped,\
+ JRE_STRIP_LIST:=$(patsubst $(JDK_OUTPUTDIR)/%,$(IMAGES_OUTPUTDIR)/_strip_jre$(PROFILE)/%.stripped,\
$(filter-out $(addprefix %,$(NOT_JRE_BIN_FILES) $(NOT_JRE_LIB_FILES) $(JDKJRE_LIB_FILES)),\
$(EXEC_LIST)))
@@ -688,7 +697,7 @@
endef
# Setup a rule for stripping files based on touch files
- $(IMAGES_OUTPUTDIR)/_strip_jre/%.stripped: $(JRE_IMAGE_DIR)/%
+ $(IMAGES_OUTPUTDIR)/_strip_jre$(PROFILE)/%.stripped: $(JRE_IMAGE_DIR)/%
$(call strip-file)
$(IMAGES_OUTPUTDIR)/_strip_jdk/%.stripped: $(JDK_IMAGE_DIR)/%
@@ -728,6 +737,20 @@
$(JDK_OVERLAY_DEMO_TARGETS) $(JDK_OVERLAY_INFO_FILE) \
$(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: $(JRE_BIN_TARGETS) $(JRE_LIB_TARGETS) \
+ $(JRE_IMAGE_DIR)/lib/meta-index $(JRE_IMAGE_DIR)/lib/ext/meta-index \
+ $(JRE_INFO_FILE) $(JRE_STRIP_LIST)
+
+.PHONY: profile-image
+
+endif # Profile
+
################################################################################
.PHONY: default images jre-image jdk-image
--- old/makefiles/Import.gmk 2013-01-18 01:39:14.258591011 -0500
+++ new/makefiles/Import.gmk 2013-01-18 01:39:13.334539514 -0500
@@ -157,6 +157,8 @@
endif
endif
+# Fixme: this should be based on the contents of JVM_VARIANTS not hardwired for client/server/minimal
+
$(INSTALL_LIBRARIES_HERE)/server/%$(SHARED_LIBRARY_SUFFIX) : $(INSTALL_LIBRARIES_HERE)/%$(SHARED_LIBRARY_SUFFIX)
$(MKDIR) -p $(@D)
$(RM) $@
@@ -195,6 +197,28 @@
$(RM) $(basename $@).debuginfo
$(MV) $@.tmp $@
+$(INSTALL_LIBRARIES_HERE)/minimal/%$(SHARED_LIBRARY_SUFFIX) : $(INSTALL_LIBRARIES_HERE)/%$(SHARED_LIBRARY_SUFFIX)
+ $(RM) -f $@
+ $(LN) -s ../$(@F) $@
+
+$(INSTALL_LIBRARIES_HERE)/minimal/%.debuginfo : $(INSTALL_LIBRARIES_HERE)/%.debuginfo
+ $(RM) -f $@
+ $(LN) -s ../$(@F) $@
+
+$(INSTALL_LIBRARIES_HERE)/minimal/%.diz : $(INSTALL_LIBRARIES_HERE)/%.diz
+ $(RM) -f $@
+ifeq (REALLY_WEIRD,1)
+ $(LN) -s ../$(@F) $@
+else
+#
+# TODO: Check if this is what they really want...a zip containing a symlink
+#
+ $(RM) -f $(basename $@).debuginfo
+ $(LN) -s ../$(basename $(@F)).debuginfo $(basename $@).debuginfo
+ $(ZIP) -q -y $@ $(basename $@).debuginfo
+ $(RM) -f $(basename $@).debuginfo
+endif
+
#######
ifeq ($(OPENJDK_TARGET_OS),solaris)
--- old/makefiles/Tools.gmk 2013-01-18 01:39:17.098749294 -0500
+++ new/makefiles/Tools.gmk 2013-01-18 01:39:16.198699134 -0500
@@ -136,6 +136,10 @@
TOOL_CLDRCONVERTER=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
build.tools.cldrconverter.CLDRConverter
+TOOL_REMOVEMETHODS=$(JAVA) -Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar \
+ -cp $(JDK_OUTPUTDIR)/btclasses:$(JDK_OUTPUTDIR) \
+ build.tools.classfile.RemoveMethods
+
##########################################################################################
# Tools needed on solaris because OBJCOPY is broken.
--- old/src/share/classes/java/net/URLClassLoader.java 2013-01-18 01:39:19.950908243 -0500
+++ new/src/share/classes/java/net/URLClassLoader.java 2013-01-18 01:39:19.026856745 -0500
@@ -57,6 +57,12 @@
*
* The classes that are loaded are by default granted permission only to
* access the URLs specified when the URLClassLoader was created.
+ *
+ * Where a JAR file contains the {@link Name#PROFILE Profile} attribute
+ * then its value is the name of the Java SE profile that the library
+ * minimally requires. If this runtime does not support the profile then
+ * it causes {@link java.util.jar.UnsupportedProfileException} to be
+ * thrown at some unspecified time.
*
* @author David Connelly
* @since 1.2
--- old/src/share/classes/java/util/jar/Attributes.java 2013-01-18 01:39:22.831068750 -0500
+++ new/src/share/classes/java/util/jar/Attributes.java 2013-01-18 01:39:21.911017478 -0500
@@ -565,6 +565,15 @@
public static final Name MAIN_CLASS = new Name("Main-Class");
/**
+ * {@code Name} object for {@code Profile} manifest attribute used by
+ * applications or libraries packaged as JAR files to indicate the
+ * minimum profile required to execute the application.
+ * @since 1.8
+ * @see UnsupportedProfileException
+ */
+ public static final Name PROFILE = new Name("Profile");
+
+ /**
* Name
object for Sealed
manifest attribute
* used for sealing.
* @see
--- old/src/share/classes/java/util/jar/Pack200.java 2013-01-18 01:39:25.795233942 -0500
+++ new/src/share/classes/java/util/jar/Pack200.java 2013-01-18 01:39:24.819179548 -0500
@@ -574,6 +574,13 @@
* Registers a listener for PropertyChange events on the properties map.
* This is typically used by applications to update a progress bar.
*
+ * The default implementation of this method does nothing and has
+ * no side-effects.
+ *
+ * WARNING: This method is omitted from the interface
+ * declaration in all subset Profiles of Java SE that do not include
+ * the {@code java.beans} package.
+
* @see #properties
* @see #PROGRESS
* @param listener An object to be invoked when a property is changed.
@@ -586,12 +593,20 @@
* property instead.
*/
@Deprecated
- void addPropertyChangeListener(PropertyChangeListener listener) ;
+ default void addPropertyChangeListener(PropertyChangeListener listener) {
+ }
/**
* Remove a listener for PropertyChange events, added by
* the {@link #addPropertyChangeListener}.
*
+ * The default implementation of this method does nothing and has
+ * no side-effects.
+ *
+ * WARNING: This method is omitted from the interface
+ * declaration in all subset Profiles of Java SE that do not include
+ * the {@code java.beans} package.
+ *
* @see #addPropertyChangeListener
* @param listener The PropertyChange listener to be removed.
* @deprecated The dependency on {@code PropertyChangeListener} creates
@@ -600,8 +615,8 @@
* release.
*/
@Deprecated
- void removePropertyChangeListener(PropertyChangeListener listener);
-
+ default void removePropertyChangeListener(PropertyChangeListener listener) {
+ }
}
/**
@@ -718,6 +733,13 @@
* Registers a listener for PropertyChange events on the properties map.
* This is typically used by applications to update a progress bar.
*
+ * The default implementation of this method does nothing and has
+ * no side-effects.
+ *
+ * WARNING: This method is omitted from the interface
+ * declaration in all subset Profiles of Java SE that do not include
+ * the {@code java.beans} package.
+ *
* @see #properties
* @see #PROGRESS
* @param listener An object to be invoked when a property is changed.
@@ -730,12 +752,20 @@
* PROGRESS} property instead.
*/
@Deprecated
- void addPropertyChangeListener(PropertyChangeListener listener) ;
+ default void addPropertyChangeListener(PropertyChangeListener listener) {
+ }
/**
* Remove a listener for PropertyChange events, added by
* the {@link #addPropertyChangeListener}.
*
+ * The default implementation of this method does nothing and has
+ * no side-effects.
+ *
+ * WARNING: This method is omitted from the interface
+ * declaration in all subset Profiles of Java SE that do not include
+ * the {@code java.beans} package.
+ *
* @see #addPropertyChangeListener
* @param listener The PropertyChange listener to be removed.
* @deprecated The dependency on {@code PropertyChangeListener} creates
@@ -744,7 +774,8 @@
* release.
*/
@Deprecated
- void removePropertyChangeListener(PropertyChangeListener listener);
+ default void removePropertyChangeListener(PropertyChangeListener listener) {
+ }
}
// Private stuff....
--- old/src/share/classes/java/util/logging/LogManager.java 2013-01-18 01:39:28.723397126 -0500
+++ new/src/share/classes/java/util/logging/LogManager.java 2013-01-18 01:39:27.799345629 -0500
@@ -302,6 +302,10 @@
* the same event Listener results in multiple entries
* in the property event listener table.
*
+ * WARNING: This method is omitted from this class in all subset
+ * Profiles of Java SE that do not include the {@code java.beans} package.
+ *
+ *
* @param l event listener
* @exception SecurityException if a security manager exists and if
* the caller does not have LoggingPermission("control").
@@ -335,6 +339,10 @@
*
* Returns silently if the given listener is not found.
*
+ *
WARNING: This method is omitted from this class in all subset
+ * Profiles of Java SE that do not include the {@code java.beans} package.
+ *
+ *
* @param l event listener (can be null)
* @exception SecurityException if a security manager exists and if
* the caller does not have LoggingPermission("control").
--- old/src/share/classes/sun/launcher/LauncherHelper.java 2013-01-18 01:39:33.259649926 -0500
+++ new/src/share/classes/sun/launcher/LauncherHelper.java 2013-01-18 01:39:30.799512825 -0500
@@ -65,10 +65,14 @@
import java.util.jar.Attributes;
import java.util.jar.JarFile;
import java.util.jar.Manifest;
+import sun.misc.Version;
+import sun.misc.URLClassPath;
public enum LauncherHelper {
INSTANCE;
private static final String MAIN_CLASS = "Main-Class";
+ private static final String PROFILE = "Profile";
+
private static StringBuilder outBuf = new StringBuilder();
private static final String INDENT = " ";
@@ -418,6 +422,28 @@
new Attributes.Name(FXHelper.JAVAFX_APPLICATION_MARKER))) {
return FXHelper.class.getName();
}
+
+ /*
+ * If this is not a full JRE then the Profile attribute must be
+ * present with the Main-Class attribute so as to indicate the minimum
+ * profile required. Note that we need to suppress checking of the Profile
+ * attribute after we detect an error. This is because the abort may
+ * need to lookup resources and this may involve opening additional JAR
+ * files that would result in errors that suppress the main error.
+ */
+ String profile = mainAttrs.getValue(PROFILE);
+ if (profile == null) {
+ if (!Version.isFullJre()) {
+ URLClassPath.suppressProfileCheckForLauncher();
+ abort(null, "java.launcher.jar.error4", jarname);
+ }
+ } else {
+ if (!Version.supportsProfile(profile)) {
+ URLClassPath.suppressProfileCheckForLauncher();
+ abort(null, "java.launcher.jar.error5", profile, jarname);
+ }
+ }
+
return mainValue.trim();
} catch (IOException ioe) {
abort(ioe, "java.launcher.jar.error1", jarname);
--- old/src/share/classes/sun/launcher/resources/launcher.properties 2013-01-18 01:39:37.803903172 -0500
+++ new/src/share/classes/sun/launcher/resources/launcher.properties 2013-01-18 01:39:36.115809097 -0500
@@ -139,6 +139,8 @@
Error: An unexpected error occurred while trying to open file {0}
java.launcher.jar.error2=manifest not found in {0}
java.launcher.jar.error3=no main manifest attribute, in {0}
+java.launcher.jar.error4=no Profile manifest attribute in {0}
+java.launcher.jar.error5=Profile {0} required by {1} not supported by this runtime
java.launcher.init.error=initialization error
java.launcher.javafx.error1=\
Error: The JavaFX launchApplication method has the wrong signature, it\n\
--- old/src/share/classes/sun/misc/URLClassPath.java 2013-01-18 01:39:42.932188964 -0500
+++ new/src/share/classes/sun/misc/URLClassPath.java 2013-01-18 01:39:41.608115175 -0500
@@ -35,6 +35,7 @@
import java.util.jar.Manifest;
import java.util.jar.Attributes;
import java.util.jar.Attributes.Name;
+import java.util.jar.UnsupportedProfileException;
import java.net.JarURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
@@ -64,6 +65,12 @@
final static String JAVA_VERSION;
private static final boolean DEBUG;
+ /**
+ * Used by launcher to indicate that checking of the JAR file "Profile"
+ * attribute has been suppressed.
+ */
+ private static boolean profileCheckSuppressedByLauncher;
+
static {
JAVA_VERSION = java.security.AccessController.doPrivileged(
new sun.security.action.GetPropertyAction("java.version"));
@@ -581,6 +588,15 @@
}
}
+ /**
+ * Used by the launcher to suppress further checking of the JAR file Profile
+ * attribute (necessary when the launcher is aborting as the abort involves
+ * a resource lookup that may involve opening additional JAR files)
+ */
+ public static void suppressProfileCheckForLauncher() {
+ profileCheckSuppressedByLauncher = true;
+ }
+
/*
* Inner class used to represent a Loader of resources from a JAR URL.
*/
@@ -788,6 +804,28 @@
return false;
}
+ /**
+ * If the Profile attribute is present then this method checks that the runtime
+ * supports that profile.
+ *
+ * ## Add a fast path like Class-Path to avoid reading the manifest when the attribute
+ * is not present.
+ */
+ void checkProfileAttribute() throws IOException {
+ Manifest man = jar.getManifest();
+ if (man != null) {
+ Attributes attr = man.getMainAttributes();
+ if (attr != null) {
+ String value = attr.getValue(Name.PROFILE);
+ if (value != null && !Version.supportsProfile(value)) {
+ String prefix = Version.profileName().length() > 0 ?
+ "This runtime implements " + Version.profileName() + ", " : "";
+ throw new UnsupportedProfileException(prefix + csu + " requires " + value);
+ }
+ }
+ }
+ }
+
/*
* Returns the URL for a resource with the specified name
*/
@@ -957,6 +995,12 @@
ensureOpen();
parseExtensionsDependencies();
+
+ // check Profile attribute if present
+ if (!profileCheckSuppressedByLauncher) {
+ checkProfileAttribute();
+ }
+
if (SharedSecrets.javaUtilJarAccess().jarFileHasClassPathAttribute(jar)) { // Only get manifest when necessary
Manifest man = jar.getManifest();
if (man != null) {
--- old/src/share/classes/sun/misc/Version.java.template 2013-01-18 01:39:46.776403197 -0500
+++ new/src/share/classes/sun/misc/Version.java.template 2013-01-18 01:39:45.496331860 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2012, 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
@@ -36,8 +36,11 @@
"@@java_version@@";
private static final String java_runtime_name =
- "@@java_runtime_name@@";
-
+ "@@java_runtime_name@@";
+
+ private static final String java_profile_name =
+ "@@java_profile_name@@";
+
private static final String java_runtime_version =
"@@java_runtime_version@@";
@@ -49,6 +52,8 @@
System.setProperty("java.version", java_version);
System.setProperty("java.runtime.version", java_runtime_version);
System.setProperty("java.runtime.name", java_runtime_name);
+ if (java_profile_name.length() > 0)
+ System.setProperty("java.runtime.profile", java_profile_name);
}
private static boolean versionsInitialized = false;
@@ -90,23 +95,28 @@
boolean isHeadless = false;
/* Report that we're running headless if the property is true */
- String headless = System.getProperty("java.awt.headless");
- if ( (headless != null) && (headless.equalsIgnoreCase("true")) ) {
+ String headless = System.getProperty("java.awt.headless");
+ if ( (headless != null) && (headless.equalsIgnoreCase("true")) ) {
isHeadless = true;
- }
+ }
/* First line: platform version. */
ps.println(launcher_name + " version \"" + java_version + "\"");
/* Second line: runtime version (ie, libraries). */
- ps.print(java_runtime_name + " (build " + java_runtime_version);
+ ps.print(java_runtime_name + " (build " + java_runtime_version);
+
+ if (java_profile_name.length() > 0) {
+ // profile name
+ ps.print(", profile " + java_profile_name);
+ }
- if (java_runtime_name.indexOf("Embedded") != -1 && isHeadless) {
- // embedded builds report headless state
- ps.print(", headless");
- }
- ps.println(')');
+ if (java_runtime_name.indexOf("Embedded") != -1 && isHeadless) {
+ // embedded builds report headless state
+ ps.print(", headless");
+ }
+ ps.println(')');
/* Third line: JVM information. */
String java_vm_name = System.getProperty("java.vm.name");
@@ -332,6 +342,67 @@
private static native boolean getJvmVersionInfo();
private static native void getJdkVersionInfo();
+ // Possible runtime profiles, ordered from small to large
+ private final static String[] PROFILES = { "compact1", "compact2", "compact3" };
+
+ /**
+ * Returns the name of the profile that this runtime implements. The empty
+ * string is returned for the full Java Runtime.
+ */
+ public static String profileName() {
+ return java_profile_name;
+ }
+
+ /**
+ * Indicates if this runtime implements the full Java Runtime.
+ */
+ public static boolean isFullJre() {
+ return java_profile_name.length() == 0;
+ }
+
+ // cached index of this profile's name in PROFILES (1-based)
+ private static int thisRuntimeIndex;
+
+ /**
+ * Indicates if this runtime supports the given profile. Profile names are
+ * case sensitive.
+ *
+ * @return {@code true} if the given profile is supported
+ */
+ public static boolean supportsProfile(String requiredProfile) {
+ int x = thisRuntimeIndex - 1;
+ if (x < 0) {
+ String profile = profileName();
+ if (profile.length() > 0) {
+ x = 0;
+ while (x < PROFILES.length) {
+ if (PROFILES[x].equals(profile))
+ break;
+ x++;
+ }
+ if (x >= PROFILES.length)
+ throw new InternalError(profile + " not known to sun.misc.Version");
+
+ // okay if another thread has already set it
+ thisRuntimeIndex = x + 1;
+ }
+ // else we are a full JRE
+ }
+
+ int y = 0;
+ while (y < PROFILES.length) {
+ if (PROFILES[y].equals(requiredProfile))
+ break;
+ y++;
+ }
+ if (y >= PROFILES.length) {
+ // profile not found so caller has requested something that is not defined
+ return false;
+ }
+
+ return x < 0 || x >= y;
+ }
+
}
// Help Emacs a little because this file doesn't end in .java.
--- old/src/share/classes/sun/tools/jar/Main.java 2013-01-18 01:39:50.476609403 -0500
+++ new/src/share/classes/sun/tools/jar/Main.java 2013-01-18 01:39:49.260541634 -0500
@@ -47,7 +47,7 @@
class Main {
String program;
PrintStream out, err;
- String fname, mname, ename;
+ String fname, mname, ename, pname;
String zname = "";
String[] files;
String rootjar = null;
@@ -78,6 +78,9 @@
static final String MANIFEST_DIR = "META-INF/";
static final String VERSION = "1.0";
+ // valid values for Profile attribute
+ private static final String[] PROFILES = { "compact1", "compact2", "compact3" };
+
private static ResourceBundle rsrc;
/**
@@ -184,6 +187,14 @@
if (ename != null) {
addMainClass(manifest, ename);
}
+ if (pname != null) {
+ if (!addProfileName(manifest, pname)) {
+ if (in != null) {
+ in.close();
+ }
+ return false;
+ }
+ }
}
OutputStream out;
if (fname != null) {
@@ -230,7 +241,7 @@
if (manifest != null) {
manifest.close();
}
- if (fname != null) {
+ if (ok && fname != null) {
// on Win32, we need this delete
inputFile.delete();
if (!tmpFile.renameTo(inputFile)) {
@@ -361,6 +372,9 @@
case 'e':
ename = args[count++];
break;
+ case 'p':
+ pname = args[count++];
+ break;
default:
error(formatMsg("error.illegal.option",
String.valueOf(flags.charAt(i))));
@@ -410,7 +424,7 @@
usageError();
return false;
} else if (uflag) {
- if ((mname != null) || (ename != null)) {
+ if ((mname != null) || (ename != null) || (pname != null)) {
/* just want to update the manifest */
return true;
} else {
@@ -544,7 +558,7 @@
|| (Mflag && isManifestEntry)) {
continue;
} else if (isManifestEntry && ((newManifest != null) ||
- (ename != null))) {
+ (ename != null) || (pname != null))) {
foundManifest = true;
if (newManifest != null) {
// Don't read from the newManifest InputStream, as we
@@ -563,7 +577,9 @@
if (newManifest != null) {
old.read(newManifest);
}
- updateManifest(old, zos);
+ if (!updateManifest(old, zos)) {
+ return false;
+ }
} else {
if (!entryMap.containsKey(name)) { // copy the old stuff
// do our own compression
@@ -596,10 +612,14 @@
Manifest m = new Manifest(newManifest);
updateOk = !isAmbiguousMainClass(m);
if (updateOk) {
- updateManifest(m, zos);
+ if (!updateManifest(m, zos)) {
+ updateOk = false;
+ }
+ }
+ } else if (ename != null || pname != null) {
+ if (!updateManifest(new Manifest(), zos)) {
+ updateOk = false;
}
- } else if (ename != null) {
- updateManifest(new Manifest(), zos);
}
}
zis.close();
@@ -623,7 +643,7 @@
zos.closeEntry();
}
- private void updateManifest(Manifest m, ZipOutputStream zos)
+ private boolean updateManifest(Manifest m, ZipOutputStream zos)
throws IOException
{
addVersion(m);
@@ -631,6 +651,11 @@
if (ename != null) {
addMainClass(m, ename);
}
+ if (pname != null) {
+ if (!addProfileName(m, pname)) {
+ return false;
+ }
+ }
ZipEntry e = new ZipEntry(MANIFEST_NAME);
e.setTime(System.currentTimeMillis());
if (flag0) {
@@ -641,6 +666,7 @@
if (vflag) {
output(getMsg("out.update.manifest"));
}
+ return true;
}
@@ -687,6 +713,28 @@
global.put(Attributes.Name.MAIN_CLASS, mainApp);
}
+ private boolean addProfileName(Manifest m, String profile) {
+ // check profile name
+ boolean found = false;
+ int i = 0;
+ while (i < PROFILES.length) {
+ if (profile.equals(PROFILES[i])) {
+ found = true;
+ break;
+ }
+ i++;
+ }
+ if (!found) {
+ error(formatMsg("error.bad.pvalue", profile));
+ return false;
+ }
+
+ // overrides any existing Profile attribute
+ Attributes global = m.getMainAttributes();
+ global.put(Attributes.Name.PROFILE, profile);
+ return true;
+ }
+
private boolean isAmbiguousMainClass(Manifest m) {
if (ename != null) {
Attributes global = m.getMainAttributes();
--- old/src/share/classes/sun/tools/jar/resources/jar.properties 2013-01-18 01:39:54.436830099 -0500
+++ new/src/share/classes/sun/tools/jar/resources/jar.properties 2013-01-18 01:39:52.988749400 -0500
@@ -36,6 +36,8 @@
error.bad.eflag=\
'e' flag and manifest with the 'Main-Class' attribute cannot be specified \n\
together!
+error.bad.pvalue=\
+ bad value for 'Profile' attribute: {0}
error.nosuch.fileordir=\
{0} : no such file or directory
error.write.file=\
@@ -77,6 +79,7 @@
\ \ -m include manifest information from specified manifest file\n\
\ \ -e specify application entry point for stand-alone application \n\
\ \ bundled into an executable jar file\n\
+\ \ -p specify profile name\n\
\ \ -0 store only; use no ZIP compression\n\
\ \ -M do not create a manifest file for the entries\n\
\ \ -i generate index information for the specified jar files\n\
--- /dev/null 2012-10-30 13:53:25.609028996 -0400
+++ new/make/tools/src/build/tools/RemoveMethods.java 2013-01-18 01:39:57.396995063 -0500
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.classfile;
+
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.IOException;
+import java.util.Set;
+import java.util.HashSet;
+
+import com.sun.tools.classfile.AccessFlags;
+import com.sun.tools.classfile.Attributes;
+import com.sun.tools.classfile.ClassFile;
+import com.sun.tools.classfile.ClassReader;
+import com.sun.tools.classfile.ClassWriter;
+import com.sun.tools.classfile.ConstantPool;
+import com.sun.tools.classfile.Field;
+import com.sun.tools.classfile.Method;
+
+public class RemoveMethods {
+
+ public static void main(String[] args) throws Exception {
+ if (args.length < 2) {
+ System.err.println("Usage: java RemoveMethods classfile output [method...]");
+ System.exit(-1);
+ }
+
+ // class file to read
+ Path input = Paths.get(args[0]);
+
+ // class file to write, if directory then use the name of the input
+ Path output = Paths.get(args[1]);
+ if (Files.isDirectory(output))
+ output = output.resolve(input.getFileName());
+
+ // the methods to remove
+ Set methodsToRemove = new HashSet<>();
+ int i = 2;
+ while (i < args.length)
+ methodsToRemove.add(args[i++]);
+
+ // read class file
+ ClassFile cf;
+ try (InputStream in = Files.newInputStream(input)) {
+ cf = ClassFile.read(in);
+ }
+
+ final int magic = cf.magic;
+ final int major_version = cf.major_version;
+ final int minor_version = cf.minor_version;
+ final ConstantPool cp = cf.constant_pool;
+ final AccessFlags access_flags = cf.access_flags;
+ final int this_class = cf.this_class;
+ final int super_class = cf.super_class;
+ final int[] interfaces = cf.interfaces;
+ final Field[] fields = cf.fields;
+ final Attributes class_attrs = cf.attributes;
+
+ // remove the requested methods, no signature check at this time
+ Method[] methods = cf.methods;
+ i = 0;
+ while (i < methods.length) {
+ Method m = methods[i];
+ String name = m.getName(cp);
+ if (methodsToRemove.contains(name)) {
+ int len = methods.length;
+ Method[] newMethods = new Method[len-1];
+ if (i > 0)
+ System.arraycopy(methods, 0, newMethods, 0, i);
+ int after = methods.length - i - 1;
+ if (after > 0)
+ System.arraycopy(methods, i+1, newMethods, i, after);
+ methods = newMethods;
+ String paramTypes = m.descriptor.getParameterTypes(cp);
+ System.out.format("Removed method %s%s from %s%n",
+ name, paramTypes, cf.getName());
+ continue;
+ }
+ i++;
+ }
+
+ // TBD, prune constant pool of entries that are no longer referenced
+
+ // re-write class file
+ cf = new ClassFile(magic, minor_version, major_version, cp, access_flags,
+ this_class, super_class, interfaces, fields, methods, class_attrs);
+ try (OutputStream out = Files.newOutputStream(output)) {
+ new ClassWriter().write(cf, out);
+ }
+ }
+}
--- /dev/null 2012-10-30 13:53:25.609028996 -0400
+++ new/makefiles/ProfileNames.gmk 2013-01-18 01:40:01.869244292 -0500
@@ -0,0 +1,65 @@
+#
+# 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
+# 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.
+#
+
+# This was split out from Profiles.gmk to allow GenSrcMisc.gmk to include it
+# without attempting to generate lists for output files that don't exist yet
+
+# These are the external names of each profile
+
+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.
+
+ALL_PROFILES := profile_1 profile_2 profile_3
+
+# This defines targets to generate per-profile Version.java/class files into
+# distinct locations
+
+VERSION_JAVA_DIR := sun/misc
+VERSION_JAVA_FILE := Version.java
+VERSION_JAVA_PATH := $(VERSION_JAVA_DIR)/$(VERSION_JAVA_FILE)
+VERSION_CLASS_PATH := $(VERSION_JAVA_PATH:.java=.class)
+
+PROFILE_VERSION_JAVA_TARGETS := $(foreach i, $(ALL_PROFILES), $(subst XXX,$i, $(JDK_OUTPUTDIR)/gen_XXX/$(VERSION_JAVA_PATH)))
+
+PROFILE_VERSION_CLASS_TARGETS := $(foreach i, $(PROFILE_VERSION_JAVA_TARGETS), $(i:.java=.class))
+
+# Function to map from profile designator, profile_1 etc, to its number
+profile_number = $(if $(patsubst profile_%,%, $(1)),$(patsubst profile_%,%, $(1)), $(words $(PROFILE_NAMES) extra))
+
+# Function to map from profile number, 1, 2 etc, to the corresponding name
+# An invalid number maps to an empty name
+profile_name = $(word $(1), $(PROFILE_NAMES))
+
+# Function to isolate a profile number from a Version.java target
+# Evaluates to the arg if the arg is not a profile version target
+profile_version_number = $(patsubst $(JDK_OUTPUTDIR)/gen_profile_%/$(VERSION_JAVA_PATH), %, $(1))
+
+# Function to go from a profile Version.java target to profile name. If not
+# a profile version target then we need a number that maps to an empty name
+profile_version_name = $(word $(if $(filter-out $(call profile_version_number, $(1)), $(1)), $(call profile_version_number, $(1)), $(words $(PROFILE_NAMES) extra)), $(PROFILE_NAMES))
+
--- /dev/null 2012-10-30 13:53:25.609028996 -0400
+++ new/makefiles/Profiles.gmk 2013-01-18 01:40:06.285490401 -0500
@@ -0,0 +1,331 @@
+#
+# 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
+# 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.
+#
+
+include ProfileNames.gmk
+
+# This defines the include lists for each profile, categorized as lib, bin
+# and other. We can use these to define the file lists for each profile
+# directly, rather than constructing a set of files to exclude from the
+# set of all files. But initially we will stick with generating exclude lists
+# as that is how the main build process already works.
+
+include profile-includes.txt
+
+###############################################################################
+# Per profile Jar lists
+#
+# These are the jar files to be built. In some builds these have to be
+# imported (signed jars) rather than built.
+#
+# The incoming lists, eg PROFILE_1_JRE_JARS_FILES, are the jars to be
+# included in this profile. They have the jar name relative to the lib
+# directory. We have to turn these into targets by adding the
+# $(IMAGES_OUTPUTDIR)/lib prefix
+#
+# Note that some jars may be optional depending on the type of build (jdk vs.
+# openjdk) and the platform.
+#
+# WARNING: incoming lists are currently validated for linux only!
+###############################################################################
+
+# These are jar files for which the contents vary depending on the profile
+CUSTOM_JARS := rt.jar resources.jar
+# This is used in Images.gmk
+CUSTOM_PROFILE_JARS := $(addprefix $(IMAGES_OUTPUTDIR)/lib$(PROFILE)/, $(CUSTOM_JARS))
+
+# These are the common jar files built for and included with this profile
+# Filter out the custom jars and turn them into targets.
+
+PROFILE_1_JARS := \
+ $(addprefix $(IMAGES_OUTPUTDIR)/lib/, $(filter-out $(CUSTOM_JARS), $(PROFILE_1_JRE_JAR_FILES)))
+
+PROFILE_2_JARS := \
+ $(if $(PROFILE_2_JRE_JAR_FILES), $(addprefix $(IMAGES_OUTPUTDIR)/lib/, $(PROFILE_2_JRE_JAR_FILES))) \
+ $(PROFILE_1_JARS)
+
+ifneq ($(ENABLE_JFR), true)
+ PROFILE_3_JRE_JAR_FILES := $(filter-out jfr.jar, $(PROFILE_3_JRE_JAR_FILES))
+endif
+
+PROFILE_3_JARS := \
+ $(addprefix $(IMAGES_OUTPUTDIR)/lib/, $(PROFILE_3_JRE_JAR_FILES)) \
+ $(PROFILE_2_JARS)
+
+ifdef OPENJDK
+ PROFILE_4_JRE_JAR_FILES := $(filter-out alt-rt.jar, $(PROFILE_4_JRE_JAR_FILES))
+endif
+
+PROFILE_4_JARS := \
+ $(addprefix $(IMAGES_OUTPUTDIR)/lib/, $(PROFILE_4_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
+
+ALL_JARS := $(PROFILE_4_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
+
+ifeq ($(OPENJDK_TARGET_OS),solaris)
+ ifndef OPENJDK
+ ALL_JARS += $(IMAGES_OUTPUTDIR)/lib/ext/ucrypto.jar
+ endif
+endif
+
+ifeq ($(OPENJDK_TARGET_OS),windows)
+ ALL_JARS += $(IMAGES_OUTPUTDIR)/lib/ext/sunmscapi.jar
+endif
+
+ifeq ($(OPENJDK_TARGET_OS),macosx)
+ ALL_JARS += $(IMAGES_OUTPUTDIR)/lib/JObjC.jar
+endif
+
+ifeq ($(PROFILE), profile_1)
+ PROFILE_JARS := $(PROFILE_1_JARS)
+else ifeq ($(PROFILE), profile_2)
+ PROFILE_JARS := $(PROFILE_2_JARS)
+else ifeq ($(PROFILE), profile_3)
+ PROFILE_JARS := $(PROFILE_3_JARS)
+endif
+ifneq ($(PROFILE),)
+ JARS := $(CUSTOM_PROFILE_JARS) $(PROFILE_JARS)
+else
+ JARS := $(ALL_JARS)
+endif
+
+###############################################################################
+# JRE contents
+###############################################################################
+
+
+# we don't need to do anything if not building a profile
+ifneq ($(PROFILE),)
+
+
+# Need all files to generate the exclude lists
+NEW_ALL_BIN_LIST := $(patsubst $(JDK_OUTPUTDIR)/bin/%,%,$(shell $(FIND) $(JDK_OUTPUTDIR)/bin \( -type f -o -type l \) ! -name "sjavac"))
+
+ALL_JRE_BIN_FILES := \
+ $(PROFILE_1_JRE_BIN_FILES) \
+ $(PROFILE_2_JRE_BIN_FILES) \
+ $(PROFILE_3_JRE_BIN_FILES) \
+ $(PROFILE_4_JRE_BIN_FILES)
+
+NOT_JRE_BIN_FILES := $(filter-out $(ALL_JRE_BIN_FILES), $(NEW_ALL_BIN_LIST))
+
+# Additional exclusions for profile JRE
+ifeq ($(PROFILE), profile_1)
+ NOT_JRE_BIN_FILES += \
+ $(PROFILE_2_JRE_BIN_FILES) \
+ $(PROFILE_3_JRE_BIN_FILES) \
+ $(PROFILE_4_JRE_BIN_FILES)
+endif
+
+ifeq ($(PROFILE), profile_2)
+ NOT_JRE_BIN_FILES += \
+ $(PROFILE_3_JRE_BIN_FILES) \
+ $(PROFILE_4_JRE_BIN_FILES)
+endif
+
+ifeq ($(PROFILE), profile_3)
+ NOT_JRE_BIN_FILES += \
+ $(PROFILE_4_JRE_BIN_FILES)
+endif
+
+NOT_JRE_BIN_FILES := $(addprefix $(JDK_OUTPUTDIR)/bin/, $(NOT_JRE_BIN_FILES))
+
+# Need all files to generate the exclude lists
+NEW_ALL_LIB_LIST := $(patsubst $(JDK_OUTPUTDIR)/lib/%,%,$(shell $(FIND) $(JDK_OUTPUTDIR)/lib \( -type f -o -type l \) -a ! \( -name "_the*" -o -name "javac_state " \) ))
+NEW_ALL_LIB_LIST += $(patsubst $(IMAGES_OUTPUTDIR)/lib/%,%,$(shell $(FIND) $(IMAGES_OUTPUTDIR)/lib \( -type f -o -type l \) -a ! \( -name "_the*" -o -name "javac_state " \) ))
+
+ALL_JRE_LIB_FILES := \
+ $(PROFILE_1_JRE_LIB_FILES) \
+ $(PROFILE_2_JRE_LIB_FILES) \
+ $(PROFILE_3_JRE_LIB_FILES) \
+ $(PROFILE_4_JRE_LIB_FILES)
+
+NOT_JRE_LIB_FILES := $(filter-out $(ALL_JRE_LIB_FILES), $(NEW_ALL_LIB_LIST))
+
+# Although these are NOT JRE lib files we have to filter them from the list
+# (ie cause them to be added them back in here) because the logic in
+# Images.gmk expects them to be there and handles them differently.
+# If we don't, they end up in the wrong place in the JDK image.
+# This needs fixing.
+NOT_JRE_LIB_FILES := $(filter-out $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)attach$(SHARED_LIBRARY_SUFFIX) $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(SALIB_NAME), $(NOT_JRE_LIB_FILES))
+
+# Additional exclusions for profile JREs
+ifeq ($(PROFILE), profile_1)
+ NOT_JRE_LIB_FILES += \
+ $(PROFILE_2_JRE_LIB_FILES) \
+ $(PROFILE_3_JRE_LIB_FILES) \
+ $(PROFILE_4_JRE_LIB_FILES)
+endif
+
+ifeq ($(PROFILE), profile_2)
+ NOT_JRE_LIB_FILES += \
+ $(PROFILE_3_JRE_LIB_FILES) \
+ $(PROFILE_4_JRE_LIB_FILES)
+endif
+
+ifeq ($(PROFILE), profile_3)
+ NOT_JRE_LIB_FILES += \
+ $(PROFILE_4_JRE_LIB_FILES)
+endif
+
+# Exclude the custom jar files as these will be added back via a special rule
+NOT_JRE_LIB_FILES += $(CUSTOM_JARS)
+
+###############################################################################
+# Customization of rt.jar file contents
+# These are expressed as exclusions from everything found in the
+# JDK_OUTPUTDIR/classes directory
+###############################################################################
+
+# The main set of excluded types/packages (ie everything not destined to be
+# part of rt.jar or resources.jar is captured in the CreateJars.gmk RT_JAR_EXCLUDES
+# variable. We add to that for the per-profile exclusion lists
+
+# For each profile we have four variables:
+#
+# - PROFILE_n_RTJAR_INCLUDE_PACKAGES
+#
+# This is a package prefix indicating that all classes in that package
+# and conditionally its subpackages are included in rt.jar for this profile.
+# The subpackages will be included as long as they do not appear in the
+# include list of a higher profile
+#
+# - PROFILE_n_RTJAR_INCLUDE_TYPES
+#
+# These are specific types that must be included within a package.
+# There are two cases:
+# - individual types in a package that is otherwise excluded at this
+# profile level. The only arises if there are split packages.
+#
+# - A higher-level package is included in a high profile where a subpackage
+# is included in a lower profile. Including the package in the high profile
+# would exclude it and all subpackages from the lower profile, so instead
+# the classes in the package are listed for that higher profile (as *.class)
+#
+# These types are explicitly added back into the rt.jar content lists.
+#
+# - PROFILE_n_RTJAR_EXCLUDE_TYPES
+#
+# These are specific types that must be excluded even though most of the
+# containing package is include. Again this occurs with split packges.
+#
+# So the exclude list for each profile consists of the include lists
+# for all profiles above it, together with any explicitly excluded types.
+# This is then combined with the overall RT_JAR_EXCLUDES list (which covers
+# things that go into other jar files).
+#
+# We also have to define the types to be explicitly included. This
+# accumulates up the profiles ie profile 3 has to include the types
+# that profiles 1 and 2 had to include. This is unnecessary if, for example,
+# profile 3 includes the entire package, but it is harmless to add them
+# explicitly, and complex to determine if we still need to include them.
+#
+# Need a way to express:
+# for (int i = profile+1; i < 4; i++)
+# RT_JAR_EXCLUDES += PROFILE_$i_RTJAR_INCLUDE_PACKAGES
+#
+# Do it the long way for now
+#
+# - PROFILE_n_INCLUDE_METAINF_SERVICES
+#
+# These are META-INF/services/ entries found in resources.jar. Together
+# resources.jar and rt.jar hold the contents of the classes directory, (the
+# classes in rt.jar and everything else in resources.jar).Hence the
+# include/exclude information for resources.jar is tied to that of rt.jar
+
+include profile-rtjar-includes.txt
+
+# Function to expand foo/*.class into the set of classes
+# NOTE: Classfiles with $ in their name are problematic as that is the
+# meta-character for both make and the shell! Hence the \$$$$ substitution.
+# But note that if you echo these values they will NOT display as expected.
+class_list = $(patsubst $(JDK_OUTPUTDIR)/classes/%,%,\
+ $(foreach i,$(1), $(subst $$,\$$$$, $(wildcard $(JDK_OUTPUTDIR)/classes/$i))))
+
+ifeq ($(PROFILE), profile_1)
+ RT_JAR_EXCLUDES += \
+ $(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))
+ RT_JAR_INCLUDE_TYPES := \
+ $(call class_list, $(PROFILE_1_RTJAR_INCLUDE_TYPES))
+ PROFILE_INCLUDE_METAINF_SERVICES := \
+ $(PROFILE_1_INCLUDE_METAINF_SERVICES)
+endif
+ifeq ($(PROFILE), profile_2)
+ RT_JAR_EXCLUDES += \
+ $(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))
+ RT_JAR_INCLUDE_TYPES := \
+ $(call class_list, $(PROFILE_1_RTJAR_INCLUDE_TYPES)) \
+ $(call class_list, $(PROFILE_2_RTJAR_INCLUDE_TYPES))
+ PROFILE_INCLUDE_METAINF_SERVICES := \
+ $(PROFILE_1_INCLUDE_METAINF_SERVICES) \
+ $(PROFILE_2_INCLUDE_METAINF_SERVICES)
+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))
+ RT_JAR_INCLUDE_TYPES := \
+ $(call class_list, $(PROFILE_1_RTJAR_INCLUDE_TYPES)) \
+ $(call class_list, $(PROFILE_2_RTJAR_INCLUDE_TYPES)) \
+ $(call class_list, $(PROFILE_3_RTJAR_INCLUDE_TYPES))
+ PROFILE_INCLUDE_METAINF_SERVICES := \
+ $(PROFILE_1_INCLUDE_METAINF_SERVICES) \
+ $(PROFILE_2_INCLUDE_METAINF_SERVICES) \
+ $(PROFILE_3_INCLUDE_METAINF_SERVICES)
+endif
+
+# Filter out non-OpenJDK services
+ifdef OPENJDK
+ EXCLUDED_SERVICES := META-INF/services/javax.script.ScriptEngineFactory
+ PROFILE_INCLUDE_METAINF_SERVICES := $(filter-out $(EXCLUDED_SERVICES),$(PROFILE_INCLUDE_METAINF_SERVICES))
+endif
+
+
+endif # profile
+
--- /dev/null 2012-10-30 13:53:25.609028996 -0400
+++ new/makefiles/profile-includes.txt 2013-01-18 01:40:14.185930669 -0500
@@ -0,0 +1,710 @@
+#
+# 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
+# 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.
+#
+PROFILE_1_JRE_BIN_FILES := \
+ java$(EXE_SUFFIX) \
+ keytool$(EXE_SUFFIX)
+
+PROFILE_1_JRE_LIB_FILES := \
+ $(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 \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)net$(SHARED_LIBRARY_SUFFIX) \
+ $(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)unpack$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)verify$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)verify.diz \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)zip$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/client/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/client/$(LIBRARY_PREFIX)jsig.diz \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/client/$(LIBRARY_PREFIX)jvm$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/client/$(LIBRARY_PREFIX)jvm.diz \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/client/Xusage.txt \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/jli/$(LIBRARY_PREFIX)jli$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/jvm.cfg \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/minimal/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/minimal/$(LIBRARY_PREFIX)jsig.diz \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/minimal/$(LIBRARY_PREFIX)jvm$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/minimal/$(LIBRARY_PREFIX)jvm.diz \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/minimal/Xusage.txt \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/server/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/server/$(LIBRARY_PREFIX)jsig.diz \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/server/$(LIBRARY_PREFIX)jvm$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/server/$(LIBRARY_PREFIX)jvm.diz \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/server/Xusage.txt \
+ calendars.properties \
+ classlist \
+ content-types.properties \
+ currency.data \
+ ext/localedata.jar \
+ ext/meta-index \
+ ext/sunjce_provider.jar \
+ jce.jar \
+ jsse.jar \
+ logging.properties \
+ meta-index \
+ net.properties \
+ resources.jar \
+ rt.jar \
+ security/US_export_policy.jar \
+ security/blacklist \
+ security/cacerts \
+ security/java.policy \
+ security/java.security \
+ security/local_policy.jar \
+ security/trusted.libraries \
+ zi/Africa/Abidjan \
+ zi/Africa/Accra \
+ zi/Africa/Addis_Ababa \
+ zi/Africa/Algiers \
+ zi/Africa/Asmara \
+ zi/Africa/Bamako \
+ zi/Africa/Bangui \
+ zi/Africa/Banjul \
+ zi/Africa/Bissau \
+ zi/Africa/Blantyre \
+ zi/Africa/Brazzaville \
+ zi/Africa/Bujumbura \
+ zi/Africa/Cairo \
+ zi/Africa/Casablanca \
+ zi/Africa/Ceuta \
+ zi/Africa/Conakry \
+ zi/Africa/Dakar \
+ zi/Africa/Dar_es_Salaam \
+ zi/Africa/Djibouti \
+ zi/Africa/Douala \
+ zi/Africa/El_Aaiun \
+ zi/Africa/Freetown \
+ zi/Africa/Gaborone \
+ zi/Africa/Harare \
+ zi/Africa/Johannesburg \
+ zi/Africa/Juba \
+ zi/Africa/Kampala \
+ zi/Africa/Khartoum \
+ zi/Africa/Kigali \
+ zi/Africa/Kinshasa \
+ zi/Africa/Lagos \
+ zi/Africa/Libreville \
+ zi/Africa/Lome \
+ zi/Africa/Luanda \
+ zi/Africa/Lubumbashi \
+ zi/Africa/Lusaka \
+ zi/Africa/Malabo \
+ zi/Africa/Maputo \
+ zi/Africa/Maseru \
+ zi/Africa/Mbabane \
+ zi/Africa/Mogadishu \
+ zi/Africa/Monrovia \
+ zi/Africa/Nairobi \
+ zi/Africa/Ndjamena \
+ zi/Africa/Niamey \
+ zi/Africa/Nouakchott \
+ zi/Africa/Ouagadougou \
+ zi/Africa/Porto-Novo \
+ zi/Africa/Sao_Tome \
+ zi/Africa/Tripoli \
+ zi/Africa/Tunis \
+ zi/Africa/Windhoek \
+ zi/America/Adak \
+ zi/America/Anchorage \
+ zi/America/Anguilla \
+ zi/America/Antigua \
+ zi/America/Araguaina \
+ zi/America/Argentina/Buenos_Aires \
+ zi/America/Argentina/Catamarca \
+ zi/America/Argentina/Cordoba \
+ zi/America/Argentina/Jujuy \
+ zi/America/Argentina/La_Rioja \
+ zi/America/Argentina/Mendoza \
+ zi/America/Argentina/Rio_Gallegos \
+ zi/America/Argentina/Salta \
+ zi/America/Argentina/San_Juan \
+ zi/America/Argentina/San_Luis \
+ zi/America/Argentina/Tucuman \
+ zi/America/Argentina/Ushuaia \
+ zi/America/Aruba \
+ zi/America/Asuncion \
+ zi/America/Atikokan \
+ zi/America/Bahia \
+ zi/America/Bahia_Banderas \
+ zi/America/Barbados \
+ zi/America/Belem \
+ zi/America/Belize \
+ zi/America/Blanc-Sablon \
+ zi/America/Boa_Vista \
+ zi/America/Bogota \
+ zi/America/Boise \
+ zi/America/Cambridge_Bay \
+ zi/America/Campo_Grande \
+ zi/America/Cancun \
+ zi/America/Caracas \
+ zi/America/Cayenne \
+ zi/America/Cayman \
+ zi/America/Chicago \
+ zi/America/Chihuahua \
+ zi/America/Costa_Rica \
+ zi/America/Creston \
+ zi/America/Cuiaba \
+ zi/America/Curacao \
+ zi/America/Danmarkshavn \
+ zi/America/Dawson \
+ zi/America/Dawson_Creek \
+ zi/America/Denver \
+ zi/America/Detroit \
+ zi/America/Dominica \
+ zi/America/Edmonton \
+ zi/America/Eirunepe \
+ zi/America/El_Salvador \
+ zi/America/Fortaleza \
+ zi/America/Glace_Bay \
+ zi/America/Godthab \
+ zi/America/Goose_Bay \
+ zi/America/Grand_Turk \
+ zi/America/Grenada \
+ zi/America/Guadeloupe \
+ zi/America/Guatemala \
+ zi/America/Guayaquil \
+ zi/America/Guyana \
+ zi/America/Halifax \
+ zi/America/Havana \
+ zi/America/Hermosillo \
+ zi/America/Indiana/Indianapolis \
+ zi/America/Indiana/Knox \
+ zi/America/Indiana/Marengo \
+ zi/America/Indiana/Petersburg \
+ zi/America/Indiana/Tell_City \
+ zi/America/Indiana/Vevay \
+ zi/America/Indiana/Vincennes \
+ zi/America/Indiana/Winamac \
+ zi/America/Inuvik \
+ zi/America/Iqaluit \
+ zi/America/Jamaica \
+ zi/America/Juneau \
+ zi/America/Kentucky/Louisville \
+ zi/America/Kentucky/Monticello \
+ zi/America/La_Paz \
+ zi/America/Lima \
+ zi/America/Los_Angeles \
+ zi/America/Maceio \
+ zi/America/Managua \
+ zi/America/Manaus \
+ zi/America/Martinique \
+ zi/America/Matamoros \
+ zi/America/Mazatlan \
+ zi/America/Menominee \
+ zi/America/Merida \
+ zi/America/Metlakatla \
+ zi/America/Mexico_City \
+ zi/America/Miquelon \
+ zi/America/Moncton \
+ zi/America/Monterrey \
+ zi/America/Montevideo \
+ zi/America/Montreal \
+ zi/America/Montserrat \
+ zi/America/Nassau \
+ zi/America/New_York \
+ zi/America/Nipigon \
+ zi/America/Nome \
+ zi/America/Noronha \
+ zi/America/North_Dakota/Beulah \
+ zi/America/North_Dakota/Center \
+ zi/America/North_Dakota/New_Salem \
+ zi/America/Ojinaga \
+ zi/America/Panama \
+ zi/America/Pangnirtung \
+ zi/America/Paramaribo \
+ zi/America/Phoenix \
+ zi/America/Port-au-Prince \
+ zi/America/Port_of_Spain \
+ zi/America/Porto_Velho \
+ zi/America/Puerto_Rico \
+ zi/America/Rainy_River \
+ zi/America/Rankin_Inlet \
+ zi/America/Recife \
+ zi/America/Regina \
+ zi/America/Resolute \
+ zi/America/Rio_Branco \
+ zi/America/Santa_Isabel \
+ zi/America/Santarem \
+ zi/America/Santiago \
+ zi/America/Santo_Domingo \
+ zi/America/Sao_Paulo \
+ zi/America/Scoresbysund \
+ zi/America/Sitka \
+ zi/America/St_Johns \
+ zi/America/St_Kitts \
+ zi/America/St_Lucia \
+ zi/America/St_Thomas \
+ zi/America/St_Vincent \
+ zi/America/Swift_Current \
+ zi/America/Tegucigalpa \
+ zi/America/Thule \
+ zi/America/Thunder_Bay \
+ zi/America/Tijuana \
+ zi/America/Toronto \
+ zi/America/Tortola \
+ zi/America/Vancouver \
+ zi/America/Whitehorse \
+ zi/America/Winnipeg \
+ zi/America/Yakutat \
+ zi/America/Yellowknife \
+ zi/Antarctica/Casey \
+ zi/Antarctica/Davis \
+ zi/Antarctica/DumontDUrville \
+ zi/Antarctica/Macquarie \
+ zi/Antarctica/Mawson \
+ zi/Antarctica/McMurdo \
+ zi/Antarctica/Palmer \
+ zi/Antarctica/Rothera \
+ zi/Antarctica/Syowa \
+ zi/Antarctica/Vostok \
+ zi/Asia/Aden \
+ zi/Asia/Almaty \
+ zi/Asia/Amman \
+ zi/Asia/Anadyr \
+ zi/Asia/Aqtau \
+ zi/Asia/Aqtobe \
+ zi/Asia/Ashgabat \
+ zi/Asia/Baghdad \
+ zi/Asia/Bahrain \
+ zi/Asia/Baku \
+ zi/Asia/Bangkok \
+ zi/Asia/Beirut \
+ zi/Asia/Bishkek \
+ zi/Asia/Brunei \
+ zi/Asia/Choibalsan \
+ zi/Asia/Chongqing \
+ zi/Asia/Colombo \
+ zi/Asia/Damascus \
+ zi/Asia/Dhaka \
+ zi/Asia/Dili \
+ zi/Asia/Dubai \
+ zi/Asia/Dushanbe \
+ zi/Asia/Gaza \
+ zi/Asia/Harbin \
+ zi/Asia/Hebron \
+ zi/Asia/Ho_Chi_Minh \
+ zi/Asia/Hong_Kong \
+ zi/Asia/Hovd \
+ zi/Asia/Irkutsk \
+ zi/Asia/Jakarta \
+ zi/Asia/Jayapura \
+ zi/Asia/Jerusalem \
+ zi/Asia/Kabul \
+ zi/Asia/Kamchatka \
+ zi/Asia/Karachi \
+ zi/Asia/Kashgar \
+ zi/Asia/Kathmandu \
+ zi/Asia/Kolkata \
+ zi/Asia/Krasnoyarsk \
+ zi/Asia/Kuala_Lumpur \
+ zi/Asia/Kuching \
+ zi/Asia/Kuwait \
+ zi/Asia/Macau \
+ zi/Asia/Magadan \
+ zi/Asia/Makassar \
+ zi/Asia/Manila \
+ zi/Asia/Muscat \
+ zi/Asia/Nicosia \
+ zi/Asia/Novokuznetsk \
+ zi/Asia/Novosibirsk \
+ zi/Asia/Omsk \
+ zi/Asia/Oral \
+ zi/Asia/Phnom_Penh \
+ zi/Asia/Pontianak \
+ zi/Asia/Pyongyang \
+ zi/Asia/Qatar \
+ zi/Asia/Qyzylorda \
+ zi/Asia/Rangoon \
+ zi/Asia/Riyadh \
+ zi/Asia/Riyadh87 \
+ zi/Asia/Riyadh88 \
+ zi/Asia/Riyadh89 \
+ zi/Asia/Sakhalin \
+ zi/Asia/Samarkand \
+ zi/Asia/Seoul \
+ zi/Asia/Shanghai \
+ zi/Asia/Singapore \
+ zi/Asia/Taipei \
+ zi/Asia/Tashkent \
+ zi/Asia/Tbilisi \
+ zi/Asia/Tehran \
+ zi/Asia/Thimphu \
+ zi/Asia/Tokyo \
+ zi/Asia/Ulaanbaatar \
+ zi/Asia/Urumqi \
+ zi/Asia/Vientiane \
+ zi/Asia/Vladivostok \
+ zi/Asia/Yakutsk \
+ zi/Asia/Yekaterinburg \
+ zi/Asia/Yerevan \
+ zi/Atlantic/Azores \
+ zi/Atlantic/Bermuda \
+ zi/Atlantic/Canary \
+ zi/Atlantic/Cape_Verde \
+ zi/Atlantic/Faroe \
+ zi/Atlantic/Madeira \
+ zi/Atlantic/Reykjavik \
+ zi/Atlantic/South_Georgia \
+ zi/Atlantic/St_Helena \
+ zi/Atlantic/Stanley \
+ zi/Australia/Adelaide \
+ zi/Australia/Brisbane \
+ zi/Australia/Broken_Hill \
+ zi/Australia/Currie \
+ zi/Australia/Darwin \
+ zi/Australia/Eucla \
+ zi/Australia/Hobart \
+ zi/Australia/Lindeman \
+ zi/Australia/Lord_Howe \
+ zi/Australia/Melbourne \
+ zi/Australia/Perth \
+ zi/Australia/Sydney \
+ zi/CET \
+ zi/CST6CDT \
+ zi/EET \
+ zi/EST \
+ zi/EST5EDT \
+ zi/Etc/GMT \
+ zi/Etc/GMT+1 \
+ zi/Etc/GMT+10 \
+ zi/Etc/GMT+11 \
+ zi/Etc/GMT+12 \
+ zi/Etc/GMT+2 \
+ zi/Etc/GMT+3 \
+ zi/Etc/GMT+4 \
+ zi/Etc/GMT+5 \
+ zi/Etc/GMT+6 \
+ zi/Etc/GMT+7 \
+ zi/Etc/GMT+8 \
+ zi/Etc/GMT+9 \
+ zi/Etc/GMT-1 \
+ zi/Etc/GMT-10 \
+ zi/Etc/GMT-11 \
+ zi/Etc/GMT-12 \
+ zi/Etc/GMT-13 \
+ zi/Etc/GMT-14 \
+ zi/Etc/GMT-2 \
+ zi/Etc/GMT-3 \
+ zi/Etc/GMT-4 \
+ zi/Etc/GMT-5 \
+ zi/Etc/GMT-6 \
+ zi/Etc/GMT-7 \
+ zi/Etc/GMT-8 \
+ zi/Etc/GMT-9 \
+ zi/Etc/UCT \
+ zi/Etc/UTC \
+ zi/Europe/Amsterdam \
+ zi/Europe/Andorra \
+ zi/Europe/Athens \
+ zi/Europe/Belgrade \
+ zi/Europe/Berlin \
+ zi/Europe/Brussels \
+ zi/Europe/Bucharest \
+ zi/Europe/Budapest \
+ zi/Europe/Chisinau \
+ zi/Europe/Copenhagen \
+ zi/Europe/Dublin \
+ zi/Europe/Gibraltar \
+ zi/Europe/Helsinki \
+ zi/Europe/Istanbul \
+ zi/Europe/Kaliningrad \
+ zi/Europe/Kiev \
+ zi/Europe/Lisbon \
+ zi/Europe/London \
+ zi/Europe/Luxembourg \
+ zi/Europe/Madrid \
+ zi/Europe/Malta \
+ zi/Europe/Minsk \
+ zi/Europe/Monaco \
+ zi/Europe/Moscow \
+ zi/Europe/Oslo \
+ zi/Europe/Paris \
+ zi/Europe/Prague \
+ zi/Europe/Riga \
+ zi/Europe/Rome \
+ zi/Europe/Samara \
+ zi/Europe/Simferopol \
+ zi/Europe/Sofia \
+ zi/Europe/Stockholm \
+ zi/Europe/Tallinn \
+ zi/Europe/Tirane \
+ zi/Europe/Uzhgorod \
+ zi/Europe/Vaduz \
+ zi/Europe/Vienna \
+ zi/Europe/Vilnius \
+ zi/Europe/Volgograd \
+ zi/Europe/Warsaw \
+ zi/Europe/Zaporozhye \
+ zi/Europe/Zurich \
+ zi/GMT \
+ zi/HST \
+ zi/Indian/Antananarivo \
+ zi/Indian/Chagos \
+ zi/Indian/Christmas \
+ zi/Indian/Cocos \
+ zi/Indian/Comoro \
+ zi/Indian/Kerguelen \
+ zi/Indian/Mahe \
+ zi/Indian/Maldives \
+ zi/Indian/Mauritius \
+ zi/Indian/Mayotte \
+ zi/Indian/Reunion \
+ zi/MET \
+ zi/MST \
+ zi/MST7MDT \
+ zi/PST8PDT \
+ zi/Pacific/Apia \
+ zi/Pacific/Auckland \
+ zi/Pacific/Chatham \
+ zi/Pacific/Chuuk \
+ zi/Pacific/Easter \
+ zi/Pacific/Efate \
+ zi/Pacific/Enderbury \
+ zi/Pacific/Fakaofo \
+ zi/Pacific/Fiji \
+ zi/Pacific/Funafuti \
+ zi/Pacific/Galapagos \
+ zi/Pacific/Gambier \
+ zi/Pacific/Guadalcanal \
+ zi/Pacific/Guam \
+ zi/Pacific/Honolulu \
+ zi/Pacific/Johnston \
+ zi/Pacific/Kiritimati \
+ zi/Pacific/Kosrae \
+ zi/Pacific/Kwajalein \
+ zi/Pacific/Majuro \
+ zi/Pacific/Marquesas \
+ zi/Pacific/Midway \
+ zi/Pacific/Nauru \
+ zi/Pacific/Niue \
+ zi/Pacific/Norfolk \
+ zi/Pacific/Noumea \
+ zi/Pacific/Pago_Pago \
+ zi/Pacific/Palau \
+ zi/Pacific/Pitcairn \
+ zi/Pacific/Pohnpei \
+ zi/Pacific/Port_Moresby \
+ zi/Pacific/Rarotonga \
+ zi/Pacific/Saipan \
+ zi/Pacific/Tahiti \
+ zi/Pacific/Tarawa \
+ zi/Pacific/Tongatapu \
+ zi/Pacific/Wake \
+ zi/Pacific/Wallis \
+ zi/SystemV/AST4 \
+ zi/SystemV/AST4ADT \
+ zi/SystemV/CST6 \
+ zi/SystemV/CST6CDT \
+ zi/SystemV/EST5 \
+ zi/SystemV/EST5EDT \
+ zi/SystemV/HST10 \
+ zi/SystemV/MST7 \
+ zi/SystemV/MST7MDT \
+ zi/SystemV/PST8 \
+ zi/SystemV/PST8PDT \
+ zi/SystemV/YST9 \
+ zi/SystemV/YST9YDT \
+ zi/WET \
+ zi/ZoneInfoMappings
+
+PROFILE_1_JRE_OTHER_FILES := \
+ COPYRIGHT \
+ LICENSE \
+ README \
+ THIRDPARTYLICENSEREADME.txt \
+ Welcome.html \
+ release
+
+PROFILE_1_JRE_JAR_FILES := \
+ ext/localedata.jar \
+ ext/sunjce_provider.jar \
+ jce.jar \
+ jsse.jar \
+ resources.jar \
+ rt.jar \
+ security/US_export_policy.jar \
+ security/local_policy.jar
+
+
+PROFILE_2_JRE_BIN_FILES := \
+ rmid$(EXE_SUFFIX) \
+ rmiregistry$(EXE_SUFFIX)
+
+PROFILE_2_JRE_LIB_FILES :=
+
+PROFILE_2_JRE_OTHER_FILES :=
+
+PROFILE_2_JRE_JAR_FILES :=
+
+
+PROFILE_3_JRE_BIN_FILES :=
+
+PROFILE_3_JRE_LIB_FILES := \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)hprof$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)hprof.diz \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)instrument$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)instrument.diz \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)j2gss$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)j2pcsc$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jaas_unix$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)java_crw_demo$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)java_crw_demo.diz \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jfr$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsdt$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsdt.diz \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)management$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)management.diz \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)sctp$(SHARED_LIBRARY_SUFFIX) \
+ jfr.jar \
+ jvm.hprof.txt \
+ management-agent.jar \
+ management/jmxremote.access \
+ management/jmxremote.password.template \
+ management/management.properties \
+ management/snmp.acl.template
+
+PROFILE_3_JRE_OTHER_FILES :=
+
+PROFILE_3_JRE_JAR_FILES := \
+ jfr.jar \
+ management-agent.jar
+
+
+PROFILE_4_JRE_BIN_FILES := \
+ orbd$(EXE_SUFFIX) \
+ pack200$(EXE_SUFFIX) \
+ policytool$(EXE_SUFFIX) \
+ servertool$(EXE_SUFFIX) \
+ tnameserv$(EXE_SUFFIX) \
+ unpack200$(EXE_SUFFIX)
+
+PROFILE_4_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) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)dcpr$(SHARED_LIBRARY_SUFFIX) \
+ $(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) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsound$(SHARED_LIBRARY_SUFFIX) \
+ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsoundalsa$(SHARED_LIBRARY_SUFFIX) \
+ $(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 \
+ cmm/CIEXYZ.pf \
+ cmm/GRAY.pf \
+ cmm/LINEAR_RGB.pf \
+ cmm/PYCC.pf \
+ cmm/sRGB.pf \
+ ext/cldrdata.jar \
+ ext/dnsns.jar \
+ ext/sunec.jar \
+ ext/sunpkcs11.jar \
+ ext/zipfs.jar \
+ flavormap.properties \
+ fontconfig.RedHat.5.bfc \
+ fontconfig.RedHat.5.properties.src \
+ fontconfig.RedHat.6.bfc \
+ fontconfig.RedHat.6.properties.src \
+ fontconfig.SuSE.10.bfc \
+ fontconfig.SuSE.10.properties.src \
+ fontconfig.SuSE.11.bfc \
+ fontconfig.SuSE.11.properties.src \
+ fontconfig.Turbo.bfc \
+ fontconfig.Turbo.properties.src \
+ fontconfig.bfc \
+ fontconfig.properties.src \
+ fonts/LucidaBrightDemiBold.ttf \
+ fonts/LucidaBrightDemiItalic.ttf \
+ fonts/LucidaBrightItalic.ttf \
+ fonts/LucidaBrightRegular.ttf \
+ fonts/LucidaSansDemiBold.ttf \
+ fonts/LucidaSansRegular.ttf \
+ fonts/LucidaTypewriterBold.ttf \
+ fonts/LucidaTypewriterRegular.ttf \
+ fonts/fonts.dir \
+ images/cursors/cursors.properties \
+ images/cursors/invalid32x32.gif \
+ images/cursors/motif_CopyDrop32x32.gif \
+ images/cursors/motif_CopyNoDrop32x32.gif \
+ images/cursors/motif_LinkDrop32x32.gif \
+ images/cursors/motif_LinkNoDrop32x32.gif \
+ images/cursors/motif_MoveDrop32x32.gif \
+ images/cursors/motif_MoveNoDrop32x32.gif \
+ jexec \
+ oblique-fonts/LucidaSansDemiOblique.ttf \
+ oblique-fonts/LucidaSansOblique.ttf \
+ oblique-fonts/LucidaTypewriterBoldOblique.ttf \
+ oblique-fonts/LucidaTypewriterOblique.ttf \
+ oblique-fonts/fonts.dir \
+ psfont.properties.ja \
+ psfontj2d.properties \
+ servicetag/jdk_header.png \
+ sound.properties
+
+PROFILE_4_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 \
+ man/ja_JP.UTF-8/man1/orbd.1 \
+ man/ja_JP.UTF-8/man1/pack200.1 \
+ man/ja_JP.UTF-8/man1/policytool.1 \
+ man/ja_JP.UTF-8/man1/rmid.1 \
+ man/ja_JP.UTF-8/man1/rmiregistry.1 \
+ man/ja_JP.UTF-8/man1/servertool.1 \
+ man/ja_JP.UTF-8/man1/tnameserv.1 \
+ man/ja_JP.UTF-8/man1/unpack200.1 \
+ man/man1/java.1 \
+ man/man1/javaws.1 \
+ man/man1/keytool.1 \
+ man/man1/orbd.1 \
+ man/man1/pack200.1 \
+ man/man1/policytool.1 \
+ man/man1/rmid.1 \
+ man/man1/rmiregistry.1 \
+ man/man1/servertool.1 \
+ man/man1/tnameserv.1 \
+ man/man1/unpack200.1
+
+PROFILE_4_JRE_JAR_FILES := \
+ alt-rt.jar \
+ charsets.jar \
+ ext/cldrdata.jar \
+ ext/dnsns.jar \
+ ext/sunec.jar \
+ ext/sunpkcs11.jar \
+ ext/zipfs.jar
+
+
--- /dev/null 2012-10-30 13:53:25.609028996 -0400
+++ new/makefiles/profile-rtjar-includes.txt 2013-01-18 01:40:17.278102992 -0500
@@ -0,0 +1,921 @@
+#
+# 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
+# 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.
+#
+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/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 \
+ 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/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
+
+PROFILE_1_RTJAR_INCLUDE_TYPES := \
+ com/sun/security/auth/PrincipalComparator.class
+
+PROFILE_1_RTJAR_EXCLUDE_TYPES :=
+
+PROFILE_1_INCLUDE_METAINF_SERVICES :=
+
+
+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/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 \
+ 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/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/util/xml
+
+PROFILE_2_RTJAR_INCLUDE_TYPES :=
+
+PROFILE_2_RTJAR_EXCLUDE_TYPES :=
+
+PROFILE_2_INCLUDE_METAINF_SERVICES := \
+ 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/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/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 \
+ 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/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
+
+PROFILE_3_RTJAR_INCLUDE_TYPES := \
+ com/sun/security/auth/*.class
+
+PROFILE_3_RTJAR_EXCLUDE_TYPES := \
+ 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
+
+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 \
+ 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/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/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 \
+ com/sun/jndi/url/corbaname \
+ 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/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/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 \
+ 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/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 \
+ 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 \
+ sun/net/www/content/text \
+ sun/net/www/protocol/ftp \
+ 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
+
+PROFILE_4_RTJAR_INCLUDE_TYPES := \
+ com/sun/xml/internal/ws/*.class \
+ javax/annotation/*.class \
+ javax/rmi/*.class
+
+PROFILE_4_RTJAR_EXCLUDE_TYPES :=
+
+PROFILE_4_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 \
+ META-INF/services/javax.print.StreamPrintServiceFactory \
+ META-INF/services/javax.sound.midi.spi.MidiDeviceProvider \
+ META-INF/services/javax.sound.midi.spi.MidiFileReader \
+ META-INF/services/javax.sound.midi.spi.MidiFileWriter \
+ META-INF/services/javax.sound.midi.spi.SoundbankReader \
+ META-INF/services/javax.sound.sampled.spi.AudioFileReader \
+ META-INF/services/javax.sound.sampled.spi.AudioFileWriter \
+ META-INF/services/javax.sound.sampled.spi.FormatConversionProvider \
+ META-INF/services/javax.sound.sampled.spi.MixerProvider \
+ META-INF/services/sun.java2d.cmm.PCMM \
+ META-INF/services/sun.java2d.pipe.RenderingEngine
+
+
--- /dev/null 2012-10-30 13:53:25.609028996 -0400
+++ new/src/share/classes/java/util/jar/UnsupportedProfileException.java 2013-01-18 01:40:19.962252571 -0500
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package java.util.jar;
+
+/**
+ * Thrown to indicate an attempt to access a JAR file with a {@link
+ * Attributes.Name#PROFILE Profile} attribute that names a profile that
+ * is not supported by this runtime.
+ *
+ * @since 1.8
+ */
+public class UnsupportedProfileException extends RuntimeException {
+ private static final long serialVersionUID = -1834773870678792406L;
+
+ /**
+ * Constructs an {@code UnsupportedProfileException} with no detail
+ * message.
+ */
+ public UnsupportedProfileException() {
+ }
+
+ /**
+ * Constructs an {@code UnsupportedProfileException} with the
+ * specified detail message.
+ *
+ * @param message the detail message
+ */
+ public UnsupportedProfileException(String message) {
+ super(message);
+ }
+}
--- /dev/null 2012-10-30 13:53:25.609028996 -0400
+++ new/test/java/lang/SecurityManager/NoAWT.java 2013-01-18 01:40:22.610400145 -0500
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ * @bug 8004502
+ * @summary Sanity check that SecurityManager methods that check AWTPermission
+ * behave as expected when AWT is not present
+ */
+
+public class NoAWT {
+ public static void main(String[] args) {
+ SecurityManager sm = new SecurityManager();
+
+ try {
+ sm.checkAwtEventQueueAccess();
+ throw new RuntimeException("SecurityException expected");
+ } catch (SecurityException expected) { }
+
+ try {
+ sm.checkSystemClipboardAccess();
+ throw new RuntimeException("SecurityException expected");
+ } catch (SecurityException expected) { }
+
+ try {
+ sm.checkTopLevelWindow(null);
+ throw new RuntimeException("NullPointException expected");
+ } catch (NullPointerException expected) { }
+
+ if (sm.checkTopLevelWindow(new Object())) {
+ throw new RuntimeException("checkTopLevelWindow expected to return false");
+ }
+ }
+}
--- /dev/null 2012-10-30 13:53:25.609028996 -0400
+++ new/test/java/net/URLClassLoader/profiles/Basic.java 2013-01-18 01:40:25.354553071 -0500
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2012, 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.
+ *
+ * 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.
+ */
+
+import java.net.*;
+import java.io.File;
+import java.util.jar.*;
+
+/**
+ * Attempts to load classes or resources from a JAR file. The load should succeed
+ * if the runtime supports the profile indicated by the Profile attribute, fail
+ * with UnsupportedProfileException otherwise.
+ */
+
+public class Basic {
+
+ static int indexOf(String profile) {
+ if (profile == null || "compact1".equals(profile)) return 1;
+ if ("compact2".equals(profile)) return 2;
+ if ("compact3".equals(profile)) return 3;
+ if ("".equals(profile)) return 4;
+ return Integer.MAX_VALUE; // unknown profile name
+ }
+
+ public static void main(String[] args) throws Exception {
+ if (args.length < 2)
+ throw new RuntimeException("Usage: java ");
+ String jar = args[0];
+ String cn = args[1];
+
+ File lib = new File(jar);
+ URL url = lib.toURI().toURL();
+ URL urls[] = { url };
+
+ // ## replace this if there is a standard way to determine the profile
+ String thisProfile = sun.misc.Version.profileName();
+
+ String jarProfile = null;
+ try (JarFile jf = new JarFile(lib)) {
+ Manifest manifest = jf.getManifest();
+ if (manifest != null) {
+ Attributes mainAttrs = manifest.getMainAttributes();
+ if (mainAttrs != null) {
+ jarProfile = mainAttrs.getValue(Attributes.Name.PROFILE);
+ }
+ }
+ }
+
+ boolean shouldFail = indexOf(thisProfile) < indexOf(jarProfile);
+
+ try (URLClassLoader cl = new URLClassLoader(urls)) {
+ System.out.format("Loading %s from %s ...%n", cn, jar);
+ Class> c = Class.forName(cn, true, cl);
+ System.out.println(c);
+ if (shouldFail)
+ throw new RuntimeException("UnsupportedProfileException expected");
+ } catch (UnsupportedProfileException x) {
+ if (!shouldFail)
+ throw x;
+ System.out.println("UnsupportedProfileException thrown as expected");
+ }
+
+ try (URLClassLoader cl = new URLClassLoader(urls)) {
+ System.out.format("Loading resource from %s ...%n", jar);
+ URL r = cl.findResource("META-INF/MANIFEST.MF");
+ System.out.println(r);
+ if (shouldFail)
+ throw new RuntimeException("UnsupportedProfileException expected");
+ } catch (UnsupportedProfileException x) {
+ if (!shouldFail)
+ throw x;
+ System.out.println("UnsupportedProfileException thrown as expected");
+ }
+ }
+}
+
--- /dev/null 2012-10-30 13:53:25.609028996 -0400
+++ new/test/java/net/URLClassLoader/profiles/Lib.java 2013-01-18 01:40:28.122707331 -0500
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2012, 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.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package lib;
+
+public class Lib {
+ private Lib() { }
+
+ public static void doSomething() { }
+}
--- /dev/null 2012-10-30 13:53:25.609028996 -0400
+++ new/test/java/net/URLClassLoader/profiles/basic.sh 2013-01-18 01:40:30.906862484 -0500
@@ -0,0 +1,55 @@
+#
+# Copyright (c) 2012, 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.
+#
+# 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.
+#
+
+# @test
+# @bug 8003255
+# @compile -XDignore.symbol.file Basic.java Lib.java
+# @summary Test that UnsupportedProfileException thrown when attempting to
+# load classes or resources from a JAR file with the Profile attribute
+# @run shell basic.sh
+
+if [ -z "$TESTJAVA" ]; then
+ if [ $# -lt 1 ]; then exit 1; fi
+ TESTJAVA=$1; shift
+ COMPILEJAVA=$TESTJAVA
+ TESTSRC=`pwd`
+ TESTCLASSES=`pwd`
+fi
+
+echo "Creating GoodLib.jar ..."
+echo "Profile: compact3" > good.mf
+$COMPILEJAVA/bin/jar cvfm GoodLib.jar good.mf -C $TESTCLASSES lib
+
+echo "Create BadLib.jar ..."
+echo "Profile: badname" > bad.mf
+$COMPILEJAVA/bin/jar cvfm BadLib.jar bad.mf -C $TESTCLASSES lib
+
+# remove classes so that they aren't on the classpath
+rm -rf $TESTCLASSES/lib
+
+echo "Test with GoodLib.jar ..."
+$TESTJAVA/bin/java -cp $TESTCLASSES Basic GoodLib.jar lib.Lib
+
+echo "Test with BadLib.jar ..."
+$TESTJAVA/bin/java -cp $TESTCLASSES Basic BadLib.jar lib.Lib
+
--- /dev/null 2012-10-30 13:53:25.609028996 -0400
+++ new/test/java/security/cert/CertStore/NoLDAP.java 2013-01-18 01:40:34.171044387 -0500
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2012, 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.
+ *
+ * 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.
+ */
+
+/* @test
+ * @bug 8004502
+ * @summary Sanity check that NoSuchAlgorithmException is thrown when requesting
+ * a CertStore of type "LDAP" and LDAP is not available.
+ */
+
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.CertStore;
+import java.security.cert.LDAPCertStoreParameters;
+
+
+public class NoLDAP {
+ public static void main(String[] args) throws Exception {
+ try {
+ Class.forName("javax.naming.ldap.LdapName");
+ System.out.println("LDAP is present, test skipped");
+ return;
+ } catch (ClassNotFoundException ignore) { }
+
+ try {
+ CertStore.getInstance("LDAP", new LDAPCertStoreParameters());
+ throw new RuntimeException("NoSuchAlgorithmException expected");
+ } catch (NoSuchAlgorithmException x) {
+ System.out.println("NoSuchAlgorithmException thrown as expected");
+ }
+ }
+}
--- /dev/null 2012-10-30 13:53:25.609028996 -0400
+++ new/test/java/util/logging/Reflect.java 2013-01-18 01:40:37.115208455 -0500
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2012, 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.
+ *
+ * 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.
+ */
+
+/* @test
+ * @bug 8004931
+ * @summary Invoke getDeclaredMethods on LogManager to ensure that
+ * all types referenced in the method signatures is present.
+ */
+
+import java.util.logging.LogManager;
+import java.lang.reflect.Method;
+
+public class Reflect {
+ static void printMethods(Class> c) {
+ System.out.println(c);
+ for (Method m: c.getDeclaredMethods()) {
+ System.out.println(" " + m);
+ }
+ }
+ public static void main(String[] args) {
+ printMethods(java.util.logging.LogManager.class);
+ printMethods(java.util.logging.LogManager.getLogManager().getClass());
+ }
+}
--- /dev/null 2012-10-30 13:53:25.609028996 -0400
+++ new/test/javax/management/remote/mandatory/connection/NoIIOP.java 2013-01-18 01:40:42.059483984 -0500
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ * @bug 8004502
+ * @summary Sanity check that attempts to use the IIOP transport or
+ * RMIIIOPServerImpl when RMI/IIOP not present throws the expected exceptions
+ */
+
+import javax.management.MBeanServer;
+import javax.management.MBeanServerFactory;
+import javax.management.remote.*;
+import javax.management.remote.rmi.*;
+import java.net.MalformedURLException;
+import java.io.IOException;
+import javax.security.auth.Subject;
+import java.rmi.NoSuchObjectException;
+import javax.management.remote.JMXConnectorFactory;
+import javax.management.remote.JMXConnectorServerFactory;
+
+public class NoIIOP {
+
+ /**
+ * RMIIIOPServerImpl implementation for testing purposes (methods are
+ * overridden to be public to allow for testing)
+ */
+ static class MyRMIIIOPServerImpl extends RMIIIOPServerImpl {
+ MyRMIIIOPServerImpl() throws IOException {
+ super(null);
+ }
+ @Override
+ public void export() throws IOException {
+ super.export();
+ }
+ @Override
+ public String getProtocol() {
+ return super.getProtocol();
+ }
+ @Override
+ public RMIConnection makeClient(String connectionId, Subject subject)
+ throws IOException
+ {
+ return super.makeClient(connectionId, subject);
+ }
+ @Override
+ public void closeClient(RMIConnection client) throws IOException {
+ super.closeClient(client);
+ }
+ @Override
+ public void closeServer() throws IOException {
+ super.closeServer();
+ }
+ }
+
+
+ public static void main(String[] args) throws Exception {
+ try {
+ Class.forName("javax.management.remote.rmi._RMIConnectionImpl_Tie");
+ System.out.println("RMI/IIOP appears to be supported, test skipped");
+ return;
+ } catch (ClassNotFoundException okay) { }
+
+ JMXServiceURL url = new JMXServiceURL("service:jmx:iiop://");
+ MBeanServer mbs = MBeanServerFactory.createMBeanServer();
+
+
+ // test JMXConnectorFactory/JMXConnectorServerFactory
+
+ try {
+ JMXConnectorFactory.connect(url);
+ throw new RuntimeException("connect did not throw MalformedURLException");
+ } catch (MalformedURLException expected) { }
+
+ try {
+ JMXConnectorServerFactory.newJMXConnectorServer(url, null, null);
+ throw new RuntimeException("newJMXConnectorServer did not throw MalformedURLException");
+ } catch (MalformedURLException expected) { }
+
+
+ // test RMIConnector/RMIConnectorServer
+
+ RMIConnector connector = new RMIConnector(url, null);
+ try {
+ connector.connect();
+ throw new RuntimeException("connect did not throw IOException");
+ } catch (IOException expected) { }
+
+ RMIConnectorServer server = new RMIConnectorServer(url, null, mbs);
+ try {
+ server.start();
+ throw new RuntimeException("start did not throw IOException");
+ } catch (IOException expected) { }
+
+
+ // test RMIIIOPServerImpl
+
+ MyRMIIIOPServerImpl impl = new MyRMIIIOPServerImpl();
+ impl.setMBeanServer(mbs);
+ System.out.println(impl.getProtocol());
+
+ try {
+ impl.export();
+ throw new RuntimeException("export did not throw IOException");
+ } catch (IOException expected) { }
+
+ try {
+ impl.newClient(null);
+ throw new RuntimeException("newClient did not throw IOException");
+ } catch (IOException expected) { }
+
+ try {
+ impl.toStub();
+ throw new RuntimeException("toStub did not throw NoSuchObjectException");
+ } catch (NoSuchObjectException expected) { }
+
+ try {
+ impl.closeServer();
+ throw new RuntimeException("closeServer did not throw NoSuchObjectException");
+ } catch (NoSuchObjectException expected) { }
+ }
+}
--- /dev/null 2012-10-30 13:53:25.609028996 -0400
+++ new/test/javax/naming/InitialContext/NoApplet.java 2013-01-18 01:40:44.947644930 -0500
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ * @bug 8004502
+ * @summary Sanity check that specifying the APPLET property when creating an
+ * InitialContext behaves as expected when java.awt.Applet is not present
+ */
+
+import javax.naming.*;
+import java.util.Hashtable;
+
+public class NoApplet {
+ public static void main(String[] args) throws NamingException {
+ Hashtable