This commit is contained in:
Alejandro Murillo 2016-05-26 14:24:50 -07:00
commit 33dc2cac3c
1583 changed files with 110393 additions and 50659 deletions

View File

@ -361,3 +361,5 @@ c84d0cce090e161d736de69e941830adf8c2f87a jdk-9+114
84aba7335005a3a47751dcf1f37935f97df9f99a jdk-9+116
82b8d12a553f5617737c238cec060281d52e351c jdk-9+117
7c04fcb12bd4a31570a238e663fa846dfa5ec3b8 jdk-9+118
caf97b37ebec84288c112d21d3a60cb628cba1e8 jdk-9+119
9330543436402b8f3bd070524846a464d8143557 jdk-9+120

View File

@ -361,3 +361,5 @@ f900d5afd9c83a0df8f36161c27c5e4c86a66f4c jdk-9+111
6743a8e0cab7b5f6f4a0575f6664892f0ab740af jdk-9+116
e882bcdbdac436523f3d5681611d3118a3804ea7 jdk-9+117
047f95de8f918d8ff5e8cd2636a2abb5c3c8adb8 jdk-9+118
3463a3f14f0f0e8a68f29ac6405454f2fa2f598a jdk-9+119
647e0142a5a52749db572b5e6638d561def6479e jdk-9+120

View File

@ -484,6 +484,8 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
BASIC_REQUIRE_PROGS(FILE, file)
BASIC_REQUIRE_PROGS(FIND, find)
BASIC_REQUIRE_PROGS(HEAD, head)
BASIC_REQUIRE_PROGS(GUNZIP, gunzip)
BASIC_REQUIRE_PROGS(GZIP, pigz gzip)
BASIC_REQUIRE_PROGS(LN, ln)
BASIC_REQUIRE_PROGS(LS, ls)
BASIC_REQUIRE_PROGS(MKDIR, mkdir)
@ -496,7 +498,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
BASIC_REQUIRE_PROGS(SH, sh)
BASIC_REQUIRE_PROGS(SORT, sort)
BASIC_REQUIRE_PROGS(TAIL, tail)
BASIC_REQUIRE_PROGS(TAR, tar)
BASIC_REQUIRE_PROGS(TAR, gtar tar)
BASIC_REQUIRE_PROGS(TEE, tee)
BASIC_REQUIRE_PROGS(TOUCH, touch)
BASIC_REQUIRE_PROGS(TR, tr)
@ -839,8 +841,6 @@ AC_DEFUN_ONCE([BASIC_SETUP_OUTPUT_DIR],
# The spec.gmk file contains all variables for the make system.
AC_CONFIG_FILES([$OUTPUT_ROOT/spec.gmk:$AUTOCONF_DIR/spec.gmk.in])
# The hotspot-spec.gmk file contains legacy variables for the hotspot make system.
AC_CONFIG_FILES([$OUTPUT_ROOT/hotspot-spec.gmk:$AUTOCONF_DIR/hotspot-spec.gmk.in])
# The bootcycle-spec.gmk file contains support for boot cycle builds.
AC_CONFIG_FILES([$OUTPUT_ROOT/bootcycle-spec.gmk:$AUTOCONF_DIR/bootcycle-spec.gmk.in])
# The buildjdk-spec.gmk file contains support for building a buildjdk when cross compiling.
@ -1009,11 +1009,36 @@ AC_DEFUN([BASIC_CHECK_FIND_DELETE],
AC_SUBST(FIND_DELETE)
])
AC_DEFUN([BASIC_CHECK_TAR],
[
# Test which kind of tar was found
if test "x$($TAR --version | $GREP "GNU tar")" != "x"; then
TAR_TYPE="gnu"
elif test "x$($TAR -v | $GREP "bsdtar")" != "x"; then
TAR_TYPE="bsd"
elif test "x$OPENJDK_BUILD_OS" = "xsolaris"; then
TAR_TYPE="solaris"
fi
AC_MSG_CHECKING([what type of tar was found])
AC_MSG_RESULT([$TAR_TYPE])
if test "x$TAR_TYPE" = "xgnu"; then
TAR_INCLUDE_PARAM="T"
TAR_SUPPORTS_TRANSFORM="true"
else
TAR_INCLUDE_PARAM="I"
TAR_SUPPORTS_TRANSFORM="false"
fi
AC_SUBST(TAR_INCLUDE_PARAM)
AC_SUBST(TAR_SUPPORTS_TRANSFORM)
])
AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
[
BASIC_CHECK_GNU_MAKE
BASIC_CHECK_FIND_DELETE
BASIC_CHECK_TAR
# These tools might not be installed by default,
# need hint on how to install them.

View File

@ -134,8 +134,9 @@ ifeq ($(JVM_INTERPRETER), cpp)
endif
HOTSPOT_MAKE_ARGS := product docs export_product
# Control wether Hotspot runs Queens test after building
TEST_IN_BUILD := false
# Control wether Hotspot builds gtest tests
BUILD_GTEST := false
USE_PRECOMPILED_HEADER := @USE_PRECOMPILED_HEADER@

View File

@ -48,6 +48,7 @@ export EXPR="@EXPR@"
export FILE="@FILE@"
export FIND="@FIND@"
export GREP="@GREP@"
export GUNZIP="@GUNZIP@"
export LDD="@LDD@"
export LN="@LN@"
export MKDIR="@MKDIR@"
@ -63,10 +64,11 @@ export SED="@SED@"
export SORT="@SORT@"
export STAT="@STAT@"
export STRIP="@STRIP@ @STRIPFLAGS@"
export TAR="@TAR@"
export TEE="@TEE@"
export UNIQ="@UNIQ@"
export UNPACK200="@FIXPATH@ @BOOT_JDK@/bin/unpack200"
export UNARCHIVE="@UNZIP@ -q"
export UNARCHIVE="@UNZIP@ -q -o"
export SRC_ROOT="@TOPDIR@"
export OUTPUT_ROOT="@OUTPUT_ROOT@"

View File

@ -207,6 +207,7 @@ JDKOPT_SETUP_CODE_COVERAGE
# Need toolchain to setup dtrace
HOTSPOT_SETUP_DTRACE
HOTSPOT_SETUP_JVM_FEATURES
HOTSPOT_ENABLE_DISABLE_GTEST
###############################################################################
#
@ -226,9 +227,9 @@ LIB_SETUP_LIBRARIES
#
###############################################################################
HOTSPOT_SETUP_LEGACY_BUILD
JDKOPT_DETECT_INTREE_EC
JDKOPT_ENABLE_DISABLE_FAILURE_HANDLER
JDKOPT_ENABLE_DISABLE_GENERATE_CLASSLIST
###############################################################################
#

File diff suppressed because it is too large Load Diff

View File

@ -1,158 +0,0 @@
#
# Copyright (c) 2011, 2016, 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.
#
# Chaining of spec files
HOTSPOT_SPEC:=$(dir $(SPEC))hotspot-spec.gmk
override SPEC=$(HOTSPOT_SPEC)
# Now include the base spec.gmk file
include $(BASE_SPEC)
# Additional legacy variables defined for Hotspot
@SET_OPENJDK@
@HOTSPOT_SET_WARNINGS_AS_ERRORS@
# Legacy defines controlled by the SUPPORT_HEADLESS and SUPPORT_HEADFUL options.
@BUILD_HEADLESS@
JVM_VARIANTS:=@JVM_VARIANTS_COMMA@
JVM_VARIANT_SERVER:=@JVM_VARIANT_SERVER@
JVM_VARIANT_CLIENT:=@JVM_VARIANT_CLIENT@
JVM_VARIANT_MINIMAL1:=@JVM_VARIANT_MINIMAL1@
JVM_VARIANT_CORE:=@JVM_VARIANT_CORE@
JVM_VARIANT_ZERO:=@JVM_VARIANT_ZERO@
JVM_VARIANT_ZEROSHARK:=@JVM_VARIANT_ZEROSHARK@
JVM_VARIANT_CUSTOM:=@JVM_VARIANT_HOTSPOT@
# Legacy setting: OPT or DBG
VARIANT:=@VARIANT@
# Legacy setting: true or false
FASTDEBUG:=@FASTDEBUG@
# Legacy setting: debugging the class files?
DEBUG_CLASSFILES:=@DEBUG_CLASSFILES@
ALT_CUPS_HEADERS_PATH:=$(patsubst -I%,%,$(filter -I%,@CUPS_CFLAGS@))
# The HOSTCC/HOSTCXX is Hotspot terminology for the BUILD_CC/BUILD_CXX, i.e. the
# compiler that produces code that can be run on the build platform.
HOSTCC:=@FIXPATH@ @BUILD_ICECC@ @BUILD_CC@ $(BUILD_SYSROOT_CFLAGS)
HOSTCXX:=@FIXPATH@ @BUILD_ICECC@ @BUILD_CXX@ $(BUILD_SYSROOT_CFLAGS)
####################################################
#
# Legacy Hotspot support
# If cross compiling, then define CROSS_COMPILE_ARCH:=cpu_name here.
@DEFINE_CROSS_COMPILE_ARCH@
# Old name for OPENJDK_TARGET_OS (aix,bsd,hpux,linux,macosx,solaris,windows etc)
PLATFORM=$(OPENJDK_TARGET_OS)
# 32 or 64 bit
ARCH_DATA_MODEL=$(OPENJDK_TARGET_CPU_BITS)
ALT_BOOTDIR=$(BOOT_JDK)
# Can be /sparcv9 or /amd64 on Solaris
ISA_DIR=$(OPENJDK_TARGET_CPU_ISADIR)
# Yet another name for arch used for an extra subdir below the jvm lib.
# Uses i386 and amd64, instead of x86 and x86_64.
LIBARCH=$(OPENJDK_TARGET_CPU_LEGACY_LIB)
# Set the cpu architecture
ARCH=$(OPENJDK_TARGET_CPU_ARCH)
# Legacy setting for building for a 64 bit machine.
# If yes then this expands to _LP64:=1
@LP64@
# Legacy settings for zero
ZERO_ENDIANNESS=$(OPENJDK_TARGET_CPU_ENDIAN)
ZERO_LIBARCH=$(OPENJDK_TARGET_CPU_LEGACY_LIB)
ZERO_ARCHDEF=@ZERO_ARCHDEF@
ZERO_ARCHFLAG=@ZERO_ARCHFLAG@
LIBFFI_CFLAGS=@LIBFFI_CFLAGS@
LIBFFI_LIBS=@LIBFFI_LIBS@
# Legacy settings for zeroshark
LLVM_CFLAGS=@LLVM_CFLAGS@
LLVM_LIBS=@LLVM_LIBS@
LLVM_LDFLAGS=@LLVM_LDFLAGS@
ALT_OUTPUTDIR=$(HOTSPOT_OUTPUTDIR)
ALT_EXPORT_PATH=$(HOTSPOT_DIST)
ifeq ($(HOTSPOT_TARGET_CPU), zero)
CC_INTERP=true
endif
HOTSPOT_MAKE_ARGS:=@HOTSPOT_MAKE_ARGS@ @STATIC_CXX_SETTING@
# Control wether Hotspot runs Queens test after building
TEST_IN_BUILD=@TEST_IN_BUILD@
USE_CLANG := @USE_CLANG@
# For hotspot, override compiler/tools definition to not include FIXPATH prefix.
# Hotspot has its own handling on the Windows path situation.
CXX:=@CCACHE@ @ICECC@ @HOTSPOT_CXX@
LD:=@HOTSPOT_LD@
MT:=@HOTSPOT_MT@
RC:=@HOTSPOT_RC@
EXTRA_CFLAGS=@LEGACY_EXTRA_CFLAGS@ $(CFLAGS_CCACHE) $(NO_NULL_POINTER_CHECK_FLAG) \
$(NO_LIFETIME_DSE_CFLAG) $(CXXSTD_CXXFLAG)
EXTRA_CXXFLAGS=@LEGACY_EXTRA_CXXFLAGS@ $(CFLAGS_CCACHE)
EXTRA_LDFLAGS=@LEGACY_EXTRA_LDFLAGS@
USE_PRECOMPILED_HEADER=@USE_PRECOMPILED_HEADER@
# Hotspot expects the variable FULL_DEBUG_SYMBOLS=1/0 to control debug symbols
# creation.
ifeq ($(COPY_DEBUG_SYMBOLS), true)
FULL_DEBUG_SYMBOLS=1
# Ensure hotspot uses the objcopy that configure located
ALT_OBJCOPY:=$(OBJCOPY)
else
FULL_DEBUG_SYMBOLS=0
endif
# Hotspot expects the variable ZIP_DEBUGINFO_FILES=1/0 and not true/false.
ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), true)
ZIP_DEBUGINFO_FILES:=1
else
ZIP_DEBUGINFO_FILES:=0
endif
DEBUG_BINARIES := @DEBUG_BINARIES@
STRIP_POLICY := @STRIP_POLICY@
ifeq ($(OPENJDK_TARGET_OS), windows)
# On Windows, the Visual Studio toolchain needs the LIB and INCLUDE
# environment variables (in Windows path style).
export INCLUDE:=@VS_INCLUDE@
export LIB:=@VS_LIB@
endif
# Sneak this in via the spec.gmk file, since we don't want to mess around too much with the Hotspot make files.
# This is needed to get the LOG setting to work properly.
include $(SRC_ROOT)/make/common/MakeBase.gmk

View File

@ -93,7 +93,10 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_VARIANTS],
# Check that the selected variants are valid
# grep filter function inspired by a comment to http://stackoverflow.com/a/1617326
INVALID_VARIANTS=`$GREP -Fvx "${VALID_JVM_VARIANTS// /$'\n'}" <<< "${JVM_VARIANTS// /$'\n'}"`
# Notice that the original variant failes on SLES 10 and 11
NEEDLE=${VALID_JVM_VARIANTS// /$'\n'}
STACK=${JVM_VARIANTS// /$'\n'}
INVALID_VARIANTS=`$GREP -Fvx "${NEEDLE}" <<< "${STACK}"`
if test "x$INVALID_VARIANTS" != x; then
AC_MSG_NOTICE([Unknown variant(s) specified: $INVALID_VARIANTS])
AC_MSG_ERROR([The available JVM variants are: $VALID_JVM_VARIANTS])
@ -101,7 +104,9 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_VARIANTS],
# All "special" variants share the same output directory ("server")
VALID_MULTIPLE_JVM_VARIANTS="server client minimal"
INVALID_MULTIPLE_VARIANTS=`$GREP -Fvx "${VALID_MULTIPLE_JVM_VARIANTS// /$'\n'}" <<< "${JVM_VARIANTS// /$'\n'}"`
NEEDLE=${VALID_MULTIPLE_JVM_VARIANTS// /$'\n'}
STACK=${JVM_VARIANTS// /$'\n'}
INVALID_MULTIPLE_VARIANTS=`$GREP -Fvx "${NEEDLE}" <<< "${STACK}"`
if test "x$INVALID_MULTIPLE_VARIANTS" != x && test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = xtrue; then
AC_MSG_ERROR([You cannot build multiple variants with anything else than $VALID_MULTIPLE_JVM_VARIANTS.])
fi
@ -293,146 +298,51 @@ AC_DEFUN_ONCE([HOTSPOT_VALIDATE_JVM_FEATURES],
features_var_name=JVM_FEATURES_$variant
JVM_FEATURES_TO_TEST=${!features_var_name}
AC_MSG_RESULT([$JVM_FEATURES_TO_TEST])
INVALID_FEATURES=`$GREP -Fvx "${VALID_JVM_FEATURES// /$'\n'}" <<< "${JVM_FEATURES_TO_TEST// /$'\n'}"`
NEEDLE=${VALID_JVM_FEATURES// /$'\n'}
STACK=${JVM_FEATURES_TO_TEST// /$'\n'}
INVALID_FEATURES=`$GREP -Fvx "${NEEDLE}" <<< "${STACK}"`
if test "x$INVALID_FEATURES" != x; then
AC_MSG_ERROR([Invalid JVM feature(s): $INVALID_FEATURES])
fi
done
])
###############################################################################
# Support for old hotspot build. Remove once new hotspot build has proven
# to work satisfactory.
################################################################################
# Check if gtest should be built
#
AC_DEFUN_ONCE([HOTSPOT_SETUP_LEGACY_BUILD],
AC_DEFUN_ONCE([HOTSPOT_ENABLE_DISABLE_GTEST],
[
AC_ARG_ENABLE(new-hotspot-build, [AS_HELP_STRING([--disable-new-hotspot-build],
[disable the new hotspot build system (use the old) @<:@enabled@:>@])])
AC_ARG_ENABLE([hotspot-gtest], [AS_HELP_STRING([--disable-hotspot-gtest],
[Disables building of the Hotspot unit tests])])
if test "x$enable_new_hotspot_build" = "x" || test "x$enable_new_hotspot_build" = "xyes"; then
USE_NEW_HOTSPOT_BUILD=true
else
USE_NEW_HOTSPOT_BUILD=false
fi
AC_SUBST(USE_NEW_HOTSPOT_BUILD)
case $HOTSPOT_DEBUG_LEVEL in
product )
VARIANT="OPT"
FASTDEBUG="false"
DEBUG_CLASSFILES="false"
;;
fastdebug )
VARIANT="DBG"
FASTDEBUG="true"
DEBUG_CLASSFILES="true"
;;
debug )
VARIANT="DBG"
FASTDEBUG="false"
DEBUG_CLASSFILES="true"
;;
optimized )
VARIANT="OPT"
FASTDEBUG="false"
DEBUG_CLASSFILES="false"
;;
esac
AC_SUBST(VARIANT)
AC_SUBST(FASTDEBUG)
AC_SUBST(DEBUG_CLASSFILES)
if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
MACOSX_UNIVERSAL="true"
fi
AC_SUBST(MACOSX_UNIVERSAL)
# Make sure JVM_VARIANTS_COMMA use minimal1 for backwards compatibility
JVM_VARIANTS_COMMA=`$ECHO ,$JVM_VARIANTS_OPT, | $SED -e 's/,minimal,/,minimal1,/'`
JVM_VARIANT_SERVER=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,server,/!s/.*/false/g' -e '/,server,/s/.*/true/g'`
JVM_VARIANT_CLIENT=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,client,/!s/.*/false/g' -e '/,client,/s/.*/true/g'`
JVM_VARIANT_MINIMAL1=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,minimal1\?,/!s/.*/false/g' -e '/,minimal1\?,/s/.*/true/g'`
JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'`
JVM_VARIANT_ZERO=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,zero,/!s/.*/false/g' -e '/,zero,/s/.*/true/g'`
JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'`
JVM_VARIANT_CUSTOM=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,custom,/!s/.*/false/g' -e '/,custom,/s/.*/true/g'`
#####
# Generate the legacy makefile targets for hotspot.
HOTSPOT_TARGET=""
if test "x$JVM_VARIANT_SERVER" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL} "
fi
if test "x$JVM_VARIANT_CLIENT" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}1 "
fi
if test "x$JVM_VARIANT_MINIMAL1" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}minimal1 "
fi
if test "x$JVM_VARIANT_ZERO" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}zero "
fi
if test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}shark "
fi
if test "x$JVM_VARIANT_CORE" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}core "
fi
HOTSPOT_TARGET="$HOTSPOT_TARGET docs export_$HOTSPOT_DEBUG_LEVEL"
# On Macosx universal binaries are produced, but they only contain
# 64 bit intel. This invalidates control of which jvms are built
# from configure, but only server is valid anyway. Fix this
# when hotspot makefiles are rewritten.
if test "x$MACOSX_UNIVERSAL" = xtrue; then
HOTSPOT_TARGET=universal_${HOTSPOT_DEBUG_LEVEL}
fi
HOTSPOT_MAKE_ARGS="$HOTSPOT_TARGET"
AC_SUBST(HOTSPOT_MAKE_ARGS)
# Control wether Hotspot runs Queens test after build.
AC_ARG_ENABLE([hotspot-test-in-build], [AS_HELP_STRING([--enable-hotspot-test-in-build],
[run the Queens test after Hotspot build @<:@disabled@:>@])],,
[enable_hotspot_test_in_build=no])
if test "x$enable_hotspot_test_in_build" = "xyes"; then
TEST_IN_BUILD=true
if test -e "$HOTSPOT_TOPDIR/test/native"; then
GTEST_DIR_EXISTS="true"
else
TEST_IN_BUILD=false
fi
AC_SUBST(TEST_IN_BUILD)
if test "x$USE_NEW_HOTSPOT_BUILD" = xfalse; then
if test "x$JVM_VARIANT_CLIENT" = xtrue; then
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
AC_MSG_ERROR([You cannot build a client JVM for a 64-bit machine.])
fi
fi
if test "x$JVM_VARIANT_MINIMAL1" = xtrue; then
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
AC_MSG_ERROR([You cannot build a minimal JVM for a 64-bit machine.])
fi
fi
if test "x$JVM_VARIANT_CUSTOM" = xtrue; then
AC_MSG_ERROR([You cannot build a custom JVM using the old hotspot build system.])
fi
GTEST_DIR_EXISTS="false"
fi
AC_SUBST(JVM_VARIANTS_COMMA)
AC_SUBST(JVM_VARIANT_SERVER)
AC_SUBST(JVM_VARIANT_CLIENT)
AC_SUBST(JVM_VARIANT_MINIMAL1)
AC_SUBST(JVM_VARIANT_HOTSPOT)
AC_SUBST(JVM_VARIANT_ZERO)
AC_SUBST(JVM_VARIANT_ZEROSHARK)
AC_SUBST(JVM_VARIANT_CORE)
AC_MSG_CHECKING([if Hotspot gtest unit tests should be built])
if test "x$enable_hotspot_gtest" = "xyes"; then
if test "x$GTEST_DIR_EXISTS" = "xtrue"; then
AC_MSG_RESULT([yes, forced])
BUILD_GTEST="true"
else
AC_MSG_ERROR([Cannot build gtest without the test source])
fi
elif test "x$enable_hotspot_gtest" = "xno"; then
AC_MSG_RESULT([no, forced])
BUILD_GTEST="false"
elif test "x$enable_hotspot_gtest" = "x"; then
if test "x$GTEST_DIR_EXISTS" = "xtrue"; then
AC_MSG_RESULT([yes])
BUILD_GTEST="true"
else
AC_MSG_RESULT([no])
BUILD_GTEST="false"
fi
else
AC_MSG_ERROR([--enable-gtest must be either yes or no])
fi
AC_SUBST(BUILD_GTEST)
])

View File

@ -209,9 +209,6 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
if test "x$OPENJDK_TARGET_OS" = xaix ; then
INCLUDE_SA=false
fi
if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
INCLUDE_SA=false
fi
AC_SUBST(INCLUDE_SA)
# Compress jars
@ -494,3 +491,46 @@ AC_DEFUN_ONCE([JDKOPT_ENABLE_DISABLE_FAILURE_HANDLER],
AC_SUBST(BUILD_FAILURE_HANDLER)
])
################################################################################
#
# Enable or disable generation of the classlist at build time
#
AC_DEFUN_ONCE([JDKOPT_ENABLE_DISABLE_GENERATE_CLASSLIST],
[
AC_ARG_ENABLE([generate-classlist], [AS_HELP_STRING([--disable-generate-classlist],
[forces enabling or disabling of the generation of a CDS classlist at build time.
Default is to generate it when either the server or client JVMs are built.])])
# Check if it's likely that it's possible to generate the classlist. Depending
# on exact jvm configuration it could be possible anyway.
if HOTSPOT_CHECK_JVM_VARIANT(server) || HOTSPOT_CHECK_JVM_VARIANT(client); then
ENABLE_GENERATE_CLASSLIST_POSSIBLE="true"
else
ENABLE_GENERATE_CLASSLIST_POSSIBLE="false"
fi
AC_MSG_CHECKING([if the CDS classlist generation should be enabled])
if test "x$enable_generate_classlist" = "xyes"; then
AC_MSG_RESULT([yes, forced])
ENABLE_GENERATE_CLASSLIST="true"
if test "x$ENABLE_GENERATE_CLASSLIST_POSSIBLE" = "xfalse"; then
AC_MSG_WARN([Generation of classlist might not be possible with JVM Variants $JVM_VARIANTS])
fi
elif test "x$enable_generate_classlist" = "xno"; then
AC_MSG_RESULT([no, forced])
ENABLE_GENERATE_CLASSLIST="false"
elif test "x$enable_generate_classlist" = "x"; then
if test "x$ENABLE_GENERATE_CLASSLIST_POSSIBLE" = "xtrue"; then
AC_MSG_RESULT([yes])
ENABLE_GENERATE_CLASSLIST="true"
else
AC_MSG_RESULT([no])
ENABLE_GENERATE_CLASSLIST="false"
fi
else
AC_MSG_ERROR([Invalid value for --enable-generate-classlist: $enable_generate_classlist])
fi
AC_SUBST([ENABLE_GENERATE_CLASSLIST])
])

View File

@ -95,6 +95,7 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
LIB_SETUP_LLVM
LIB_SETUP_BUNDLED_LIBS
LIB_SETUP_MISC_LIBS
LIB_SETUP_SOLARIS_STLPORT
])
################################################################################
@ -189,3 +190,26 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS],
LIBZIP_CAN_USE_MMAP=true
AC_SUBST(LIBZIP_CAN_USE_MMAP)
])
################################################################################
# libstlport.so.1 is needed for running gtest on Solaris. Find it to
# redistribute it in the test image.
################################################################################
AC_DEFUN_ONCE([LIB_SETUP_SOLARIS_STLPORT],
[
if test "$OPENJDK_TARGET_OS" = "solaris"; then
# Find the root of the Solaris Studio installation from the compiler path
SOLARIS_STUDIO_DIR="$(dirname $CC)/.."
STLPORT_LIB="$SOLARIS_STUDIO_DIR/lib/stlport4$OPENJDK_TARGET_CPU_ISADIR/libstlport.so.1"
AC_MSG_CHECKING([for libstlport.so.1])
if test -f "$STLPORT_LIB"; then
AC_MSG_RESULT([yes, $STLPORT_LIB])
BASIC_FIXUP_PATH([STLPORT_LIB])
else
AC_MSG_RESULT([no, not found at $STLPORT_LIB])
AC_MSG_ERROR([Failed to find libstlport.so.1, cannot build Hotspot gtests])
fi
AC_SUBST(STLPORT_LIB)
fi
])

View File

@ -366,6 +366,23 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS_HELPER],
fi
AC_SUBST(OPENJDK_$1_OS_EXPORT_DIR)
# The new version string in JDK 9 also defined new naming of OS and ARCH for bundles
# Macosx is osx and x86_64 is x64
if test "x$OPENJDK_$1_OS" = xmacosx; then
OPENJDK_$1_OS_BUNDLE="osx"
else
OPENJDK_$1_OS_BUNDLE="$OPENJDK_TARGET_OS"
fi
if test "x$OPENJDK_$1_CPU" = xx86_64; then
OPENJDK_$1_CPU_BUNDLE="x64"
else
OPENJDK_$1_CPU_BUNDLE="$OPENJDK_$1_CPU"
fi
OPENJDK_$1_BUNDLE_PLATFORM="${OPENJDK_$1_OS_BUNDLE}-${OPENJDK_$1_CPU_BUNDLE}"
AC_SUBST(OPENJDK_$1_OS_BUNDLE)
AC_SUBST(OPENJDK_$1_CPU_BUNDLE)
AC_SUBST(OPENJDK_$1_BUNDLE_PLATFORM)
if test "x$OPENJDK_$1_CPU_BITS" = x64; then
A_LP64="LP64:="
# -D_LP64=1 is only set on linux and mac. Setting on windows causes diff in

View File

@ -89,6 +89,10 @@ HOTSPOT_TARGET_CPU := @HOTSPOT_TARGET_CPU@
HOTSPOT_TARGET_CPU_ARCH := @HOTSPOT_TARGET_CPU_ARCH@
HOTSPOT_TARGET_CPU_DEFINE := @HOTSPOT_TARGET_CPU_DEFINE@
OPENJDK_TARGET_CPU_BUNDLE:=@OPENJDK_TARGET_CPU_BUNDLE@
OPENJDK_TARGET_OS_BUNDLE:=@OPENJDK_TARGET_OS_BUNDLE@
OPENJDK_TARGET_BUNDLE_PLATFORM:=@OPENJDK_TARGET_BUNDLE_PLATFORM@
# We are building on this build system.
# When not cross-compiling, it is the same as the target.
OPENJDK_BUILD_OS:=@OPENJDK_BUILD_OS@
@ -232,6 +236,9 @@ JVM_FEATURES_custom := @JVM_FEATURES_custom@
VALID_JVM_FEATURES := @VALID_JVM_FEATURES@
VALID_JVM_VARIANTS := @VALID_JVM_VARIANTS@
# Control wether Hotspot builds gtest tests
BUILD_GTEST := @BUILD_GTEST@
# Control use of precompiled header in hotspot libjvm build
USE_PRECOMPILED_HEADER := @USE_PRECOMPILED_HEADER@
@ -265,6 +272,7 @@ BUILDTOOLS_OUTPUTDIR=$(BUILD_OUTPUT)/buildtools
HOTSPOT_OUTPUTDIR=$(BUILD_OUTPUT)/hotspot
JDK_OUTPUTDIR=$(BUILD_OUTPUT)/jdk
IMAGES_OUTPUTDIR=$(BUILD_OUTPUT)/images
BUNDLES_OUTPUTDIR=$(BUILD_OUTPUT)/bundles
TESTMAKE_OUTPUTDIR=$(BUILD_OUTPUT)/test-make
MAKESUPPORT_OUTPUTDIR=$(BUILD_OUTPUT)/make-support
# This does not get overridden in a bootcycle build
@ -277,6 +285,8 @@ BUILD_HOTSPOT=@BUILD_HOTSPOT@
BUILD_FAILURE_HANDLER := @BUILD_FAILURE_HANDLER@
ENABLE_GENERATE_CLASSLIST := @ENABLE_GENERATE_CLASSLIST@
# The boot jdk to use. This is overridden in bootcycle-spec.gmk. Make sure to keep
# it in sync.
BOOT_JDK:=@BOOT_JDK@
@ -629,6 +639,7 @@ ECHO:=@ECHO@
EGREP:=@EGREP@
FGREP:=@FGREP@
GREP:=@GREP@
GZIP:=@GZIP@
HEAD:=@HEAD@
LS:=@LS@
LN:=@LN@
@ -676,6 +687,9 @@ XCODEBUILD=@XCODEBUILD@
DTRACE := @DTRACE@
FIXPATH:=@FIXPATH@
TAR_INCLUDE_PARAM:=@TAR_INCLUDE_PARAM@
TAR_SUPPORTS_TRANSFORM:=@TAR_SUPPORTS_TRANSFORM@
# Build setup
ENABLE_JFR=@ENABLE_JFR@
ENABLE_INTREE_EC=@ENABLE_INTREE_EC@
@ -685,6 +699,7 @@ USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@
LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@
MSVCR_DLL:=@MSVCR_DLL@
MSVCP_DLL:=@MSVCP_DLL@
STLPORT_LIB:=@STLPORT_LIB@
####################################################
#
@ -781,11 +796,46 @@ SYMBOLS_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(SYMBOLS_IMAGE_SUBDIR)
# Interim image
INTERIM_IMAGE_DIR := $(SUPPORT_OUTPUTDIR)/interim-image
# Docs image
DOCS_IMAGE_SUBDIR := docs
DOCS_IMAGE_DIR := $(IMAGES_OUTPUTDIR)/$(DOCS_IMAGE_SUBDIR)
# Macosx bundles directory definitions
JDK_MACOSX_BUNDLE_SUBDIR=jdk-bundle/jdk-$(VERSION_NUMBER).jdk/Contents
JRE_MACOSX_BUNDLE_SUBDIR=jre-bundle/jre-$(VERSION_NUMBER).jre/Contents
JDK_MACOSX_BUNDLE_SUBDIR=jdk-bundle
JRE_MACOSX_BUNDLE_SUBDIR=jre-bundle
JDK_MACOSX_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_MACOSX_BUNDLE_SUBDIR)
JRE_MACOSX_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_MACOSX_BUNDLE_SUBDIR)
JDK_MACOSX_CONTENTS_SUBDIR=jdk-$(VERSION_NUMBER).jdk/Contents
JRE_MACOSX_CONTENTS_SUBDIR=jre-$(VERSION_NUMBER).jre/Contents
JDK_MACOSX_CONTENTS_DIR=$(JDK_MACOSX_BUNDLE_DIR)/$(JDK_MACOSX_CONTENTS_SUBDIR)
JRE_MACOSX_CONTENTS_DIR=$(JRE_MACOSX_BUNDLE_DIR)/$(JRE_MACOSX_CONTENTS_SUBDIR)
# Bundle names
BASE_NAME := $(VERSION_SHORT)+$(VERSION_BUILD)_$(OPENJDK_TARGET_BUNDLE_PLATFORM)
ifeq ($(DEBUG_LEVEL), fastdebug)
DEBUG_PART := -debug
else ifneq ($(DEBUG_LEVEL), release)
DEBUG_PART := -$(DEBUG_LEVEL)
endif
JDK_BUNDLE_NAME := jdk-$(BASE_NAME)_bin$(DEBUG_PART).tar.gz
JRE_BUNDLE_NAME := jre-$(BASE_NAME)_bin$(DEBUG_PART).tar.gz
JDK_SYMBOLS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin$(DEBUG_PART)-symbols.tar.gz
JRE_SYMBOLS_BUNDLE_NAME := jre-$(BASE_NAME)_bin$(DEBUG_PART)-symbols.tar.gz
ifeq ($(OPENJDK_TARGET_OS), windows)
DEMOS_BUNDLE_NAME := jdk-$(BASE_NAME)_demo$(DEBUG_PART).zip
else
DEMOS_BUNDLE_NAME := jdk-$(BASE_NAME)_demo$(DEBUG_PART).tar.gz
endif
TEST_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-tests$(DEBUG_PART).tar.gz
DOCS_BUNDLE_NAME := jdk-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz
JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_BUNDLE_NAME)
JRE_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JRE_BUNDLE_NAME)
JDK_SYMBOLS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_SYMBOLS_BUNDLE_NAME)
JRE_SYMBOLS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JRE_SYMBOLS_BUNDLE_NAME)
DEMOS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DEMOS_BUNDLE_NAME)
TEST_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(TEST_BUNDLE_NAME)
DOCS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(DOCS_BUNDLE_NAME)
# This macro is called to allow inclusion of closed source counterparts.
# Unless overridden in closed sources, it expands to nothing.

View File

@ -274,14 +274,19 @@ compare_file_types() {
$MKDIR -p $WORK_DIR
FILE_TYPES_FILTER="$SED \
-e 's/BuildID[^,]*//' \
-e 's/last modified: .*//' \
"
echo -n File types...
found=""
for f in `cd $OTHER_DIR && $FIND . ! -type d`
do
if [ ! -f ${OTHER_DIR}/$f ]; then continue; fi
if [ ! -f ${THIS_DIR}/$f ]; then continue; fi
OF=`cd ${OTHER_DIR} && $FILE -h $f | $SED 's/BuildID[^,]*//g'`
TF=`cd ${THIS_DIR} && $FILE -h $f | $SED 's/BuildID[^,]*//g'`
OF=$(cd ${OTHER_DIR} && $FILE -h $f | eval $FILE_TYPES_FILTER)
TF=$(cd ${THIS_DIR} && $FILE -h $f | eval $FILE_TYPES_FILTER)
if [ "$OF" != "$TF" ]
then
if [ "`echo $OF | $GREP -c 'Zip archive data'`" -gt 0 ] \
@ -320,7 +325,7 @@ compare_general_files() {
! -name "*.obj" ! -name "*.o" ! -name "JavaControlPanelHelper" \
! -name "JavaUpdater" ! -name "JavaWSApplicationStub" \
! -name "jspawnhelper" ! -name "JavawsLauncher" ! -name "*.a" \
! -name "finish_installation" ! -name "Sparkle" \
! -name "finish_installation" ! -name "Sparkle" ! -name "*.tar.gz" \
| $GREP -v "./bin/" | $SORT | $FILTER)
echo Other files with binary differences...
@ -423,6 +428,10 @@ compare_zip_file() {
then
(cd $THIS_UNZIPDIR && $UNARCHIVE $THIS_ZIP)
(cd $OTHER_UNZIPDIR && $UNARCHIVE $OTHER_ZIP)
elif [ "$TYPE" = "gz" ]
then
(cd $THIS_UNZIPDIR && $GUNZIP -c $THIS_ZIP | $TAR xf -)
(cd $OTHER_UNZIPDIR && $GUNZIP -c $OTHER_ZIP | $TAR xf -)
else
(cd $THIS_UNZIPDIR && $JIMAGE extract $THIS_ZIP)
(cd $OTHER_UNZIPDIR && $JIMAGE extract $OTHER_ZIP)
@ -526,10 +535,11 @@ compare_all_zip_files() {
OTHER_DIR=$2
WORK_DIR=$3
ZIPS=$(cd $THIS_DIR && $FIND . -type f -name "*.zip" | $SORT | $FILTER )
ZIPS=$(cd $THIS_DIR && $FIND . -type f -name "*.zip" -o -name "*.tar.gz" \
| $SORT | $FILTER )
if [ -n "$ZIPS" ]; then
echo Zip files...
echo Zip/tar.gz files...
return_value=0
for f in $ZIPS; do
@ -913,7 +923,7 @@ compare_bin_file() {
FULLDUMP_MSG=" "
DIFF_FULLDUMP=
if [[ "$KNOWN_FULLDUMP_DIFF $ACCEPTED_FULLDUMP_DIFF" = *"$BIN_FILE"* ]]; then
FULLDUMP_MSG=" ! "
FULLDUMP_MSG=" ! "
fi
fi
fi

View File

@ -155,6 +155,14 @@ addBuildDir() {
printf "%s\n" "$mn" >> $IDEA_ANT
}
JTREG_HOME=" <property name=\"jtreg.home\" value=\"####\" />"
addJtregHome() {
DIR=`dirname $SPEC`
mn="`echo "$JTREG_HOME" | sed -e s@"\(.*\)####\(.*\)"@"\1$JT_HOME\2"@`"
printf "%s\n" "$mn" >> $IDEA_ANT
}
### Generate ant.xml
rm -f $IDEA_ANT
@ -162,6 +170,8 @@ while IFS= read -r line
do
if echo "$line" | egrep "^ .* <property name=\"module.name\"" > /dev/null ; then
addModuleName
elif echo "$line" | egrep "^ .* <property name=\"jtreg.home\"" > /dev/null ; then
addJtregHome
elif echo "$line" | egrep "^ .* <property name=\"build.target.dir\"" > /dev/null ; then
addBuildDir
else

View File

@ -215,11 +215,11 @@ var getJibProfilesCommon = function (input) {
var common = {};
common.dependencies = ["boot_jdk", "gnumake", "jtreg"],
common.default_make_targets = ["product-images", "test-image"],
common.default_make_targets = ["product-bundles", "test-bundles"],
common.default_make_targets_debug = common.default_make_targets;
common.default_make_targets_slowdebug = common.default_make_targets;
common.configure_args = ["--enable-jtreg-failure-handler"],
common.configure_args_32bit = ["--with-target-bits=32", "--with-jvm-variants=client,server"],
common.configure_args_32bit = ["--with-target-bits=32"],
common.configure_args_debug = ["--enable-debug"],
common.configure_args_slowdebug = ["--with-debug-level=slowdebug"],
common.organization = "jpg.infra.builddeps"
@ -245,7 +245,7 @@ var getJibProfilesProfiles = function (input, common) {
target_cpu: "x64",
dependencies: concat(common.dependencies, "devkit"),
configure_args: concat(common.configure_args, "--with-zlib=system"),
default_make_targets: concat(common.default_make_targets, "docs-image")
default_make_targets: concat(common.default_make_targets, "docs-bundles")
},
"linux-x86": {
@ -254,7 +254,7 @@ var getJibProfilesProfiles = function (input, common) {
build_cpu: "x64",
dependencies: concat(common.dependencies, "devkit"),
configure_args: concat(common.configure_args, common.configure_args_32bit,
"--with-zlib=system"),
"--with-jvm-variants=minimal,client,server", "--with-zlib=system"),
default_make_targets: common.default_make_targets
},
@ -295,7 +295,8 @@ var getJibProfilesProfiles = function (input, common) {
target_cpu: "x86",
build_cpu: "x64",
dependencies: concat(common.dependencies, "devkit", "freetype"),
configure_args: concat(common.configure_args, common.configure_args_32bit),
configure_args: concat(common.configure_args,
"--with-jvm-variants=client,server", common.configure_args_32bit),
default_make_targets: common.default_make_targets
}
};

View File

@ -361,3 +361,5 @@ cc30faa2da498c478e89ab062ff160653ca1b170 jdk-9+113
7dfa7377a5e601b8f740741a9a80e04c72dd04d6 jdk-9+116
7a1b36bf2fe55a9a7732489ccdd326c910329a7e jdk-9+117
8c2c2d17f7ce92a31c9ccb44a122ec62f5a85ace jdk-9+118
daf533920b1266603b5cbdab31908d2a931c5361 jdk-9+119
5943b791e131e79b969d4cea053aecda34801723 jdk-9+120

View File

@ -522,3 +522,4 @@ b64432bae5271735fd53300b2005b713e98ef411 jdk-9+114
88170d3642905b9e6cac03e8efcc976885a7e6da jdk-9+117
9b1075cac08dc836ec32e7b368415cbe3aceaf8c jdk-9+118
15f3fe264872766bcb205696198f0c1502420e17 jdk-9+119
0be6f4f5d18671184e62583668cb1d783dffa128 jdk-9+120

View File

@ -306,7 +306,10 @@ ifdef TESTDIRS
endif
ifdef CONCURRENCY
EXTRA_JTREG_OPTIONS += -concurrency:$(CONCURRENCY)
JTREG_BASIC_OPTIONS += -concurrency:$(CONCURRENCY)
endif
ifdef EXTRA_JTREG_OPTIONS
JTREG_BASIC_OPTIONS += $(EXTRA_JTREG_OPTIONS)
endif
# Default JTREG to run
@ -326,8 +329,6 @@ JTREG_BASIC_OPTIONS += $(JTREG_IGNORE_OPTION)
# Multiply by 4 the timeout factor
JTREG_TIMEOUT_OPTION = -timeoutFactor:4
JTREG_BASIC_OPTIONS += $(JTREG_TIMEOUT_OPTION)
# Add any extra options
JTREG_BASIC_OPTIONS += $(EXTRA_JTREG_OPTIONS)
# Set other vm and test options
JTREG_TEST_OPTIONS = $(JAVA_ARGS:%=-javaoptions:%) $(JAVA_OPTIONS:%=-vmoption:%) $(JAVA_VM_ARGS:%=-vmoption:%)

View File

@ -0,0 +1,85 @@
/*
* Copyright (c) 2016, 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
* @summary a jtreg wrapper for gtest tests
* @library /test/lib/share/classes
* @modules java.base/jdk.internal.misc
* @run main/native GTestWrapper
*/
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
import java.util.stream.Collectors;
import java.nio.file.Paths;
import java.nio.file.Path;
import jdk.test.lib.Platform;
import jdk.test.lib.Utils;
import jdk.test.lib.process.ProcessTools;
import jdk.test.lib.process.OutputAnalyzer;
public class GTestWrapper {
public static void main(String[] args) throws Throwable {
// gtestLauncher is located in <test_image>/hotspot/gtest/<vm_variant>/
// nativePath points either to <test_image>/hotspot/jtreg/native or to <test_image>/hotspot/gtest
Path nativePath = Paths.get(System.getProperty("test.nativepath"));
String jvmVariantDir = getJVMVariantSubDir();
// let's assume it's <test_image>/hotspot/gtest
Path path = nativePath.resolve(jvmVariantDir);
if (!path.toFile().exists()) {
// maybe it is <test_image>/hotspot/jtreg/native
path = nativePath.getParent()
.getParent()
.resolve("gtest")
.resolve(jvmVariantDir);
}
if (!path.toFile().exists()) {
throw new Error("TESTBUG: the library has not been found in " + nativePath);
}
path = path.resolve("gtestLauncher" + (Platform.isWindows() ? ".exe" : ""));
Stream<String> launcherArgs = Stream.of(path.toString(), "-jdk",
System.getProperty("test.jdk"));
// JVM accepts only -X and -D flags
Stream<String> vmFLags = Arrays.stream(Utils.getTestJavaOpts())
.filter(s -> s.startsWith("-X") || s.startsWith("-D"));
String[] cmds = Stream.concat(launcherArgs, vmFLags)
.toArray(String[]::new);
ProcessTools.executeCommand(cmds).shouldHaveExitValue(0);
}
private static String getJVMVariantSubDir() {
if (Platform.isServer()) {
return "server";
} else if (Platform.isClient()) {
return "client";
} else if (Platform.isMinimal()) {
return "minimal";
} else {
throw new Error("TESTBUG: unsuppported vm variant");
}
}
}

View File

@ -103,7 +103,7 @@ public class CheckRead {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to differing class loaders for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -103,7 +103,7 @@ public class DiffCL_CheckRead {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to differing class loaders for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -105,7 +105,7 @@ public class DiffCL_ExpQualOther {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to differing class loaders for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -91,7 +91,7 @@ public class DiffCL_ExpQualToM1 {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to differing class loaders for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -92,7 +92,7 @@ public class DiffCL_ExpUnqual {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to differing class loaders for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -91,7 +91,7 @@ public class DiffCL_PkgNotExp {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to differing class loaders for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -92,7 +92,7 @@ public class DiffCL_Umod {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
MyDiffClassLoader.loader1 = new MyDiffClassLoader();
MyDiffClassLoader.loader2 = new MyDiffClassLoader();
@ -141,7 +141,7 @@ public class DiffCL_Umod {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
MyDiffClassLoader.loader1 = new MyDiffClassLoader();
MyDiffClassLoader.loader2 = new MyDiffClassLoader();
@ -190,7 +190,7 @@ public class DiffCL_Umod {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
MyDiffClassLoader.loader1 = new MyDiffClassLoader();
MyDiffClassLoader.loader2 = new MyDiffClassLoader();

View File

@ -87,7 +87,7 @@ public class DiffCL_UmodUpkg {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
MyDiffClassLoader.loader1 = new MyDiffClassLoader();
MyDiffClassLoader.loader2 = new MyDiffClassLoader();
@ -136,7 +136,7 @@ public class DiffCL_UmodUpkg {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
MyDiffClassLoader.loader1 = new MyDiffClassLoader();
MyDiffClassLoader.loader2 = new MyDiffClassLoader();

View File

@ -105,7 +105,7 @@ public class ExpQualOther {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to differing class loaders for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -81,7 +81,7 @@ public class ExpQualToM1 {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to the same class loader for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -81,7 +81,7 @@ public class ExpUnqual {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to the same class loader for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -93,7 +93,7 @@ public class ExportAllUnnamed {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to differing class loaders for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -91,7 +91,7 @@ public class PkgNotExp {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to the same class loader for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -92,7 +92,7 @@ public class Umod {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map module m1 to class loader.
// class c2 will be loaded in an unnamed module/loader.
@ -138,7 +138,7 @@ public class Umod {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
MySameClassLoader loader = new MySameClassLoader();
// map module m1 to class loader.
@ -184,7 +184,7 @@ public class Umod {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
MySameClassLoader loader = new MySameClassLoader();
// map module m1 to class loader.

View File

@ -92,7 +92,7 @@ public class UmodDiffCL_ExpQualOther {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to differing class loaders for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -92,7 +92,7 @@ public class UmodDiffCL_ExpUnqual {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to differing class loaders for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -91,7 +91,7 @@ public class UmodDiffCL_PkgNotExp {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to differing class loaders for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -87,7 +87,7 @@ public class UmodUPkg {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map module m1 to class loader.
// class c4 will be loaded in an unnamed module/loader.
@ -133,7 +133,7 @@ public class UmodUPkg {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
MySameClassLoader loader = new MySameClassLoader();
// map module m1 to class loader.

View File

@ -92,7 +92,7 @@ public class UmodUpkgDiffCL_ExpQualOther {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to differing class loaders for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -91,7 +91,7 @@ public class UmodUpkgDiffCL_NotExp {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to differing class loaders for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -101,7 +101,7 @@ public class UmodUpkg_ExpQualOther {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to differing class loaders for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -89,7 +89,7 @@ public class UmodUpkg_NotExp {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to the same class loader for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -101,7 +101,7 @@ public class Umod_ExpQualOther {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to differing class loaders for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -91,7 +91,7 @@ public class Umod_ExpUnqual {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to differing class loaders for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -89,7 +89,7 @@ public class Umod_PkgNotExp {
// Resolves "m1"
Configuration cf = Layer.boot()
.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of("m1"));
.resolveRequires(finder, ModuleFinder.of(), Set.of("m1"));
// map each module to the same class loader for this test
Map<String, ClassLoader> map = new HashMap<>();

View File

@ -361,3 +361,5 @@ bdbf2342b21bd8ecad1b4e6499a0dfb314952bd7 jdk-9+103
9d71d20e614777cd23c1a43b38b5c08a9094d27a jdk-9+116
46b57560cd06ebcdd21489250628ff5f9d9d8916 jdk-9+117
a8aa25fc6c5fda0ed7a93b8ffee62da326a752fc jdk-9+118
f92e8518bb34a9628b11e662bf7308561a55eb3b jdk-9+119
ecbe72546137cd29cb73d4dcc81cc099e847d543 jdk-9+120

View File

@ -427,7 +427,7 @@ public final class TemplatesImpl implements Templates, Serializable {
Layer bootLayer = Layer.boot();
Configuration cf = bootLayer.configuration()
.resolveRequires(finder, ModuleFinder.empty(), Set.of(mn));
.resolveRequires(finder, ModuleFinder.of(), Set.of(mn));
PrivilegedAction<Layer> pa = () -> bootLayer.defineModules(cf, name -> loader);
Layer layer = AccessController.doPrivileged(pa);

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2016, 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
@ -56,7 +56,7 @@ final class CatalogResolverImpl implements CatalogResolver {
publicId = Normalizer.normalizePublicId(Normalizer.decodeURN(Util.getNotNullOrEmpty(publicId)));
//check whether systemId is an urn
if (systemId != null && systemId.startsWith("urn:publicid:")) {
if (systemId != null && systemId.startsWith(Util.URN)) {
systemId = Normalizer.decodeURN(systemId);
if (publicId != null && !publicId.equals(systemId)) {
systemId = null;
@ -67,7 +67,7 @@ final class CatalogResolverImpl implements CatalogResolver {
}
CatalogImpl c = (CatalogImpl)catalog;
String resolvedSystemId = resolve(c, publicId, systemId);
String resolvedSystemId = Util.resolve(c, publicId, systemId);
if (resolvedSystemId != null) {
return new InputSource(resolvedSystemId);
@ -86,55 +86,4 @@ final class CatalogResolverImpl implements CatalogResolver {
return null;
}
/**
* Resolves the publicId or systemId using public or system entries in the catalog.
*
* The resolution follows the following rules determined by the prefer setting:
*
* prefer "system": attempts to resolve with a system entry;
* attempts to resolve with a public entry when only
* publicId is specified.
*
* prefer "public": attempts to resolve with a system entry;
* attempts to resolve with a public entry if no matching
* system entry is found.
* @param catalog the catalog
* @param publicId the publicId
* @param systemId the systemId
* @return the resolved systemId if a match is found, null otherwise
*/
String resolve(CatalogImpl catalog, String publicId, String systemId) {
String resolvedSystemId = null;
//search the current catalog
catalog.reset();
if (systemId != null) {
/*
If a system identifier is specified, it is used no matter how
prefer is set.
*/
resolvedSystemId = catalog.matchSystem(systemId);
}
if (resolvedSystemId == null && publicId != null) {
resolvedSystemId = catalog.matchPublic(publicId);
}
//mark the catalog as having been searched before trying alternatives
catalog.markAsSearched();
//search alternative catalogs
if (resolvedSystemId == null) {
Iterator<Catalog> iter = catalog.catalogs().iterator();
while (iter.hasNext()) {
resolvedSystemId = resolve((CatalogImpl)iter.next(), publicId, systemId);
if (resolvedSystemId != null) {
break;
}
}
}
return resolvedSystemId;
}
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2016, 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
@ -65,18 +65,30 @@ final class CatalogUriResolverImpl implements CatalogUriResolver {
if (href == null) return null;
String result = null;
CatalogImpl c = (CatalogImpl)catalog;
String uri = Normalizer.normalizeURI(href);
String result;
//remove fragment if any.
int hashPos = uri.indexOf("#");
if (hashPos >= 0) {
uri = uri.substring(0, hashPos);
//check whether uri is an urn
if (uri != null && uri.startsWith(Util.URN)) {
String publicId = Normalizer.decodeURN(uri);
if (publicId != null) {
result = Util.resolve(c, publicId, null);
}
}
//search the current catalog
result = resolve(c, uri);
//if no match with a public id, continue search for an URI
if (result == null) {
//remove fragment if any.
int hashPos = uri.indexOf("#");
if (hashPos >= 0) {
uri = uri.substring(0, hashPos);
}
//search the current catalog
result = resolve(c, uri);
}
//Report error or return the URI as is when no match is found
if (result == null) {
GroupEntry.ResolveType resolveType = c.getResolve();
switch (resolveType) {

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2016, 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
@ -298,6 +298,9 @@ class GroupEntry extends BaseEntry {
case PUBLIC:
match = ((PublicEntry) entry).match(publicId);
break;
case URI:
match = ((UriEntry) entry).match(publicId);
break;
case GROUP:
match = ((GroupEntry) entry).matchPublic(publicId);
break;

View File

@ -100,7 +100,7 @@ class Normalizer {
} catch (UnsupportedEncodingException ex) {
CatalogMessages.reportRunTimeError(CatalogMessages.ERR_OTHER, ex);
}
return "urn:publicid:" + urn;
return Util.URN + urn;
}
/**
@ -114,7 +114,7 @@ class Normalizer {
static String decodeURN(String urn) {
String publicId;
if (urn != null && urn.startsWith("urn:publicid:")) {
if (urn != null && urn.startsWith(Util.URN)) {
publicId = urn.substring(13);
} else {
return urn;

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2016, 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
@ -52,7 +52,11 @@ final class UriEntry extends BaseEntry {
*/
public void setName(String name) {
CatalogMessages.reportNPEOnNull("name", name);
this.name = Normalizer.normalizeURI(name);
if (name.startsWith(Util.PUBLICID_PREFIX) || name.startsWith(Util.PUBLICID_PREFIX_ALT)) {
this.name = Normalizer.normalizePublicId(name);
} else {
this.name = Normalizer.normalizeURI(name);
}
}
/**
@ -72,6 +76,7 @@ final class UriEntry extends BaseEntry {
public String getName() {
return name;
}
/**
* Get the uri attribute.
* @return The uri attribute value.

View File

@ -31,6 +31,7 @@ import java.net.URISyntaxException;
import java.net.URL;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Iterator;
import jdk.xml.internal.SecuritySupport;
/**
@ -38,6 +39,61 @@ import jdk.xml.internal.SecuritySupport;
* @since 9
*/
class Util {
final static String URN = "urn:publicid:";
final static String PUBLICID_PREFIX = "-//";
final static String PUBLICID_PREFIX_ALT = "+//";
/**
* Finds an entry in the catalog that matches with the publicId or systemId.
*
* The resolution follows the following rules determined by the prefer setting:
*
* prefer "system": attempts to resolve with a system entry;
* attempts to resolve with a public entry when only
* publicId is specified.
*
* prefer "public": attempts to resolve with a system entry;
* attempts to resolve with a public entry if no matching
* system entry is found.
* @param catalog the catalog
* @param publicId the publicId
* @param systemId the systemId
* @return the resolved systemId if a match is found, null otherwise
*/
static String resolve(CatalogImpl catalog, String publicId, String systemId) {
String resolvedSystemId = null;
//search the current catalog
catalog.reset();
if (systemId != null) {
/*
If a system identifier is specified, it is used no matter how
prefer is set.
*/
resolvedSystemId = catalog.matchSystem(systemId);
}
if (resolvedSystemId == null && publicId != null) {
resolvedSystemId = catalog.matchPublic(publicId);
}
//mark the catalog as having been searched before trying alternatives
catalog.markAsSearched();
//search alternative catalogs
if (resolvedSystemId == null) {
Iterator<Catalog> iter = catalog.catalogs().iterator();
while (iter.hasNext()) {
resolvedSystemId = resolve((CatalogImpl)iter.next(), publicId, systemId);
if (resolvedSystemId != null) {
break;
}
}
}
return resolvedSystemId;
}
/**
* Resolves the specified file path to an absolute systemId. If it is

View File

@ -4,9 +4,9 @@
</head>
<body bgcolor="white">
Provides the interfaces for the Document Object Model (DOM). Supports the
<a href="http://www.w3.org/TR/DOM-Level-2-Core/">Document Object Model Level 2 Core APIi</a>,
<a href="http://www.w3.org/TR/DOM-Level-3-Core">Document Object Model (DOM) Level 3 Core</a>,
and <a href="http://www.w3.org/TR/DOM-Level-3-LS">Document Object Model (DOM) Level 3 Load and Save</a>.
<a href="http://www.w3.org/TR/DOM-Level-2-Core/">Document Object Model (DOM) Level 2 Core Specification</a>,
<a href="http://www.w3.org/TR/DOM-Level-3-Core">Document Object Model (DOM) Level 3 Core Specification</a>,
and <a href="http://www.w3.org/TR/DOM-Level-3-LS">Document Object Model (DOM) Level 3 Load and Save Specification</a>.
@since 1.4
</body>

View File

@ -92,7 +92,7 @@ import org.w3c.dom.DOMException;
* property with a value of "menu", querying for the values of the component
* longhand properties should return the empty string.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface CSS2Properties {
/**

View File

@ -59,7 +59,7 @@ import org.w3c.dom.DOMException;
* header, has priority (see CSS document representation) but this is not
* reflected in the <code>CSSCharsetRule</code>.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface CSSCharsetRule extends CSSRule {
/**

View File

@ -46,7 +46,7 @@ package org.w3c.dom.css;
* a CSS style sheet. The <code>@font-face</code> rule is used to hold a set
* of font descriptions.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface CSSFontFaceRule extends CSSRule {
/**

View File

@ -48,7 +48,7 @@ import org.w3c.dom.stylesheets.MediaList;
* a CSS style sheet. The <code>@import</code> rule is used to import style
* rules from other style sheets.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface CSSImportRule extends CSSRule {
/**

View File

@ -49,7 +49,7 @@ import org.w3c.dom.stylesheets.MediaList;
* style sheet. A <code>@media</code> rule can be used to delimit style
* rules for specific media types.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface CSSMediaRule extends CSSRule {
/**

View File

@ -48,7 +48,7 @@ import org.w3c.dom.DOMException;
* CSS style sheet. The <code>@page</code> rule is used to specify the
* dimensions, orientation, margins, etc. of a page box for paged media.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface CSSPageRule extends CSSRule {
/**

View File

@ -61,7 +61,7 @@ import org.w3c.dom.DOMException;
* the range 0-255, a color percentage value can be converted to a number;
* (see also the <code>RGBColor</code> interface).
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface CSSPrimitiveValue extends CSSValue {
// UnitTypes

View File

@ -50,7 +50,7 @@ import org.w3c.dom.DOMException;
* sheet, even if the rule is not recognized by the parser. Unrecognized
* rules are represented using the <code>CSSUnknownRule</code> interface.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface CSSRule {
// RuleType

View File

@ -47,7 +47,7 @@ package org.w3c.dom.css;
* <p> The items in the <code>CSSRuleList</code> are accessible via an
* integral index, starting from 0.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface CSSRuleList {
/**

View File

@ -60,7 +60,7 @@ import org.w3c.dom.DOMException;
* interface. The CSS Object Model doesn't provide an access to the
* specified or actual values of the CSS cascade.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface CSSStyleDeclaration {
/**

View File

@ -47,7 +47,7 @@ import org.w3c.dom.DOMException;
* The <code>CSSStyleRule</code> interface represents a single rule set in a
* CSS style sheet.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface CSSStyleRule extends CSSRule {
/**

View File

@ -49,7 +49,7 @@ import org.w3c.dom.stylesheets.StyleSheet;
* represent a CSS style sheet i.e., a style sheet whose content type is
* "text/css".
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface CSSStyleSheet extends StyleSheet {
/**

View File

@ -45,7 +45,7 @@ package org.w3c.dom.css;
* The <code>CSSUnknownRule</code> interface represents an at-rule not
* supported by this user agent.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface CSSUnknownRule extends CSSRule {
}

View File

@ -48,7 +48,7 @@ import org.w3c.dom.DOMException;
* value. A <code>CSSValue</code> object only occurs in a context of a CSS
* property.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface CSSValue {
// UnitTypes

View File

@ -50,7 +50,7 @@ package org.w3c.dom.css;
* <p> The items in the <code>CSSValueList</code> are accessible via an
* integral index, starting from 0.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface CSSValueList extends CSSValue {
/**

View File

@ -46,7 +46,7 @@ package org.w3c.dom.css;
* counters function value. This interface reflects the values in the
* underlying style property.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface Counter {
/**

View File

@ -49,7 +49,7 @@ import org.w3c.dom.DOMException;
* outside the context of a document. There is no way to associate the new
* <code>CSSStyleSheet</code> with a document in DOM Level 2.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface DOMImplementationCSS extends DOMImplementation {
/**

View File

@ -62,7 +62,7 @@ import org.w3c.dom.stylesheets.DocumentStyle;
* interface can be obtained by using binding-specific casting methods on an
* instance of the <code>Document</code> interface.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface DocumentCSS extends DocumentStyle {
/**

View File

@ -50,7 +50,7 @@ package org.w3c.dom.css;
* binding-specific casting methods on an instance of the Element interface
* when the element supports inline CSS style informations.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface ElementCSSInlineStyle {
/**

View File

@ -55,7 +55,7 @@ package org.w3c.dom.css;
* <p> A color percentage value can always be converted to a number and vice
* versa.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface RGBColor {
/**

View File

@ -47,7 +47,7 @@ package org.w3c.dom.css;
* modifications made to the <code>CSSPrimitiveValue</code> objects modify
* the style property.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface Rect {
/**

View File

@ -55,7 +55,7 @@ import org.w3c.dom.views.AbstractView;
* <code>CSSStyleDeclaration</code> and <code>CSSValue</code> related to
* this declaration are no longer valid.
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public interface ViewCSS extends AbstractView {
/**

View File

@ -44,6 +44,8 @@ package org.w3c.dom.html;
/**
* The anchor element. See the A element definition in HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLAnchorElement extends HTMLElement {
/**

View File

@ -45,6 +45,8 @@ package org.w3c.dom.html;
* An embedded Java applet. See the APPLET element definition in HTML 4.0.
* This element is deprecated in HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLAppletElement extends HTMLElement {
/**

View File

@ -45,6 +45,8 @@ package org.w3c.dom.html;
* Client-side image map area definition. See the AREA element definition in
* HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLAreaElement extends HTMLElement {
/**

View File

@ -44,6 +44,8 @@ package org.w3c.dom.html;
/**
* Force a line break. See the BR element definition in HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLBRElement extends HTMLElement {
/**

View File

@ -44,6 +44,8 @@ package org.w3c.dom.html;
/**
* Document base URI. See the BASE element definition in HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLBaseElement extends HTMLElement {
/**

View File

@ -45,6 +45,8 @@ package org.w3c.dom.html;
* Base font. See the BASEFONT element definition in HTML 4.0. This element
* is deprecated in HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLBaseFontElement extends HTMLElement {
/**

View File

@ -46,6 +46,8 @@ package org.w3c.dom.html;
* even if the tags are not present in the source document. See the BODY
* element definition in HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLBodyElement extends HTMLElement {
/**

View File

@ -44,6 +44,8 @@ package org.w3c.dom.html;
/**
* Push button. See the BUTTON element definition in HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLButtonElement extends HTMLElement {
/**

View File

@ -50,6 +50,8 @@ import org.w3c.dom.Node;
* to be live meaning that they are automatically updated when the
* underlying document is changed.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLCollection {
/**

View File

@ -44,6 +44,8 @@ package org.w3c.dom.html;
/**
* Definition list. See the DL element definition in HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLDListElement extends HTMLElement {
/**

View File

@ -47,7 +47,8 @@ import org.w3c.dom.DOMImplementation;
* The <code>HTMLDOMImplementation</code> interface extends the
* <code>DOMImplementation</code> interface with a method for creating an
* HTML document instance.
* @since DOM Level 2
*
* @since 1.4, DOM Level 2
*/
public interface HTMLDOMImplementation extends DOMImplementation {
/**

View File

@ -45,6 +45,8 @@ package org.w3c.dom.html;
* Directory list. See the DIR element definition in HTML 4.0. This element
* is deprecated in HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLDirectoryElement extends HTMLElement {
/**

View File

@ -44,6 +44,8 @@ package org.w3c.dom.html;
/**
* Generic block container. See the DIV element definition in HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLDivElement extends HTMLElement {
/**

View File

@ -55,6 +55,8 @@ import org.w3c.dom.NodeList;
* <code>getElementById</code> is inherited from the <code>Document</code>
* interface where it was moved.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLDocument extends Document {
/**

View File

@ -53,6 +53,8 @@ import org.w3c.dom.Element;
* of an HTML element is accessible through the
* <code>ElementCSSInlineStyle</code> interface which is defined in the .
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLElement extends Element {
/**

View File

@ -45,6 +45,8 @@ package org.w3c.dom.html;
* Organizes form controls into logical groups. See the FIELDSET element
* definition in HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLFieldSetElement extends HTMLElement {
/**

View File

@ -45,6 +45,8 @@ package org.w3c.dom.html;
* Local change to font. See the FONT element definition in HTML 4.0. This
* element is deprecated in HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLFontElement extends HTMLElement {
/**

View File

@ -47,6 +47,8 @@ package org.w3c.dom.html;
* as well as the attributes of the form element. See the FORM element
* definition in HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLFormElement extends HTMLElement {
/**

View File

@ -46,6 +46,8 @@ import org.w3c.dom.Document;
/**
* Create a frame. See the FRAME element definition in HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLFrameElement extends HTMLElement {
/**
@ -107,7 +109,7 @@ public interface HTMLFrameElement extends HTMLElement {
/**
* The document this frame contains, if there is any and it is available,
* or <code>null</code> otherwise.
* @since DOM Level 2
* @since 1.4, DOM Level 2
*/
public Document getContentDocument();

View File

@ -44,6 +44,8 @@ package org.w3c.dom.html;
/**
* Create a grid of frames. See the FRAMESET element definition in HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLFrameSetElement extends HTMLElement {
/**

View File

@ -44,6 +44,8 @@ package org.w3c.dom.html;
/**
* Create a horizontal rule. See the HR element definition in HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLHRElement extends HTMLElement {
/**

View File

@ -44,6 +44,8 @@ package org.w3c.dom.html;
/**
* Document head information. See the HEAD element definition in HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLHeadElement extends HTMLElement {
/**

View File

@ -45,6 +45,8 @@ package org.w3c.dom.html;
* For the <code>H1</code> to <code>H6</code> elements. See the H1 element
* definition in HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLHeadingElement extends HTMLElement {
/**

View File

@ -44,6 +44,8 @@ package org.w3c.dom.html;
/**
* Root of an HTML document. See the HTML element definition in HTML 4.0.
* <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
*
* @since 1.4, DOM Level 2
*/
public interface HTMLHtmlElement extends HTMLElement {
/**

Some files were not shown because too many files have changed in this diff Show More