< prev index next >
test/java/lang/System/LoggerFinder/internal/backend/LoggerFinderBackendTest.java
Print this page
*** 75,84 ****
--- 75,85 ----
import sun.util.logging.PlatformLogger.Level;
import java.util.logging.LogManager;
import java.util.logging.LogRecord;
import java.util.logging.Logger;
import sun.util.logging.internal.LoggingProviderImpl;
+ import java.lang.reflect.Module;
/**
* @author danielfuchs
*/
public class LoggerFinderBackendTest {
*** 1504,1514 ****
}
Logger getBackendLogger(String name) {
if (isSystem) {
return LoggingProviderImpl.getLogManagerAccess().demandLoggerFor(
! LogManager.getLogManager(), name, Thread.class);
} else {
return Logger.getLogger(name);
}
}
--- 1505,1515 ----
}
Logger getBackendLogger(String name) {
if (isSystem) {
return LoggingProviderImpl.getLogManagerAccess().demandLoggerFor(
! LogManager.getLogManager(), name, Thread.class.getModule());
} else {
return Logger.getLogger(name);
}
}
*** 1697,1707 ****
Collections.synchronizedMap(new HashMap<>());
final Map<String, java.lang.System.Logger> systemLoggers =
Collections.synchronizedMap(new HashMap<>());
@Override
! public java.lang.System.Logger getLogger(String name, Class<?> caller) {
ClassLoader callerLoader = caller.getClassLoader();
if (callerLoader == null) {
systemLoggers.putIfAbsent(name, new CustomLogger(name));
return systemLoggers.get(name);
} else {
--- 1698,1708 ----
Collections.synchronizedMap(new HashMap<>());
final Map<String, java.lang.System.Logger> systemLoggers =
Collections.synchronizedMap(new HashMap<>());
@Override
! public java.lang.System.Logger getLogger(String name, Module caller) {
ClassLoader callerLoader = caller.getClassLoader();
if (callerLoader == null) {
systemLoggers.putIfAbsent(name, new CustomLogger(name));
return systemLoggers.get(name);
} else {
*** 1825,1836 ****
@Override
public void setLevel(java.lang.System.Logger logger, Level level) {
final CustomLoggerFinder.CustomLogger l =
(CustomLoggerFinder.CustomLogger)
! (isSystem ? provider.getLogger(logger.getName(), Thread.class) :
! provider.getLogger(logger.getName(), LoggerFinderBackendTest.class));
l.setLevel(provider.fromJul(level));
}
@Override
public void setLevel(java.lang.System.Logger logger,
java.lang.System.Logger.Level level) {
--- 1826,1837 ----
@Override
public void setLevel(java.lang.System.Logger logger, Level level) {
final CustomLoggerFinder.CustomLogger l =
(CustomLoggerFinder.CustomLogger)
! (isSystem ? provider.getLogger(logger.getName(), Thread.class.getModule()) :
! provider.getLogger(logger.getName(), LoggerFinderBackendTest.class.getModule()));
l.setLevel(provider.fromJul(level));
}
@Override
public void setLevel(java.lang.System.Logger logger,
java.lang.System.Logger.Level level) {
*** 1838,1849 ****
}
CustomLoggerFinder.CustomLevel getLevel(java.lang.System.Logger logger) {
final CustomLoggerFinder.CustomLogger l =
(CustomLoggerFinder.CustomLogger)
! (isSystem ? provider.getLogger(logger.getName(), Thread.class) :
! provider.getLogger(logger.getName(), LoggerFinderBackendTest.class));
return l.level;
}
@Override
public List<CustomLoggerFinder.CustomLogRecord> getBackendRecords() {
--- 1839,1850 ----
}
CustomLoggerFinder.CustomLevel getLevel(java.lang.System.Logger logger) {
final CustomLoggerFinder.CustomLogger l =
(CustomLoggerFinder.CustomLogger)
! (isSystem ? provider.getLogger(logger.getName(), Thread.class.getModule()) :
! provider.getLogger(logger.getName(), LoggerFinderBackendTest.class.getModule()));
return l.level;
}
@Override
public List<CustomLoggerFinder.CustomLogRecord> getBackendRecords() {
*** 1960,1981 ****
static {
// jdk.internal.logger.LazyLoggers.getLazyLogger(name, caller);
try {
Class<?> lazyLoggers = jdk.internal.logger.LazyLoggers.class;
getLazyLogger = lazyLoggers.getMethod("getLazyLogger",
! String.class, Class.class);
getLazyLogger.setAccessible(true);
Class<?> loggerFinderLoader =
Class.forName("java.lang.System$LoggerFinder");
accessLoggerFinder = loggerFinderLoader.getDeclaredMethod("accessProvider");
accessLoggerFinder.setAccessible(true);
} catch (Throwable ex) {
throw new ExceptionInInitializerError(ex);
}
}
! static java.lang.System.Logger getSystemLogger(String name, Class<?> caller) throws Exception {
try {
return java.lang.System.Logger.class.cast(getLazyLogger.invoke(null, name, caller));
} catch (InvocationTargetException x) {
Throwable t = x.getTargetException();
if (t instanceof Exception) {
--- 1961,1982 ----
static {
// jdk.internal.logger.LazyLoggers.getLazyLogger(name, caller);
try {
Class<?> lazyLoggers = jdk.internal.logger.LazyLoggers.class;
getLazyLogger = lazyLoggers.getMethod("getLazyLogger",
! String.class, Module.class);
getLazyLogger.setAccessible(true);
Class<?> loggerFinderLoader =
Class.forName("java.lang.System$LoggerFinder");
accessLoggerFinder = loggerFinderLoader.getDeclaredMethod("accessProvider");
accessLoggerFinder.setAccessible(true);
} catch (Throwable ex) {
throw new ExceptionInInitializerError(ex);
}
}
! static java.lang.System.Logger getSystemLogger(String name, Module caller) throws Exception {
try {
return java.lang.System.Logger.class.cast(getLazyLogger.invoke(null, name, caller));
} catch (InvocationTargetException x) {
Throwable t = x.getTargetException();
if (t instanceof Exception) {
*** 1984,1994 ****
throw (Error)t;
}
}
}
static java.lang.System.Logger getSystemLogger(String name,
! ResourceBundle bundle, Class<?> caller) throws Exception {
try {
LoggerFinder provider = LoggerFinder.class.cast(accessLoggerFinder.invoke(null));
return provider.getLocalizedLogger(name, bundle, caller);
} catch (InvocationTargetException x) {
Throwable t = x.getTargetException();
--- 1985,1995 ----
throw (Error)t;
}
}
}
static java.lang.System.Logger getSystemLogger(String name,
! ResourceBundle bundle, Module caller) throws Exception {
try {
LoggerFinder provider = LoggerFinder.class.cast(accessLoggerFinder.invoke(null));
return provider.getLocalizedLogger(name, bundle, caller);
} catch (InvocationTargetException x) {
Throwable t = x.getTargetException();
*** 2045,2079 ****
// Test a simple application logger with JUL backend
final BackendTester tester = factory.createBackendTester(false);
final java.lang.System.Logger logger =
java.lang.System.LoggerFinder.getLoggerFinder()
! .getLogger("foo", LoggerFinderBackendTest.class);
testLogger(tester, logger, nb);
// Test a simple system logger with JUL backend
final java.lang.System.Logger system =
java.lang.System.LoggerFinder.getLoggerFinder()
! .getLogger("bar", Thread.class);
final BackendTester systemTester = factory.createBackendTester(true);
testLogger(systemTester, system, nb);
// Test a localized application logger with null resource bundle and
// JUL backend
final java.lang.System.Logger noBundleLogger =
java.lang.System.LoggerFinder.getLoggerFinder()
! .getLocalizedLogger("baz", null, LoggerFinderBackendTest.class);
final BackendTester noBundleTester =
factory.createBackendTester(false, spiLoggerClass);
testLogger(noBundleTester, noBundleLogger, nb);
// Test a localized system logger with null resource bundle and JUL
// backend
final java.lang.System.Logger noBundleSysLogger =
java.lang.System.LoggerFinder.getLoggerFinder()
! .getLocalizedLogger("oof", null, Thread.class);
final BackendTester noBundleSysTester =
factory.createBackendTester(true, spiLoggerClass);
testLogger(noBundleSysTester, noBundleSysLogger, nb);
// Test a localized application logger with null resource bundle and
--- 2046,2080 ----
// Test a simple application logger with JUL backend
final BackendTester tester = factory.createBackendTester(false);
final java.lang.System.Logger logger =
java.lang.System.LoggerFinder.getLoggerFinder()
! .getLogger("foo", LoggerFinderBackendTest.class.getModule());
testLogger(tester, logger, nb);
// Test a simple system logger with JUL backend
final java.lang.System.Logger system =
java.lang.System.LoggerFinder.getLoggerFinder()
! .getLogger("bar", Thread.class.getModule());
final BackendTester systemTester = factory.createBackendTester(true);
testLogger(systemTester, system, nb);
// Test a localized application logger with null resource bundle and
// JUL backend
final java.lang.System.Logger noBundleLogger =
java.lang.System.LoggerFinder.getLoggerFinder()
! .getLocalizedLogger("baz", null, LoggerFinderBackendTest.class.getModule());
final BackendTester noBundleTester =
factory.createBackendTester(false, spiLoggerClass);
testLogger(noBundleTester, noBundleLogger, nb);
// Test a localized system logger with null resource bundle and JUL
// backend
final java.lang.System.Logger noBundleSysLogger =
java.lang.System.LoggerFinder.getLoggerFinder()
! .getLocalizedLogger("oof", null, Thread.class.getModule());
final BackendTester noBundleSysTester =
factory.createBackendTester(true, spiLoggerClass);
testLogger(noBundleSysTester, noBundleSysLogger, nb);
// Test a localized application logger with null resource bundle and
*** 2083,2108 ****
throw new RuntimeException("Expected NullPointerException not thrown");
} catch (NullPointerException x) {
System.out.println("System.Loggers.getLogger(\"baz\", null): got expected " + x);
}
final java.lang.System.Logger noBundleExtensionLogger =
! getSystemLogger("baz", null, LoggerFinderBackendTest.class);
final BackendTester noBundleExtensionTester =
factory.createBackendTester(false, jdkLoggerClass);
testLogger(noBundleExtensionTester, noBundleExtensionLogger, nb);
// Test a simple system logger with JUL backend
final java.lang.System.Logger sysExtensionLogger =
! getSystemLogger("oof", Thread.class);
final BackendTester sysExtensionTester =
factory.createBackendTester(true, jdkLoggerClass);
testLogger(sysExtensionTester, sysExtensionLogger, nb);
// Test a localized system logger with null resource bundle and JUL
// backend
final java.lang.System.Logger noBundleSysExtensionLogger =
! getSystemLogger("oof", null, Thread.class);
final BackendTester noBundleSysExtensionTester =
factory.createBackendTester(true, jdkLoggerClass);
testLogger(noBundleSysExtensionTester, noBundleSysExtensionLogger, nb);
// Test a localized application logger converted to JDK with null
--- 2084,2109 ----
throw new RuntimeException("Expected NullPointerException not thrown");
} catch (NullPointerException x) {
System.out.println("System.Loggers.getLogger(\"baz\", null): got expected " + x);
}
final java.lang.System.Logger noBundleExtensionLogger =
! getSystemLogger("baz", null, LoggerFinderBackendTest.class.getModule());
final BackendTester noBundleExtensionTester =
factory.createBackendTester(false, jdkLoggerClass);
testLogger(noBundleExtensionTester, noBundleExtensionLogger, nb);
// Test a simple system logger with JUL backend
final java.lang.System.Logger sysExtensionLogger =
! getSystemLogger("oof", Thread.class.getModule());
final BackendTester sysExtensionTester =
factory.createBackendTester(true, jdkLoggerClass);
testLogger(sysExtensionTester, sysExtensionLogger, nb);
// Test a localized system logger with null resource bundle and JUL
// backend
final java.lang.System.Logger noBundleSysExtensionLogger =
! getSystemLogger("oof", null, Thread.class.getModule());
final BackendTester noBundleSysExtensionTester =
factory.createBackendTester(true, jdkLoggerClass);
testLogger(noBundleSysExtensionTester, noBundleSysExtensionLogger, nb);
// Test a localized application logger converted to JDK with null
*** 2125,2143 ****
// backend
final ResourceBundle bundle =
ResourceBundle.getBundle(ResourceBundeLocalized.class.getName());
final java.lang.System.Logger bundleLogger =
java.lang.System.LoggerFinder.getLoggerFinder()
! .getLocalizedLogger("toto", bundle, LoggerFinderBackendTest.class);
final BackendTester bundleTester =
factory.createBackendTester(false, spiLoggerClass, bundle);
testLogger(bundleTester, bundleLogger, nb);
// Test a localized system logger with resource bundle and JUL backend
final java.lang.System.Logger bundleSysLogger =
java.lang.System.LoggerFinder.getLoggerFinder()
! .getLocalizedLogger("titi", bundle, Thread.class);
final BackendTester bundleSysTester =
factory.createBackendTester(true, spiLoggerClass, bundle);
testLogger(bundleSysTester, bundleSysLogger, nb);
// Test a localized Jdk application logger with resource bundle and JUL
--- 2126,2144 ----
// backend
final ResourceBundle bundle =
ResourceBundle.getBundle(ResourceBundeLocalized.class.getName());
final java.lang.System.Logger bundleLogger =
java.lang.System.LoggerFinder.getLoggerFinder()
! .getLocalizedLogger("toto", bundle, LoggerFinderBackendTest.class.getModule());
final BackendTester bundleTester =
factory.createBackendTester(false, spiLoggerClass, bundle);
testLogger(bundleTester, bundleLogger, nb);
// Test a localized system logger with resource bundle and JUL backend
final java.lang.System.Logger bundleSysLogger =
java.lang.System.LoggerFinder.getLoggerFinder()
! .getLocalizedLogger("titi", bundle, Thread.class.getModule());
final BackendTester bundleSysTester =
factory.createBackendTester(true, spiLoggerClass, bundle);
testLogger(bundleSysTester, bundleSysLogger, nb);
// Test a localized Jdk application logger with resource bundle and JUL
*** 2149,2159 ****
testLogger(bundleExtensionTester, bundleExtensionLogger, nb);
// Test a localized Jdk system logger with resource bundle and JUL
// backend
final java.lang.System.Logger bundleExtensionSysLogger =
! getSystemLogger("titu", bundle, Thread.class);
final BackendTester bundleExtensionSysTester =
factory.createBackendTester(true, jdkLoggerClass, bundle);
testLogger(bundleExtensionSysTester, bundleExtensionSysLogger, nb);
// Test a localized application logger converted to JDK with resource
--- 2150,2160 ----
testLogger(bundleExtensionTester, bundleExtensionLogger, nb);
// Test a localized Jdk system logger with resource bundle and JUL
// backend
final java.lang.System.Logger bundleExtensionSysLogger =
! getSystemLogger("titu", bundle, Thread.class.getModule());
final BackendTester bundleExtensionSysTester =
factory.createBackendTester(true, jdkLoggerClass, bundle);
testLogger(bundleExtensionSysTester, bundleExtensionSysLogger, nb);
// Test a localized application logger converted to JDK with resource
< prev index next >