1# 2# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 3# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4# 5# This code is free software; you can redistribute it and/or modify it 6# under the terms of the GNU General Public License version 2 only, as 7# published by the Free Software Foundation. 8# 9# This code is distributed in the hope that it will be useful, but WITHOUT 10# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12# version 2 for more details (a copy is included in the LICENSE file that 13# accompanied this code). 14# 15# You should have received a copy of the GNU General Public License version 16# 2 along with this work; if not, write to the Free Software Foundation, 17# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18# 19# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20# or visit www.oracle.com if you need additional information or have any 21# questions. 22# 23 24# @test 25# @bug 8044767 8139067 26# @summary Basic test case for ResourceBundle with modules; 27# ResourceBundle.getBundle caller is in module named "test", 28# resource bundles are grouped in main (module "mainbundles"), 29# EU (module "eubundles"), and Asia (module "asiabundles"). 30# Also adds a jar file containing resource bundles to the class path. 31 32set -e 33 34if [ -z "$TESTJAVA" ]; then 35 if [ $# -lt 1 ]; then exit 1; fi 36 TESTJAVA="$1"; shift 37 COMPILEJAVA="${TESTJAVA}" 38 TESTSRC="`pwd`" 39 TESTCLASSES="`pwd`" 40fi 41 42JAVAC="$COMPILEJAVA/bin/javac" 43JAR="$COMPILEJAVA/bin/jar" 44JAVA="$TESTJAVA/bin/java" 45 46rm -rf mods 47 48CP= 49for I in main eu asia 50do 51 B=${I}bundles 52 mkdir -p mods/$B 53 CLASSES="`find $TESTSRC/src/$B -name '*.java'`" 54 if [ "x$CLASSES" != x ]; then 55 $JAVAC -g -d mods --module-source-path $TESTSRC/src $CP $CLASSES 56 fi 57 PROPS="`(cd $TESTSRC/src/$B; find . -name '*.properties')`" 58 if [ "x$PROPS" != x ]; then 59 for P in $PROPS 60 do 61 D=`dirname $P` 62 mkdir -p mods/$B/$D 63 cp $TESTSRC/src/$B/$P mods/$B/$D/ 64 done 65 fi 66 CP="-cp mods/mainbundles" 67done 68 69mkdir -p mods/test 70$JAVAC -g -cp mods/mainbundles -d mods --module-source-path $TESTSRC/src \ 71 `find $TESTSRC/src/test -name "*.java"` 72 73# Create a jar to be added to the class path. Expected only properties files are 74# picked up from the class path. 75rm -f extra.jar 76mkdir -p classes 77$JAVAC -d classes $TESTSRC/src/extra/jdk/test/resources/eu/*.java 78$JAR -cf extra.jar -C classes jdk/test/resources/eu \ 79 -C $TESTSRC/src/extra jdk/test/resources/asia 80 81STATUS=0 82 83echo "jdk.test.Main should load bundles using ResourceBundleProviders." 84$JAVA -p mods -m test/jdk.test.Main de fr ja ja-jp zh-tw en de ja-jp || STATUS=1 85 86echo "jdk.test.Main should NOT load bundles from the jar file specified by the class-path." 87$JAVA -cp extra.jar -p mods -m test/jdk.test.Main es vi && STATUS=1 88 89exit $STATUS 90