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 # @summary Basic test case for ResourceBundle with modules; 26 # ResourceBundle.getBundle caller is in module named "test", 27 # resource bundles are grouped in main (module "mainbundles"), 28 # EU (module "eubundles"), and Asia (module "asiabundles"). 29 # Also adds a jar file containing resource bundles to the class path. 30 31 set -e 32 33 if [ -z "$TESTJAVA" ]; then 34 if [ $# -lt 1 ]; then exit 1; fi 35 TESTJAVA="$1"; shift 36 COMPILEJAVA="${TESTJAVA}" 37 TESTSRC="`pwd`" 38 TESTCLASSES="`pwd`" 39 fi 40 41 JAVAC="$COMPILEJAVA/bin/javac" 42 JAR="$COMPILEJAVA/bin/jar" 43 JAVA="$TESTJAVA/bin/java" 44 45 rm -rf mods 46 47 CP= 48 for I in main eu asia 49 do 50 B=${I}bundles 51 mkdir -p mods/$B 52 CLASSES="`find $TESTSRC/src/$B -name '*.java'`" 53 if [ "x$CLASSES" != x ]; then 54 $JAVAC -g -d mods -modulesourcepath $TESTSRC/src $CP $CLASSES 55 fi 56 PROPS="`(cd $TESTSRC/src/$B; find . -name '*.properties')`" 57 if [ "x$PROPS" != x ]; then 58 for P in $PROPS 59 do 60 D=`dirname $P` 61 mkdir -p mods/$B/$D 62 cp $TESTSRC/src/$B/$P mods/$B/$D/ 63 done 64 fi 65 CP="-cp mods/mainbundles" 66 done 67 68 mkdir -p mods/test 69 $JAVAC -g -cp mods/mainbundles -d mods -modulesourcepath $TESTSRC/src \ 70 `find $TESTSRC/src/test -name "*.java"` 71 72 # Create a jar to be added to the class path. Expected only properties files are 73 # picked up from the class path. 74 rm -f extra.jar 75 mkdir -p classes 76 $JAVAC -d classes $TESTSRC/src/extra/jdk/test/resources/eu/*.java 77 $JAR -cf extra.jar -C classes jdk/test/resources/eu \ 78 -C $TESTSRC/src/extra jdk/test/resources/asia 79 $JAR -tvf extra.jar 80 81 $JAVA -mp mods -m test/jdk.test.Main de fr ja ja-jp zh-tw en de ja-jp && 82 # properties files on the class path should be picked up. 83 $JAVA -cp extra.jar -mp mods -m test/jdk.test.Main de fr ja ja-jp zh-tw en de vi && 84 # classes on the class path shouldn't. 85 ! $JAVA -cp extra.jar -mp mods -m test/jdk.test.Main es 86 87 exit $?