From 19d870e2cf0f25889ce4836029a1ed2824d2e935 Mon Sep 17 00:00:00 2001 From: Anitha K J Date: Wed, 2 Jul 2025 09:59:53 +0530 Subject: [PATCH 1/6] Switched to LoggingHelper.init() to clean up duplicate logging code --- JMS/com/ibm/mq/samples/jms/JmsGet.java | 20 +++-------------- JMS/com/ibm/mq/samples/jms/JmsPub.java | 22 ++++--------------- JMS/com/ibm/mq/samples/jms/JmsPut.java | 20 +++-------------- JMS/com/ibm/mq/samples/jms/JmsRequest.java | 20 +++-------------- JMS/com/ibm/mq/samples/jms/JmsResponse.java | 20 +++-------------- JMS/com/ibm/mq/samples/jms/JmsSub.java | 20 +++-------------- JMS/com/ibm/mq/samples/jms/LoggingHelper.java | 22 +++++++++++++------ 7 files changed, 34 insertions(+), 110 deletions(-) diff --git a/JMS/com/ibm/mq/samples/jms/JmsGet.java b/JMS/com/ibm/mq/samples/jms/JmsGet.java index 6140cd8e..ca467b0b 100644 --- a/JMS/com/ibm/mq/samples/jms/JmsGet.java +++ b/JMS/com/ibm/mq/samples/jms/JmsGet.java @@ -1,5 +1,5 @@ /* -* (c) Copyright IBM Corporation 2019, 2024 +* (c) Copyright IBM Corporation 2019, 2025 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -50,6 +50,7 @@ import com.ibm.mq.samples.jms.SampleEnvSetter; import com.ibm.mq.samples.jms.JwtHelper; +import com.ibm.mq.samples.jms.LoggingHelper; public class JmsGet { @@ -77,7 +78,7 @@ public class JmsGet { public static void main(String[] args) { logger.info("Get application is starting"); - initialiseLogging(); + LoggingHelper.init(logger); SampleEnvSetter env = new SampleEnvSetter(); int limit = env.getCount(); @@ -256,21 +257,6 @@ private static void recordFailure(Exception ex) { return; } - private static void initialiseLogging() { - Logger defaultLogger = Logger.getLogger(""); - Handler[] handlers = defaultLogger.getHandlers(); - if (handlers != null && handlers.length > 0) { - defaultLogger.removeHandler(handlers[0]); - } - - Handler consoleHandler = new ConsoleHandler(); - consoleHandler.setLevel(LOGLEVEL); - logger.addHandler(consoleHandler); - - logger.setLevel(LOGLEVEL); - logger.finest("Logging initialised"); - } - private static void waitAWhile(int duration) { try { Thread.sleep(duration); diff --git a/JMS/com/ibm/mq/samples/jms/JmsPub.java b/JMS/com/ibm/mq/samples/jms/JmsPub.java index 3b31e947..ed0e6ffa 100644 --- a/JMS/com/ibm/mq/samples/jms/JmsPub.java +++ b/JMS/com/ibm/mq/samples/jms/JmsPub.java @@ -1,5 +1,5 @@ /* -* (c) Copyright IBM Corporation 2019, 2024 +* (c) Copyright IBM Corporation 2019, 2025 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -50,6 +50,7 @@ import com.ibm.mq.samples.jms.SampleEnvSetter; import com.ibm.mq.samples.jms.JwtHelper; +import com.ibm.mq.samples.jms.LoggingHelper; public class JmsPub { private static final String DEFAULT_APP_NAME = "Dev Experience JmsPub"; @@ -73,7 +74,7 @@ public class JmsPub { private static String accessToken = null; public static void main(String[] args) { - initialiseLogging(); + LoggingHelper.init(logger); SampleEnvSetter env = new SampleEnvSetter(); jh = new JwtHelper(env); if (jh.isJwtEnabled()) { @@ -109,7 +110,7 @@ public static void main(String[] args) { logger.info("Publishing messages.\n"); try { - publisher.send(destination, "this is a message"); + publisher.send(destination, "this is a message " + i); logger.info("message was sent"); Thread.sleep(2000); } catch (JMSRuntimeException jmsex) { @@ -218,21 +219,6 @@ private static void recordFailure(Exception ex) { return; } - private static void initialiseLogging() { - Logger defaultLogger = Logger.getLogger(""); - Handler[] handlers = defaultLogger.getHandlers(); - if (handlers != null && handlers.length > 0) { - defaultLogger.removeHandler(handlers[0]); - } - - Handler consoleHandler = new ConsoleHandler(); - consoleHandler.setLevel(LOGLEVEL); - logger.addHandler(consoleHandler); - - logger.setLevel(LOGLEVEL); - logger.finest("Logging initialised"); - } - private static void setUserCredentials(JmsConnectionFactory cf) { try { if (accessToken != null) { diff --git a/JMS/com/ibm/mq/samples/jms/JmsPut.java b/JMS/com/ibm/mq/samples/jms/JmsPut.java index 36447c63..ab5f793b 100644 --- a/JMS/com/ibm/mq/samples/jms/JmsPut.java +++ b/JMS/com/ibm/mq/samples/jms/JmsPut.java @@ -1,5 +1,5 @@ /* -* (c) Copyright IBM Corporation 2019, 2024 +* (c) Copyright IBM Corporation 2019, 2025 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -50,6 +50,7 @@ import com.ibm.mq.samples.jms.SampleEnvSetter; import com.ibm.mq.samples.jms.JwtHelper; +import com.ibm.mq.samples.jms.LoggingHelper; public class JmsPut { @@ -73,7 +74,7 @@ public class JmsPut { private static String accessToken = null; public static void main(String[] args) { - initialiseLogging(); + LoggingHelper.init(logger); SampleEnvSetter env = new SampleEnvSetter(); jh = new JwtHelper(env); if (jh.isJwtEnabled()) { @@ -206,21 +207,6 @@ private static void recordFailure(Exception ex) { return; } - private static void initialiseLogging() { - Logger defaultLogger = Logger.getLogger(""); - Handler[] handlers = defaultLogger.getHandlers(); - if (handlers != null && handlers.length > 0) { - defaultLogger.removeHandler(handlers[0]); - } - - Handler consoleHandler = new ConsoleHandler(); - consoleHandler.setLevel(LOGLEVEL); - logger.addHandler(consoleHandler); - - logger.setLevel(LOGLEVEL); - logger.finest("Logging initialised"); - } - private static void setUserCredentials(JmsConnectionFactory cf) { try { if (accessToken != null) { diff --git a/JMS/com/ibm/mq/samples/jms/JmsRequest.java b/JMS/com/ibm/mq/samples/jms/JmsRequest.java index f49a03e1..7bdbf06c 100644 --- a/JMS/com/ibm/mq/samples/jms/JmsRequest.java +++ b/JMS/com/ibm/mq/samples/jms/JmsRequest.java @@ -1,5 +1,5 @@ /* -* (c) Copyright IBM Corporation 2019, 2024 +* (c) Copyright IBM Corporation 2019, 2025 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -58,6 +58,7 @@ import com.ibm.mq.samples.jms.SampleEnvSetter; import com.ibm.mq.samples.jms.JwtHelper; +import com.ibm.mq.samples.jms.LoggingHelper; public class JmsRequest { @@ -91,7 +92,7 @@ public class JmsRequest { public static void main(String[] args) { - initialiseLogging(); + LoggingHelper.init(logger); SampleEnvSetter env = new SampleEnvSetter(); jh = new JwtHelper(env); if (jh.isJwtEnabled()) { @@ -328,21 +329,6 @@ private static void recordFailure(Exception ex) { return; } - private static void initialiseLogging() { - Logger defaultLogger = Logger.getLogger(""); - Handler[] handlers = defaultLogger.getHandlers(); - if (handlers != null && handlers.length > 0) { - defaultLogger.removeHandler(handlers[0]); - } - - Handler consoleHandler = new ConsoleHandler(); - consoleHandler.setLevel(LOGLEVEL); - logger.addHandler(consoleHandler); - - logger.setLevel(LOGLEVEL); - logger.finest("Logging initialised"); - } - private static void setUserCredentials(JmsConnectionFactory cf) { try { if (accessToken != null) { diff --git a/JMS/com/ibm/mq/samples/jms/JmsResponse.java b/JMS/com/ibm/mq/samples/jms/JmsResponse.java index c5092b20..11640c59 100644 --- a/JMS/com/ibm/mq/samples/jms/JmsResponse.java +++ b/JMS/com/ibm/mq/samples/jms/JmsResponse.java @@ -1,5 +1,5 @@ /* -* (c) Copyright IBM Corporation 2019, 2024 +* (c) Copyright IBM Corporation 2019, 2025 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -62,6 +62,7 @@ import com.ibm.mq.samples.jms.SampleEnvSetter; import com.ibm.mq.samples.jms.JwtHelper; +import com.ibm.mq.samples.jms.LoggingHelper; public class JmsResponse { private static final String DEFAULT_APP_NAME = "Dev Experience JmsResponse"; @@ -87,7 +88,7 @@ public class JmsResponse { private static Long HOUR = 60 * 60 * SECOND; public static void main(String[] args) { - initialiseLogging(); + LoggingHelper.init(logger); SampleEnvSetter env = new SampleEnvSetter(); jh = new JwtHelper(env); if (jh.isJwtEnabled()) { @@ -409,21 +410,6 @@ private static void recordFailure(Exception ex) { return; } - private static void initialiseLogging() { - Logger defaultLogger = Logger.getLogger(""); - Handler[] handlers = defaultLogger.getHandlers(); - if (handlers != null && handlers.length > 0) { - defaultLogger.removeHandler(handlers[0]); - } - - Handler consoleHandler = new ConsoleHandler(); - consoleHandler.setLevel(LOGLEVEL); - logger.addHandler(consoleHandler); - - logger.setLevel(LOGLEVEL); - logger.finest("Logging initialised"); - } - private static void setUserCredentials(JmsConnectionFactory cf) { try { if (accessToken != null) { diff --git a/JMS/com/ibm/mq/samples/jms/JmsSub.java b/JMS/com/ibm/mq/samples/jms/JmsSub.java index 5334caa5..bf88a39c 100644 --- a/JMS/com/ibm/mq/samples/jms/JmsSub.java +++ b/JMS/com/ibm/mq/samples/jms/JmsSub.java @@ -1,5 +1,5 @@ /* -* (c) Copyright IBM Corporation 2019, 2024 +* (c) Copyright IBM Corporation 2019, 2025 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -47,6 +47,7 @@ import com.ibm.mq.samples.jms.SampleEnvSetter; import com.ibm.mq.samples.jms.JwtHelper; +import com.ibm.mq.samples.jms.LoggingHelper; public class JmsSub { private static final String DEFAULT_APP_NAME = "Dev Experience JmsSub"; @@ -69,7 +70,7 @@ public class JmsSub { private static String accessToken = null; public static void main(String[] args) { - initialiseLogging(); + LoggingHelper.init(logger); SampleEnvSetter env = new SampleEnvSetter(); jh = new JwtHelper(env); if (jh.isJwtEnabled()) { @@ -209,21 +210,6 @@ private static void recordFailure(Exception ex) { return; } - private static void initialiseLogging() { - Logger defaultLogger = Logger.getLogger(""); - Handler[] handlers = defaultLogger.getHandlers(); - if (handlers != null && handlers.length > 0) { - defaultLogger.removeHandler(handlers[0]); - } - - Handler consoleHandler = new ConsoleHandler(); - consoleHandler.setLevel(LOGLEVEL); - logger.addHandler(consoleHandler); - - logger.setLevel(LOGLEVEL); - logger.finest("Logging initialised"); - } - private static void setUserCredentials(JmsConnectionFactory cf) { try { if (accessToken != null) { diff --git a/JMS/com/ibm/mq/samples/jms/LoggingHelper.java b/JMS/com/ibm/mq/samples/jms/LoggingHelper.java index 2855ec1f..9de0a016 100644 --- a/JMS/com/ibm/mq/samples/jms/LoggingHelper.java +++ b/JMS/com/ibm/mq/samples/jms/LoggingHelper.java @@ -1,5 +1,5 @@ /* -* (c) Copyright IBM Corporation 2019 +* (c) Copyright IBM Corporation 2019, 2025 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,20 +19,28 @@ import java.util.logging.*; public class LoggingHelper { + private static boolean isLoggingInitialized = false; private static final Level LOGLEVEL = Level.ALL; public static void init(Logger logger) { - Logger defaultLogger = Logger.getLogger(""); - Handler[] handlers = defaultLogger.getHandlers(); - if (handlers != null && handlers.length > 0) { - defaultLogger.removeHandler(handlers[0]); + if (isLoggingInitialized) + return; + + logger.setUseParentHandlers(false); // avoid duplicate logs + + for (Handler handler : logger.getHandlers()) { + if (handler instanceof ConsoleHandler) { + logger.removeHandler(handler); + } } - Handler consoleHandler = new ConsoleHandler(); + ConsoleHandler consoleHandler = new ConsoleHandler(); consoleHandler.setLevel(LOGLEVEL); logger.addHandler(consoleHandler); logger.setLevel(LOGLEVEL); - logger.finest("Logging initialised"); + logger.finest("Logging initialized"); + + isLoggingInitialized = true; } } \ No newline at end of file From eaeb973ac74361655196b505ff6f4308d3f5235a Mon Sep 17 00:00:00 2001 From: Anitha K J Date: Wed, 2 Jul 2025 10:00:23 +0530 Subject: [PATCH 2/6] updated the thread sleep time --- JMS/src/test/java/com/ibm/mq/samples/jms/JmsPubSubTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/JMS/src/test/java/com/ibm/mq/samples/jms/JmsPubSubTest.java b/JMS/src/test/java/com/ibm/mq/samples/jms/JmsPubSubTest.java index 110b2f40..6eccf6db 100644 --- a/JMS/src/test/java/com/ibm/mq/samples/jms/JmsPubSubTest.java +++ b/JMS/src/test/java/com/ibm/mq/samples/jms/JmsPubSubTest.java @@ -1,5 +1,5 @@ /* -* (c) Copyright IBM Corporation 2024 +* (c) Copyright IBM Corporation 2024, 2025 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -58,7 +58,7 @@ public void testJmsPubSub(){ subThread.start(); //Wait for subscription to take place before publishing try { - Thread.sleep(2000); + Thread.sleep(5000); } catch (Exception e) { e.printStackTrace(); } From 76b675ab9d9a6695bf6e70f0c7ac4acb15baef35 Mon Sep 17 00:00:00 2001 From: Anitha K J Date: Wed, 2 Jul 2025 10:02:33 +0530 Subject: [PATCH 3/6] updated the init method --- JMS/com/ibm/mq/samples/jms/LoggingHelper.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/JMS/com/ibm/mq/samples/jms/LoggingHelper.java b/JMS/com/ibm/mq/samples/jms/LoggingHelper.java index 9de0a016..741c5e95 100644 --- a/JMS/com/ibm/mq/samples/jms/LoggingHelper.java +++ b/JMS/com/ibm/mq/samples/jms/LoggingHelper.java @@ -25,22 +25,19 @@ public class LoggingHelper { public static void init(Logger logger) { if (isLoggingInitialized) return; - - logger.setUseParentHandlers(false); // avoid duplicate logs + // avoid duplicate logs + logger.setUseParentHandlers(false); for (Handler handler : logger.getHandlers()) { if (handler instanceof ConsoleHandler) { logger.removeHandler(handler); } } - ConsoleHandler consoleHandler = new ConsoleHandler(); consoleHandler.setLevel(LOGLEVEL); logger.addHandler(consoleHandler); - logger.setLevel(LOGLEVEL); logger.finest("Logging initialized"); - isLoggingInitialized = true; } } \ No newline at end of file From bd03ba2c6b7889d124bc6559c5c948e0d767314f Mon Sep 17 00:00:00 2001 From: Anitha K J Date: Thu, 3 Jul 2025 14:51:46 +0530 Subject: [PATCH 4/6] Added afterall to restore the custom path and added clearproperty to clean up the system setproperty --- .../ibm/mq/samples/jms/SampleEnvSetterTest.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/JMS/src/test/java/com/ibm/mq/samples/jms/SampleEnvSetterTest.java b/JMS/src/test/java/com/ibm/mq/samples/jms/SampleEnvSetterTest.java index deec6ccb..1ff7ae2e 100644 --- a/JMS/src/test/java/com/ibm/mq/samples/jms/SampleEnvSetterTest.java +++ b/JMS/src/test/java/com/ibm/mq/samples/jms/SampleEnvSetterTest.java @@ -19,6 +19,7 @@ import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.AfterAll; public class SampleEnvSetterTest { @@ -30,6 +31,16 @@ public static void setUp(){ envSetter = new SampleEnvSetter(); } + @AfterAll + public static void tearDown() { + // Restore the original value so other tests are unaffected + if (originalEnvFile != null) { + System.setProperty(SampleEnvSetter.ENV_FILE, originalEnvFile); + } else { + System.clearProperty(SampleEnvSetter.ENV_FILE); + } + } + @Test public void testGetEnvValueWithoutEnv() { @@ -51,6 +62,7 @@ public void testGetEnvValueWithEnv() { // Test for non-existing key but existing Environment variable String value = envSetter.getEnvValue("APP_USER", 1); assertEquals("testUser", value); + System.clearProperty("APP_USER"); } @Test @@ -84,6 +96,7 @@ public void testGEBVWithEnv(){ //Test for Non existing but existing env key Boolean value = envSetter.getEnvBooleanValue("BINDINGS", 0); assertTrue(value); + System.clearProperty("BINDINGS"); } @Test @@ -102,6 +115,7 @@ public void testGetCheckCCDT(){ value = envSetter.getCheckForCCDT(); //Test for getCheckForCCDT with MQCCDTURL set to incorrect ccdt file location assertNull(value); + System.clearProperty("MQCCDTURL"); } @Test From f9357b70755735bfc78b3a690d3f40649eb1bcad Mon Sep 17 00:00:00 2001 From: Anitha K J Date: Thu, 3 Jul 2025 15:02:07 +0530 Subject: [PATCH 5/6] added the variable --- .../test/java/com/ibm/mq/samples/jms/SampleEnvSetterTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/JMS/src/test/java/com/ibm/mq/samples/jms/SampleEnvSetterTest.java b/JMS/src/test/java/com/ibm/mq/samples/jms/SampleEnvSetterTest.java index 1ff7ae2e..993cf083 100644 --- a/JMS/src/test/java/com/ibm/mq/samples/jms/SampleEnvSetterTest.java +++ b/JMS/src/test/java/com/ibm/mq/samples/jms/SampleEnvSetterTest.java @@ -23,6 +23,7 @@ public class SampleEnvSetterTest { + private static String originalEnvFile; private static SampleEnvSetter envSetter; @BeforeAll From d0cfd9be7fe0cbd064b5370e7a9483ef9b4ab281 Mon Sep 17 00:00:00 2001 From: Anitha K J Date: Thu, 3 Jul 2025 17:14:34 +0530 Subject: [PATCH 6/6] copyright year update --- .../test/java/com/ibm/mq/samples/jms/SampleEnvSetterTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/JMS/src/test/java/com/ibm/mq/samples/jms/SampleEnvSetterTest.java b/JMS/src/test/java/com/ibm/mq/samples/jms/SampleEnvSetterTest.java index 993cf083..96032da3 100644 --- a/JMS/src/test/java/com/ibm/mq/samples/jms/SampleEnvSetterTest.java +++ b/JMS/src/test/java/com/ibm/mq/samples/jms/SampleEnvSetterTest.java @@ -1,5 +1,5 @@ /* -* (c) Copyright IBM Corporation 2024 +* (c) Copyright IBM Corporation 2024, 2025 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License.