Merge
This commit is contained in:
commit
33dc2cac3c
2
.hgtags
2
.hgtags
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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@
|
||||
|
||||
|
@ -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@"
|
||||
|
@ -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
@ -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
|
@ -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)
|
||||
])
|
||||
|
@ -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])
|
||||
])
|
||||
|
@ -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
|
||||
])
|
||||
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
};
|
||||
|
@ -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
|
||||
|
@ -522,3 +522,4 @@ b64432bae5271735fd53300b2005b713e98ef411 jdk-9+114
|
||||
88170d3642905b9e6cac03e8efcc976885a7e6da jdk-9+117
|
||||
9b1075cac08dc836ec32e7b368415cbe3aceaf8c jdk-9+118
|
||||
15f3fe264872766bcb205696198f0c1502420e17 jdk-9+119
|
||||
0be6f4f5d18671184e62583668cb1d783dffa128 jdk-9+120
|
||||
|
@ -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:%)
|
||||
|
||||
|
85
hotspot/test/native/GTestWrapper.java
Normal file
85
hotspot/test/native/GTestWrapper.java
Normal 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");
|
||||
}
|
||||
}
|
||||
}
|
@ -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<>();
|
||||
|
@ -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<>();
|
||||
|
@ -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<>();
|
||||
|
@ -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<>();
|
||||
|
@ -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<>();
|
||||
|
@ -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<>();
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
|
@ -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<>();
|
||||
|
@ -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<>();
|
||||
|
@ -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<>();
|
||||
|
@ -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<>();
|
||||
|
@ -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<>();
|
||||
|
@ -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.
|
||||
|
@ -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<>();
|
||||
|
@ -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<>();
|
||||
|
@ -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<>();
|
||||
|
@ -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.
|
||||
|
@ -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<>();
|
||||
|
@ -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<>();
|
||||
|
@ -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<>();
|
||||
|
@ -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<>();
|
||||
|
@ -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<>();
|
||||
|
@ -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<>();
|
||||
|
@ -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<>();
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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 {
|
||||
/**
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user