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 32 set -e 33 34 if [ -z "$TESTJAVA" ]; then 35 if [ $# -lt 1 ]; then exit 1; fi 36 TESTJAVA="$1"; shift 37 COMPILEJAVA="${TESTJAVA}" 38 TESTSRC="`pwd`" 39 TESTCLASSES="`pwd`" 40 fi 41 42 JAVAC="$COMPILEJAVA/bin/javac" 43 JAR="$COMPILEJAVA/bin/jar" 44 JAVA="$TESTJAVA/bin/java" 45 46 rm -rf mods 47 48 CP= 49 for I in main eu asia 50 do 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" 67 done 68 69 mkdir -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. 75 rm -f extra.jar 76 mkdir -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 81 STATUS=0 82 83 echo "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 86 echo "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 89 exit $STATUS