1 /* 2 * Copyright (c) 2015, 2017, 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 import java.nio.file.Files; 25 import java.nio.file.Path; 26 import java.nio.file.Paths; 27 28 import org.testng.annotations.BeforeClass; 29 import org.testng.annotations.Test; 30 31 import static java.nio.file.StandardCopyOption.REPLACE_EXISTING; 32 import static jdk.testlibrary.ProcessTools.*; 33 import jdk.test.lib.compiler.CompilerUtils; 34 import static org.testng.Assert.*; 35 36 /** 37 * @test 38 * @bug 8129126 8136802 8137316 8137317 8136804 8139350 39 * @library /lib/testlibrary /test/lib 40 * @modules jdk.compiler 41 * java.logging 42 * @build GetResourceBundleTest jdk.testlibrary.ProcessTools 43 * jdk.test.lib.compiler.CompilerUtils 44 * @run testng GetResourceBundleTest 45 * @summary Tests Logger.getLogger + logger.getResourceBundle in an named/unnamed module, 46 * resources are in named and unnamed modules respectively. 47 * Positive tests to ensure that a Logger can retrieve ResourceBundle in its current module. 48 * Negative tests to ensure that a Logger cannot retrieve ResourceBundle in another module. 49 * This test also verifies 8136802 8137316 8137317 8136804 8139350. 50 */ 51 52 public class GetResourceBundleTest { 53 54 private static final String TEST_SRC = System.getProperty("test.src"); 55 56 private static final Path MOD_SRC_DIR = Paths.get(TEST_SRC, "src"); 57 private static final Path MOD_DEST_DIR = Paths.get("mods"); 58 private static final Path PKG_SRC_DIR = Paths.get(TEST_SRC, "pkgs"); 59 private static final Path PKG_DEST_DIR = Paths.get("pkgs"); 60 61 private static final String[] modules = new String[] {"m1", "m2"}; 62 63 /** 64 * Compiles all modules used by the test, copy resource files. 65 */ 66 @BeforeClass 67 public void setup() throws Exception { 68 // compile all modules 69 for (String mn : modules) { 70 Path msrc = MOD_SRC_DIR.resolve(mn); 71 assertTrue(CompilerUtils.compile(msrc, MOD_DEST_DIR, 72 "--module-source-path", MOD_SRC_DIR.toString())); 73 } 74 assertTrue(CompilerUtils.compile(PKG_SRC_DIR, PKG_DEST_DIR, 75 "--module-path", MOD_DEST_DIR.toString(), "--add-modules", String.join(",", modules))); 76 77 // copy resource files 78 String[] files = { "m1/p1/resource/p.properties", "m2/p2/resource/p.properties" }; 79 for(String f : files) { 80 Files.copy(MOD_SRC_DIR.resolve(f), MOD_DEST_DIR.resolve(f), REPLACE_EXISTING); 81 } 82 String p3 = "p3/resource/p.properties"; 83 Files.copy(PKG_SRC_DIR.resolve(p3), PKG_DEST_DIR.resolve(p3), REPLACE_EXISTING); 84 } 85 86 @Test 87 public void runWithoutSecurityManager() throws Exception { 88 int exitValue = executeTestJava( 89 "-cp", PKG_DEST_DIR.toString(), 90 "--module-path", MOD_DEST_DIR.toString(), 91 "--add-modules", String.join(",", modules), 92 "p3.test.ResourceBundleTest") 93 .outputTo(System.out) 94 .errorTo(System.err) 95 .getExitValue(); 96 assertTrue(exitValue == 0); 97 } 98 99 @Test 100 public void runWithSecurityManager() throws Exception { 101 int exitValue = executeTestJava( 102 "-Djava.security.manager", 103 "-cp", PKG_DEST_DIR.toString(), 104 "--module-path", MOD_DEST_DIR.toString(), 105 "--add-modules", String.join(",", modules), 106 "p3.test.ResourceBundleTest") 107 .outputTo(System.out) 108 .errorTo(System.err) 109 .getExitValue(); 110 assertTrue(exitValue == 0); 111 } 112 }