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 $?