From 45c898786b46a10781f7da70e9f919e2a5be83a6 Mon Sep 17 00:00:00 2001 From: Daniel Kec Date: Mon, 29 May 2023 23:00:22 +0200 Subject: [PATCH] 6921 WLS JMS connector doesn't support named factory bean --- .../helidon/messaging/connectors/jms/ConnectionContext.java | 4 +++- .../messaging/connectors/wls/ThinClientClassLoader.java | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/messaging/connectors/jms/src/main/java/io/helidon/messaging/connectors/jms/ConnectionContext.java b/messaging/connectors/jms/src/main/java/io/helidon/messaging/connectors/jms/ConnectionContext.java index d3895b3a376..bcc32db8d79 100644 --- a/messaging/connectors/jms/src/main/java/io/helidon/messaging/connectors/jms/ConnectionContext.java +++ b/messaging/connectors/jms/src/main/java/io/helidon/messaging/connectors/jms/ConnectionContext.java @@ -36,6 +36,7 @@ import static io.helidon.messaging.connectors.jms.JmsConnector.JNDI_JMS_FACTORY_ATTRIBUTE; import static io.helidon.messaging.connectors.jms.JmsConnector.JNDI_JMS_FACTORY_DEFAULT; import static io.helidon.messaging.connectors.jms.JmsConnector.JNDI_PROPS_ATTRIBUTE; +import static io.helidon.messaging.connectors.jms.JmsConnector.NAMED_FACTORY_ATTRIBUTE; /** * Context related to one actual connection being constructed by JMS connector. @@ -68,7 +69,8 @@ public class ConnectionContext { } boolean isJndi() { - return config.get(JNDI_ATTRIBUTE).exists(); + return config.get(JNDI_ATTRIBUTE).exists() + && !config.get(NAMED_FACTORY_ATTRIBUTE).exists(); } Optional lookupFactory() { diff --git a/messaging/connectors/wls-jms/src/main/java/io/helidon/messaging/connectors/wls/ThinClientClassLoader.java b/messaging/connectors/wls-jms/src/main/java/io/helidon/messaging/connectors/wls/ThinClientClassLoader.java index 2ca5e0452ae..f9d1652fbf1 100644 --- a/messaging/connectors/wls-jms/src/main/java/io/helidon/messaging/connectors/wls/ThinClientClassLoader.java +++ b/messaging/connectors/wls-jms/src/main/java/io/helidon/messaging/connectors/wls/ThinClientClassLoader.java @@ -97,12 +97,14 @@ static T executeInIsolation(IsolationSupplier supplier) { boolean inWlsJar(String name) { // Load jms exceptions from inside the thin jar to avoid deserialization issues - if (name.startsWith("javax.jms") && name.endsWith("Exception")) { + if ((name.startsWith("javax.jms") || name.startsWith("jakarta.jms")) + && name.endsWith("Exception")) { return true; } - // Load only javax JMS API from outside, so cast works + // Load only javax and jakarta JMS API from outside, so cast works return !name.startsWith("javax.jms") + && !name.startsWith("jakarta.jms") && !name.equals(IsolatedContextFactory.class.getName()); }