From 73ff82882b1cd1123879098f91011a70abbc2532 Mon Sep 17 00:00:00 2001 From: Guillaume Smet Date: Wed, 7 Sep 2022 13:06:58 +0200 Subject: [PATCH] Prepare for silencing JBoss Threads version via system property In some cases (typically Quarkus main tests), it is extremely hard to avoir printing the JBoss Threads version. Thus why we introduced a system property to disable version printing in JBoss Threads. --- .../deployment/dev/QuarkusDevModeLauncher.java | 2 ++ .../src/main/java/io/quarkus/runtime/Quarkus.java | 2 ++ .../io/quarkus/runtime/logging/JBossVersion.java | 13 +++++++++++++ .../test/junit/QuarkusIntegrationTestExtension.java | 3 +++ .../junit/QuarkusMainIntegrationTestExtension.java | 3 +++ .../test/junit/QuarkusMainTestExtension.java | 5 +++++ .../io/quarkus/test/junit/QuarkusTestExtension.java | 3 +++ 7 files changed, 31 insertions(+) create mode 100644 core/runtime/src/main/java/io/quarkus/runtime/logging/JBossVersion.java diff --git a/core/deployment/src/main/java/io/quarkus/deployment/dev/QuarkusDevModeLauncher.java b/core/deployment/src/main/java/io/quarkus/deployment/dev/QuarkusDevModeLauncher.java index b78f854de8acc..be465962e7a60 100644 --- a/core/deployment/src/main/java/io/quarkus/deployment/dev/QuarkusDevModeLauncher.java +++ b/core/deployment/src/main/java/io/quarkus/deployment/dev/QuarkusDevModeLauncher.java @@ -32,6 +32,7 @@ import io.quarkus.bootstrap.app.QuarkusBootstrap; import io.quarkus.deployment.dev.DevModeContext.ModuleInfo; import io.quarkus.maven.dependency.ArtifactKey; +import io.quarkus.runtime.logging.JBossVersion; import io.quarkus.runtime.util.JavaVersionUtil; import io.quarkus.utilities.JavaBinFinder; @@ -313,6 +314,7 @@ protected QuarkusDevModeLauncher() { * Attempts to prepare the dev mode runner. */ protected void prepare() throws Exception { + JBossVersion.disableVersionLogging(); if (!JavaVersionUtil.isGraalvmJdk()) { // prevent C2 compiler for kicking in - makes startup a little faster diff --git a/core/runtime/src/main/java/io/quarkus/runtime/Quarkus.java b/core/runtime/src/main/java/io/quarkus/runtime/Quarkus.java index 5b92c73344abe..123e2047fec22 100644 --- a/core/runtime/src/main/java/io/quarkus/runtime/Quarkus.java +++ b/core/runtime/src/main/java/io/quarkus/runtime/Quarkus.java @@ -7,6 +7,7 @@ import org.jboss.logging.Logger; import io.quarkus.launcher.QuarkusLauncher; +import io.quarkus.runtime.logging.JBossVersion; /** * The entry point for applications that use a main method. Quarkus will shut down when the main method returns. @@ -56,6 +57,7 @@ public static void run(Class quarkusApplication, S public static void run(Class quarkusApplication, BiConsumer exitHandler, String... args) { try { + JBossVersion.disableVersionLogging(); System.setProperty("java.util.logging.manager", "org.jboss.logmanager.LogManager"); System.setProperty("java.util.concurrent.ForkJoinPool.common.threadFactory", "io.quarkus.bootstrap.forkjoin.QuarkusForkJoinWorkerThreadFactory"); diff --git a/core/runtime/src/main/java/io/quarkus/runtime/logging/JBossVersion.java b/core/runtime/src/main/java/io/quarkus/runtime/logging/JBossVersion.java new file mode 100644 index 0000000000000..bc6f6c06438c2 --- /dev/null +++ b/core/runtime/src/main/java/io/quarkus/runtime/logging/JBossVersion.java @@ -0,0 +1,13 @@ +package io.quarkus.runtime.logging; + +public final class JBossVersion { + + private static final String JBOSS_LOG_VERSION = "jboss.log-version"; + + private JBossVersion() { + } + + public static void disableVersionLogging() { + System.setProperty(JBOSS_LOG_VERSION, "false"); + } +} diff --git a/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusIntegrationTestExtension.java b/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusIntegrationTestExtension.java index 20a67525ef85f..0f0b46e75b15a 100644 --- a/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusIntegrationTestExtension.java +++ b/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusIntegrationTestExtension.java @@ -35,6 +35,7 @@ import org.opentest4j.TestAbortedException; import io.quarkus.bootstrap.logging.InitialConfigurator; +import io.quarkus.runtime.logging.JBossVersion; import io.quarkus.runtime.test.TestHttpEndpointProvider; import io.quarkus.test.common.ArtifactLauncher; import io.quarkus.test.common.DevServicesContext; @@ -134,6 +135,8 @@ private QuarkusTestExtensionState ensureStarted(ExtensionContext extensionContex private QuarkusTestExtensionState doProcessStart(Properties quarkusArtifactProperties, Class profile, ExtensionContext context) throws Throwable { + JBossVersion.disableVersionLogging(); + String artifactType = getArtifactType(quarkusArtifactProperties); boolean isDockerLaunch = isContainer(artifactType); diff --git a/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusMainIntegrationTestExtension.java b/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusMainIntegrationTestExtension.java index e4f1510ae6cd5..61e70d56f0fca 100644 --- a/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusMainIntegrationTestExtension.java +++ b/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusMainIntegrationTestExtension.java @@ -25,6 +25,7 @@ import org.junit.jupiter.api.extension.ParameterResolutionException; import org.junit.jupiter.api.extension.ParameterResolver; +import io.quarkus.runtime.logging.JBossVersion; import io.quarkus.test.common.ArtifactLauncher; import io.quarkus.test.common.TestResourceManager; import io.quarkus.test.junit.launcher.ArtifactLauncherProvider; @@ -58,6 +59,8 @@ public void beforeEach(ExtensionContext context) throws Exception { } private LaunchResult doLaunch(ExtensionContext context, String[] arguments) throws Exception { + JBossVersion.disableVersionLogging(); + if (quarkusArtifactProperties == null) { prepare(context); } diff --git a/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusMainTestExtension.java b/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusMainTestExtension.java index fe8a21f3dc0ee..8770244a682b9 100644 --- a/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusMainTestExtension.java +++ b/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusMainTestExtension.java @@ -27,6 +27,7 @@ import io.quarkus.deployment.dev.testing.LogCapturingOutputFilter; import io.quarkus.dev.console.QuarkusConsole; import io.quarkus.dev.testing.TracingHandler; +import io.quarkus.runtime.logging.JBossVersion; import io.quarkus.test.common.TestResourceManager; import io.quarkus.test.junit.main.Launch; import io.quarkus.test.junit.main.LaunchResult; @@ -65,6 +66,8 @@ public void beforeEach(ExtensionContext context) throws Exception { private void ensurePrepared(ExtensionContext extensionContext, Class profile) throws Exception { + JBossVersion.disableVersionLogging(); + ExtensionContext.Store store = extensionContext.getStore(ExtensionContext.Namespace.GLOBAL); Class testType = store.get(IO_QUARKUS_TESTING_TYPE, Class.class); if (testType != null) { @@ -190,6 +193,8 @@ private void flushAllLoggers() { private int doJavaStart(ExtensionContext context, Class profile, String[] arguments) throws Exception { + JBossVersion.disableVersionLogging(); + TracingHandler.quarkusStarting(); Closeable testResourceManager = null; try { diff --git a/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusTestExtension.java b/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusTestExtension.java index 2190ea351d22a..f42055738ec14 100644 --- a/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusTestExtension.java +++ b/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusTestExtension.java @@ -88,6 +88,7 @@ import io.quarkus.runtime.LaunchMode; import io.quarkus.runtime.configuration.DurationConverter; import io.quarkus.runtime.configuration.ProfileManager; +import io.quarkus.runtime.logging.JBossVersion; import io.quarkus.runtime.test.TestHttpEndpointProvider; import io.quarkus.test.TestMethodInvoker; import io.quarkus.test.common.GroovyCacheCleaner; @@ -204,6 +205,8 @@ public void run() { } private ExtensionState doJavaStart(ExtensionContext context, Class profile) throws Throwable { + JBossVersion.disableVersionLogging(); + TracingHandler.quarkusStarting(); hangDetectionExecutor = Executors.newSingleThreadScheduledExecutor(new ThreadFactory() { @Override