diff --git a/jdk/src/java.base/share/classes/java/util/spi/LocaleServiceProvider.java b/jdk/src/java.base/share/classes/java/util/spi/LocaleServiceProvider.java index 5e3b5080cf8..3b2cb534bad 100644 --- a/jdk/src/java.base/share/classes/java/util/spi/LocaleServiceProvider.java +++ b/jdk/src/java.base/share/classes/java/util/spi/LocaleServiceProvider.java @@ -43,9 +43,8 @@ import java.util.Locale; * supported by the Java runtime environment itself. * *

Packaging of Locale Sensitive Service Provider Implementations

- * Implementations of these locale sensitive services are packaged using the - * Java Extension Mechanism - * as installed extensions. A provider identifies itself with a + * Implementations of these locale sensitive services can be made available + * by adding them to the application's class path. A provider identifies itself with a * provider-configuration file in the resource directory META-INF/services, * using the fully qualified provider interface class name as the file name. * The file should contain a list of fully-qualified concrete provider class names, diff --git a/jdk/src/java.base/share/classes/sun/util/locale/provider/SPILocaleProviderAdapter.java b/jdk/src/java.base/share/classes/sun/util/locale/provider/SPILocaleProviderAdapter.java index 59de0e2a629..be87f042e77 100644 --- a/jdk/src/java.base/share/classes/sun/util/locale/provider/SPILocaleProviderAdapter.java +++ b/jdk/src/java.base/share/classes/sun/util/locale/provider/SPILocaleProviderAdapter.java @@ -77,7 +77,8 @@ public class SPILocaleProviderAdapter extends AuxLocaleProviderAdapter { public P run() { P delegate = null; - for (LocaleServiceProvider provider : ServiceLoader.loadInstalled(c)) { + for (LocaleServiceProvider provider : + ServiceLoader.load(c, ClassLoader.getSystemClassLoader())) { if (delegate == null) { try { delegate = diff --git a/jdk/src/java.desktop/share/classes/java/awt/im/spi/package.html b/jdk/src/java.desktop/share/classes/java/awt/im/spi/package.html index 11d28e6686d..2e63c9297cd 100644 --- a/jdk/src/java.desktop/share/classes/java/awt/im/spi/package.html +++ b/jdk/src/java.desktop/share/classes/java/awt/im/spi/package.html @@ -55,9 +55,8 @@ recognition.

Packaging Input Methods

-

Input methods are packaged as installed extensions, as specified -by the Extension -Mechanism. The main JAR file of an input method must contain the +

Input methods can be made available by adding them to the application's +class path. The main JAR file of an input method must contain the file:

    META-INF/services/java.awt.im.spi.InputMethodDescriptor
diff --git a/jdk/src/java.desktop/share/classes/sun/awt/im/ExecutableInputMethodManager.java b/jdk/src/java.desktop/share/classes/sun/awt/im/ExecutableInputMethodManager.java index d974cdec24a..11619ba453d 100644 --- a/jdk/src/java.desktop/share/classes/sun/awt/im/ExecutableInputMethodManager.java +++ b/jdk/src/java.desktop/share/classes/sun/awt/im/ExecutableInputMethodManager.java @@ -259,7 +259,8 @@ class ExecutableInputMethodManager extends InputMethodManager AccessController.doPrivileged(new PrivilegedExceptionAction() { public Object run() { for (InputMethodDescriptor descriptor : - ServiceLoader.loadInstalled(InputMethodDescriptor.class)) { + ServiceLoader.load(InputMethodDescriptor.class, + ClassLoader.getSystemClassLoader())) { ClassLoader cl = descriptor.getClass().getClassLoader(); javaInputMethodLocatorList.add(new InputMethodLocator(descriptor, cl, null)); } diff --git a/jdk/test/ProblemList.txt b/jdk/test/ProblemList.txt index b6a77f79fea..1f54f49b22d 100644 --- a/jdk/test/ProblemList.txt +++ b/jdk/test/ProblemList.txt @@ -306,22 +306,6 @@ com/sun/jdi/RedefinePop.sh generic-all # 8051641 sun/util/calendar/zi/TestZoneInfo310.java generic-all -# 8062588 -java/util/Locale/LocaleProviders.sh generic-all -java/util/PluggableLocale/BreakIteratorProviderTest.sh generic-all -java/util/PluggableLocale/CalendarDataProviderTest.sh generic-all -java/util/PluggableLocale/CalendarNameProviderTest.sh generic-all -java/util/PluggableLocale/CollatorProviderTest.sh generic-all -java/util/PluggableLocale/CurrencyNameProviderTest.sh generic-all -java/util/PluggableLocale/DateFormatProviderTest.sh generic-all -java/util/PluggableLocale/DateFormatSymbolsProviderTest.sh generic-all -java/util/PluggableLocale/DecimalFormatSymbolsProviderTest.sh generic-all -java/util/PluggableLocale/GenericTest.sh generic-all -java/util/PluggableLocale/LocaleNameProviderTest.sh generic-all -java/util/PluggableLocale/NumberFormatProviderTest.sh generic-all -java/util/PluggableLocale/TimeZoneNameProviderTest.sh generic-all -java/util/ResourceBundle/Bug6299235Test.sh generic-all - # 8062512 java/util/spi/ResourceBundleControlProvider/UserDefaultControlTest.java generic-all diff --git a/jdk/test/java/util/Locale/LocaleProviders.sh b/jdk/test/java/util/Locale/LocaleProviders.sh index df3a75f8082..5d0c074e9cf 100644 --- a/jdk/test/java/util/Locale/LocaleProviders.sh +++ b/jdk/test/java/util/Locale/LocaleProviders.sh @@ -137,7 +137,7 @@ echo "DEFFMTCTRY=${DEFFMTCTRY}" runTest() { - RUNCMD="${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -classpath ${TESTCLASSES} -Djava.locale.providers=$PREFLIST LocaleProviders $METHODNAME $PARAM1 $PARAM2 $PARAM3" + RUNCMD="${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -classpath ${TESTCLASSES}${PS}${SPICLASSES} -Djava.locale.providers=$PREFLIST LocaleProviders $METHODNAME $PARAM1 $PARAM2 $PARAM3" echo ${RUNCMD} ${RUNCMD} result=$? @@ -189,6 +189,7 @@ else PARAM2=zh PARAM3=CN fi +SPICLASSES= runTest # testing SPI is NOT selected, as there is none. @@ -197,6 +198,7 @@ PREFLIST=SPI,JRE PARAM1=JRE PARAM2=en PARAM3=US +SPICLASSES= runTest # testing the order, variaton #1. This assumes en_GB DateFormat data are available both in JRE & CLDR @@ -205,6 +207,7 @@ PREFLIST=CLDR,JRE PARAM1=CLDR PARAM2=en PARAM3=GB +SPICLASSES= runTest # testing the order, variaton #2. This assumes en_GB DateFormat data are available both in JRE & CLDR @@ -213,6 +216,7 @@ PREFLIST=JRE,CLDR PARAM1=JRE PARAM2=en PARAM3=GB +SPICLASSES= runTest # testing the order, variaton #3 for non-existent locale in JRE assuming "haw" is not in JRE. @@ -221,6 +225,7 @@ PREFLIST=JRE,CLDR PARAM1=CLDR PARAM2=haw PARAM3=GB +SPICLASSES= runTest # testing the order, variaton #4 for the bug 7196799. CLDR's "zh" data should be used in "zh_CN" @@ -229,6 +234,7 @@ PREFLIST=CLDR PARAM1=CLDR PARAM2=zh PARAM3=CN +SPICLASSES= runTest # testing FALLBACK provider. SPI and invalid one cases. @@ -237,16 +243,19 @@ PREFLIST=SPI PARAM1=FALLBACK PARAM2=en PARAM3=US +SPICLASSES= runTest PREFLIST=FOO PARAM1=JRE PARAM2=en PARAM3=US +SPICLASSES= runTest PREFLIST=BAR,SPI PARAM1=FALLBACK PARAM2=en PARAM3=US +SPICLASSES= runTest # testing 7198834 fix. Only works on Windows Vista or upper. @@ -255,22 +264,25 @@ PREFLIST=HOST PARAM1= PARAM2= PARAM3= +SPICLASSES= runTest # testing 8000245 fix. METHODNAME=tzNameTest -PREFLIST="JRE -Djava.ext.dirs=${SPIDIR}" +PREFLIST=JRE PARAM1=Europe/Moscow PARAM2= PARAM3= +SPICLASSES=${SPIDIR} runTest # testing 8000615 fix. METHODNAME=tzNameTest -PREFLIST="JRE -Djava.ext.dirs=${SPIDIR}" +PREFLIST=JRE PARAM1=America/Los_Angeles PARAM2= PARAM3= +SPICLASSES=${SPIDIR} runTest # testing 8001440 fix. @@ -279,6 +291,7 @@ PREFLIST=CLDR PARAM1= PARAM2= PARAM3= +SPICLASSES= runTest # testing 8010666 fix. @@ -289,15 +302,17 @@ then PARAM1= PARAM2= PARAM3= + SPICLASSES= runTest fi # testing 8013086 fix. METHODNAME=bug8013086Test -PREFLIST="JRE,SPI -Djava.ext.dirs=${SPIDIR}" +PREFLIST=JRE,SPI PARAM1=ja PARAM2=JP PARAM3= +SPICLASSES=${SPIDIR} runTest # testing 8013903 fix. (Windows only) @@ -306,12 +321,14 @@ PREFLIST=HOST,JRE PARAM1= PARAM2= PARAM3= +SPICLASSES= runTest METHODNAME=bug8013903Test PREFLIST=HOST PARAM1= PARAM2= PARAM3= +SPICLASSES= runTest # testing 8027289 fix, if the platform format default is zh_CN @@ -323,12 +340,14 @@ if [ "${DEFFMTLANG}" = "zh" ] && [ "${DEFFMTCTRY}" = "CN" ]; then PARAM1=FFE5 PARAM2= PARAM3= + SPICLASSES= runTest METHODNAME=bug8027289Test PREFLIST=HOST PARAM1=00A5 PARAM2= PARAM3= + SPICLASSES= runTest fi diff --git a/jdk/test/java/util/PluggableLocale/BreakIteratorProviderTest.sh b/jdk/test/java/util/PluggableLocale/BreakIteratorProviderTest.sh index 050d422324b..f927fb16811 100644 --- a/jdk/test/java/util/PluggableLocale/BreakIteratorProviderTest.sh +++ b/jdk/test/java/util/PluggableLocale/BreakIteratorProviderTest.sh @@ -23,6 +23,6 @@ # # # @test -# @bug 4052440 +# @bug 4052440 8062588 # @summary BreakIteratorProvider tests -# @run shell ExecTest.sh foo BreakIteratorProviderTest true +# @run shell ExecTest.sh foo BreakIteratorProviderTest diff --git a/jdk/test/java/util/PluggableLocale/CalendarDataProviderTest.sh b/jdk/test/java/util/PluggableLocale/CalendarDataProviderTest.sh index 36234d7cdc7..186f0b4b8f1 100644 --- a/jdk/test/java/util/PluggableLocale/CalendarDataProviderTest.sh +++ b/jdk/test/java/util/PluggableLocale/CalendarDataProviderTest.sh @@ -23,6 +23,6 @@ # # # @test -# @bug 7058207 8000986 +# @bug 7058207 8000986 8062588 # @summary CalendarDataProvider tests -# @run shell ExecTest.sh bar CalendarDataProviderTest true +# @run shell ExecTest.sh bar CalendarDataProviderTest diff --git a/jdk/test/java/util/PluggableLocale/CalendarNameProviderTest.sh b/jdk/test/java/util/PluggableLocale/CalendarNameProviderTest.sh index a772292b936..8883c31871b 100644 --- a/jdk/test/java/util/PluggableLocale/CalendarNameProviderTest.sh +++ b/jdk/test/java/util/PluggableLocale/CalendarNameProviderTest.sh @@ -22,6 +22,6 @@ # # @test -# @bug 8000986 +# @bug 8000986 8062588 # @summary CalendarNameProvider tests -# @run shell ExecTest.sh bar CalendarNameProviderTest true +# @run shell ExecTest.sh bar CalendarNameProviderTest diff --git a/jdk/test/java/util/PluggableLocale/ClasspathTest.java b/jdk/test/java/util/PluggableLocale/ClasspathTest.java index 2c73a3cef47..54df0491250 100644 --- a/jdk/test/java/util/PluggableLocale/ClasspathTest.java +++ b/jdk/test/java/util/PluggableLocale/ClasspathTest.java @@ -36,13 +36,13 @@ public class ClasspathTest { ClasspathTest() { /* - * Since providers can only be loaded from the extension directory, - * this test will fail if they are loaded from classpath. + * Since providers can be loaded from the application's classpath, + * this test will fail if they are NOT loaded from classpath. */ Locale OSAKA = new Locale("ja", "JP", "osaka"); List availableLocales = Arrays.asList(Locale.getAvailableLocales()); - if (availableLocales.contains(OSAKA)) { - throw new RuntimeException("LSS providers were loaded from the class path."); + if (!availableLocales.contains(OSAKA)) { + throw new RuntimeException("LSS providers were NOT loaded from the class path."); } } } diff --git a/jdk/test/java/util/PluggableLocale/ClasspathTest.sh b/jdk/test/java/util/PluggableLocale/ClasspathTest.sh index 99749540553..f19d1f928dd 100644 --- a/jdk/test/java/util/PluggableLocale/ClasspathTest.sh +++ b/jdk/test/java/util/PluggableLocale/ClasspathTest.sh @@ -23,7 +23,6 @@ # # # @test -# @bug 6388652 -# @summary Checks whether providers can only be loaded from extension directories, -# not from classpath. -# @run shell ExecTest.sh bar ClasspathTest false +# @bug 6388652 8062588 +# @summary Checks whether providers can be loaded from classpath. +# @run shell ExecTest.sh bar ClasspathTest diff --git a/jdk/test/java/util/PluggableLocale/CollatorProviderTest.sh b/jdk/test/java/util/PluggableLocale/CollatorProviderTest.sh index 01e1b277f5b..01b6fa6191b 100644 --- a/jdk/test/java/util/PluggableLocale/CollatorProviderTest.sh +++ b/jdk/test/java/util/PluggableLocale/CollatorProviderTest.sh @@ -23,6 +23,6 @@ # # # @test -# @bug 4052440 +# @bug 4052440 8062588 # @summary CollatorProvider tests -# @run shell ExecTest.sh foo CollatorProviderTest true +# @run shell ExecTest.sh foo CollatorProviderTest diff --git a/jdk/test/java/util/PluggableLocale/CurrencyNameProviderTest.sh b/jdk/test/java/util/PluggableLocale/CurrencyNameProviderTest.sh index 9e8d4f90d61..2684767ce94 100644 --- a/jdk/test/java/util/PluggableLocale/CurrencyNameProviderTest.sh +++ b/jdk/test/java/util/PluggableLocale/CurrencyNameProviderTest.sh @@ -23,6 +23,6 @@ # # # @test -# @bug 4052440 7199750 8000997 +# @bug 4052440 7199750 8000997 8062588 # @summary CurrencyNameProvider tests -# @run shell ExecTest.sh bar CurrencyNameProviderTest true +# @run shell ExecTest.sh bar CurrencyNameProviderTest diff --git a/jdk/test/java/util/PluggableLocale/DateFormatProviderTest.sh b/jdk/test/java/util/PluggableLocale/DateFormatProviderTest.sh index d8a9a288854..0d1be46b6d0 100644 --- a/jdk/test/java/util/PluggableLocale/DateFormatProviderTest.sh +++ b/jdk/test/java/util/PluggableLocale/DateFormatProviderTest.sh @@ -23,6 +23,6 @@ # # # @test -# @bug 4052440 7003643 +# @bug 4052440 7003643 8062588 # @summary DateFormatProvider tests -# @run shell ExecTest.sh foo DateFormatProviderTest true +# @run shell ExecTest.sh foo DateFormatProviderTest diff --git a/jdk/test/java/util/PluggableLocale/DateFormatSymbolsProviderTest.sh b/jdk/test/java/util/PluggableLocale/DateFormatSymbolsProviderTest.sh index 51ebe6fa630..e4191f01eaf 100644 --- a/jdk/test/java/util/PluggableLocale/DateFormatSymbolsProviderTest.sh +++ b/jdk/test/java/util/PluggableLocale/DateFormatSymbolsProviderTest.sh @@ -23,6 +23,6 @@ # # # @test -# @bug 4052440 7200341 +# @bug 4052440 7200341 8062588 # @summary DateFormatSymbolsProvider tests -# @run shell ExecTest.sh foo DateFormatSymbolsProviderTest true +# @run shell ExecTest.sh foo DateFormatSymbolsProviderTest diff --git a/jdk/test/java/util/PluggableLocale/DecimalFormatSymbolsProviderTest.sh b/jdk/test/java/util/PluggableLocale/DecimalFormatSymbolsProviderTest.sh index 7d6e9bf8ada..e4dc5864768 100644 --- a/jdk/test/java/util/PluggableLocale/DecimalFormatSymbolsProviderTest.sh +++ b/jdk/test/java/util/PluggableLocale/DecimalFormatSymbolsProviderTest.sh @@ -23,6 +23,6 @@ # # # @test -# @bug 4052440 +# @bug 4052440 8062588 # @summary DecimalFormatSymbolsProvider tests -# @run shell ExecTest.sh foo DecimalFormatSymbolsProviderTest true +# @run shell ExecTest.sh foo DecimalFormatSymbolsProviderTest diff --git a/jdk/test/java/util/PluggableLocale/ExecTest.sh b/jdk/test/java/util/PluggableLocale/ExecTest.sh index a30d70312d2..7e8a5365f45 100644 --- a/jdk/test/java/util/PluggableLocale/ExecTest.sh +++ b/jdk/test/java/util/PluggableLocale/ExecTest.sh @@ -76,14 +76,6 @@ case "$OS" in ;; esac -# set classpath and extension directory variables -if [ -d ${TESTJAVA}${FS}lib${FS}ext ] -then - EXTDIRS="${TESTJAVA}${FS}lib${FS}ext${PS}${TESTCLASSES}" -else - EXTDIRS="${TESTJAVA}${FS}jre${FS}lib${FS}ext${PS}${TESTCLASSES}" -fi - case "$1" in "foo" ) cp ${TESTSRC}${FS}fooprovider.jar ${TESTCLASSES} @@ -122,12 +114,7 @@ else fi # run -if [ "$3" = "true" ] -then - RUNCMD="${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -Djava.ext.dirs=${EXTDIRS} $2 " -else - RUNCMD="${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -classpath ${CLASSPATHARG} $2 " -fi +RUNCMD="${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -classpath ${CLASSPATHARG} $2 " echo ${RUNCMD} ${RUNCMD} diff --git a/jdk/test/java/util/PluggableLocale/GenericTest.sh b/jdk/test/java/util/PluggableLocale/GenericTest.sh index 0d53be11c3e..d1906e1c61f 100644 --- a/jdk/test/java/util/PluggableLocale/GenericTest.sh +++ b/jdk/test/java/util/PluggableLocale/GenericTest.sh @@ -23,6 +23,6 @@ # # # @test -# @bug 4052440 +# @bug 4052440 8062588 # @summary Generic tests for the pluggable locales feature -# @run shell ExecTest.sh foobar GenericTest true +# @run shell ExecTest.sh foobar GenericTest diff --git a/jdk/test/java/util/PluggableLocale/LocaleNameProviderTest.sh b/jdk/test/java/util/PluggableLocale/LocaleNameProviderTest.sh index 489c92c779e..3619533c0a3 100644 --- a/jdk/test/java/util/PluggableLocale/LocaleNameProviderTest.sh +++ b/jdk/test/java/util/PluggableLocale/LocaleNameProviderTest.sh @@ -23,6 +23,6 @@ # # # @test -# @bug 4052440 8000273 +# @bug 4052440 8000273 8062588 # @summary LocaleNameProvider tests -# @run shell ExecTest.sh bar LocaleNameProviderTest true +# @run shell ExecTest.sh bar LocaleNameProviderTest diff --git a/jdk/test/java/util/PluggableLocale/NumberFormatProviderTest.sh b/jdk/test/java/util/PluggableLocale/NumberFormatProviderTest.sh index 1c952e84de8..e38b9563deb 100644 --- a/jdk/test/java/util/PluggableLocale/NumberFormatProviderTest.sh +++ b/jdk/test/java/util/PluggableLocale/NumberFormatProviderTest.sh @@ -23,6 +23,6 @@ # # # @test -# @bug 4052440 7003643 +# @bug 4052440 7003643 8062588 # @summary NumberFormatProvider tests -# @run shell ExecTest.sh foo NumberFormatProviderTest true +# @run shell ExecTest.sh foo NumberFormatProviderTest diff --git a/jdk/test/java/util/PluggableLocale/TimeZoneNameProviderTest.sh b/jdk/test/java/util/PluggableLocale/TimeZoneNameProviderTest.sh index 88f05c498d3..f80874b68fe 100644 --- a/jdk/test/java/util/PluggableLocale/TimeZoneNameProviderTest.sh +++ b/jdk/test/java/util/PluggableLocale/TimeZoneNameProviderTest.sh @@ -23,6 +23,6 @@ # # # @test -# @bug 4052440 8003267 +# @bug 4052440 8003267 8062588 # @summary TimeZoneNameProvider tests -# @run shell ExecTest.sh bar TimeZoneNameProviderTest true +# @run shell ExecTest.sh bar TimeZoneNameProviderTest diff --git a/jdk/test/java/util/ResourceBundle/Bug6299235Test.sh b/jdk/test/java/util/ResourceBundle/Bug6299235Test.sh index 7d1d256a0e6..a29c7444ecb 100644 --- a/jdk/test/java/util/ResourceBundle/Bug6299235Test.sh +++ b/jdk/test/java/util/ResourceBundle/Bug6299235Test.sh @@ -55,27 +55,14 @@ if [ -z "${TESTJAVA}" ]; then exit 1 fi -# See if TESTJAVA points to JRE or JDK -if [ -d "${TESTJAVA}${FILESEP}jre" ]; then - JRE_EXT_DIR=${TESTJAVA}${FILESEP}jre${FILESEP}lib${FILESEP}ext -else - JRE_EXT_DIR=${TESTJAVA}${FILESEP}lib${FILESEP}ext -fi - -if [ -d "${JRE_EXT_DIR}" ]; then - NEW_EXT_DIR="${JRE_EXT_DIR}${PATHSEP}${TESTSRC}" -else - NEW_EXT_DIR=${TESTSRC} -fi - echo "TESTJAVA=${TESTJAVA}" echo "TESTSRC=${TESTSRC}" echo "TESTCLASSES=${TESTCLASSES}" echo "NEW_EXT_DIR=${NEW_EXT_DIR}" cd ${TESTSRC} - -${TESTJAVA}/bin/java ${TESTVMOPTS} -cp ${TESTCLASSES} -Djava.ext.dirs=${NEW_EXT_DIR} Bug6299235Test +echo +${TESTJAVA}/bin/java ${TESTVMOPTS} -cp ${TESTCLASSES}${PATHSEP}${TESTSRC}${FILESEP}awtres.jar Bug6299235Test if [ $? -ne 0 ] then