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