diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/messaging/IbmMqConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/messaging/IbmMqConnector.java index 7684210..de4d0d8 100644 --- a/test-harness/src/main/java/cz/moneta/test/harness/connectors/messaging/IbmMqConnector.java +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/messaging/IbmMqConnector.java @@ -24,424 +24,423 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; /** - * IBM MQ connector using JMS client with Jakarta JMS API. - * Supports multi-instance Queue Manager, SSL/TLS, and multiple message formats. + * IBM MQ connector using JMS client with Jakarta JMS API. Supports + * multi-instance Queue Manager, SSL/TLS, and multiple message formats. *

- * Supported formats: - * - JSON: JMS TextMessage with plain JSON string (default) - * - XML: JMS TextMessage with XML string - * - UTF-8 (CCSID 1208): JMS BytesMessage with UTF-8 encoding - * - EBCDIC (CCSID 870): JMS BytesMessage with EBCDIC IBM-870 encoding + * Supported formats: - JSON: JMS TextMessage with plain JSON string (default) - + * XML: JMS TextMessage with XML string - UTF-8 (CCSID 1208): JMS BytesMessage + * with UTF-8 encoding - EBCDIC (CCSID 870): JMS BytesMessage with EBCDIC + * IBM-870 encoding */ public class IbmMqConnector implements Connector { - private static final Logger LOG = LogManager.getLogger(IbmMqConnector.class); + private static final Logger LOG = LogManager.getLogger(IbmMqConnector.class); - private static final Charset EBCDIC_870 = Charset.forName("IBM870"); - private static final Charset UTF_8 = StandardCharsets.UTF_8; + private static final Charset EBCDIC_870 = Charset.forName("IBM870"); + private static final Charset UTF_8 = StandardCharsets.UTF_8; - private static final long DEFAULT_POLL_INTERVAL_MS = 100; - private static final long DEFAULT_MAX_POLL_INTERVAL_MS = 1000; + private static final long DEFAULT_POLL_INTERVAL_MS = 100; + private static final long DEFAULT_MAX_POLL_INTERVAL_MS = 1000; - private final MQConnectionFactory connectionFactory; - private JMSContext jmsContext; - private final String queueManager; + private final MQConnectionFactory connectionFactory; + private JMSContext jmsContext; + private final String queueManager; + private final String user; + private final String password; - /** - * Constructor with multi-instance Queue Manager support. - * - * @param connectionNameList Connection name list in format "host1(port1),host2(port2)" - * @param channel MQ channel name - * @param queueManager Queue Manager name - * @param user Username for authentication - * @param password Password for authentication - * @param keystorePath Path to SSL keystore (can be null for non-SSL) - * @param keystorePassword Password for SSL keystore - * @param sslCipherSuite SSL cipher suite to use (e.g., "TLS_RSA_WITH_AES_256_CBC_SHA256") - */ - public IbmMqConnector(String connectionNameList, String channel, String queueManager, - String user, String password, - String keystorePath, String keystorePassword, String sslCipherSuite) { - this.queueManager = queueManager; + /** + * Constructor with multi-instance Queue Manager support. + * + * @param connectionNameList Connection name list in format + * "host1(port1),host2(port2)" + * @param channel MQ channel name + * @param queueManager Queue Manager name + * @param user Username for authentication + * @param password Password for authentication + * @param keystorePath Path to SSL keystore (can be null for non-SSL) + * @param keystorePassword Password for SSL keystore + * @param sslCipherSuite SSL cipher suite to use (e.g., + * "TLS_RSA_WITH_AES_256_CBC_SHA256") + */ + public IbmMqConnector(String connectionNameList, String channel, String queueManager, String user, String password, + String keystorePath, String keystorePassword, String sslCipherSuite) { + this.queueManager = queueManager; + this.user = user; + this.password = password; - try { - MQConnectionFactory cf = new MQConnectionFactory(); + try { + if (keystorePath != null && !keystorePath.isBlank()) { + System.setProperty("javax.net.ssl.keyStore", keystorePath); + System.setProperty("javax.net.ssl.trustStore", keystorePath); + if (keystorePassword != null) { + System.setProperty("javax.net.ssl.keyStorePassword", keystorePassword); + System.setProperty("javax.net.ssl.trustStorePassword", keystorePassword); + } + } - // Set connection name list for multi-instance QMGR - cf.setChannel(channel); - cf.setQueueManager(queueManager); - cf.setConnectionNameList(connectionNameList); - cf.setTransportType(WMQConstants.WMQ_CM_CLIENT); + connectionFactory = new MQConnectionFactory(); + connectionFactory.setConnectionNameList(connectionNameList); + connectionFactory.setQueueManager(queueManager); + connectionFactory.setChannel(channel); + connectionFactory.setTransportType(WMQConstants.WMQ_CM_CLIENT); + if (user != null && !user.isBlank()) { + connectionFactory.setStringProperty(WMQConstants.USERID, user); + } + if (password != null && !password.isBlank()) { + connectionFactory.setStringProperty(WMQConstants.PASSWORD, password); + } - // Set authentication - cf.setStringProperty(WMQConstants.USERID, user); - cf.setStringProperty(WMQConstants.PASSWORD, password); + if (sslCipherSuite != null && !sslCipherSuite.isBlank()) { + connectionFactory.setSSLCipherSuite(sslCipherSuite); + } - // SSL configuration if keystore is provided - if (StringUtils.isNotBlank(keystorePath)) { - System.setProperty("javax.net.ssl.keyStore", keystorePath); - System.setProperty("javax.net.ssl.trustStore", keystorePath); - if (StringUtils.isNotBlank(keystorePassword)) { - System.setProperty("javax.net.ssl.keyStorePassword", keystorePassword); - System.setProperty("javax.net.ssl.trustStorePassword", keystorePassword); - } - if (StringUtils.isNotBlank(sslCipherSuite)) { - cf.setSSLCipherSuite(sslCipherSuite); - } - } + // Initialize JMS context + connect(); - this.connectionFactory = cf; + } catch (Exception e) { + throw new MessagingConnectionException("Failed to create IBM MQ connection to " + queueManager, e); + } + } - // Initialize JMS context - connect(); + /** + * Connect to IBM MQ. + */ + private void connect() { + try { + this.jmsContext = connectionFactory.createContext(user, password, JMSContext.AUTO_ACKNOWLEDGE); + this.jmsContext.start(); + LOG.info("Connected to IBM MQ: {}", queueManager); + } catch (Exception e) { + throw new MessagingConnectionException( + "Failed to connect to IBM MQ: " + queueManager + " - " + e.getMessage(), e); + } + } - } catch (Exception e) { - throw new MessagingConnectionException( - "Failed to create IBM MQ connection to " + queueManager, e); - } - } + /** + * Send a JSON or XML message as TextMessage. + */ + private void sendTextMessage(String queueName, String payload, Map properties) { + javax.jms.Queue queue = getQueue(queueName); - /** - * Connect to IBM MQ. - */ - private void connect() { - try { - this.jmsContext = connectionFactory.createContext(); - this.jmsContext.start(); - LOG.info("Connected to IBM MQ: {}", queueManager); - } catch (Exception e) { - throw new MessagingConnectionException( - "Failed to connect to IBM MQ: " + queueManager + " - " + e.getMessage(), e); - } - } + TextMessage message = jmsContext.createTextMessage(payload); - /** - * Send a JSON or XML message as TextMessage. - */ - private void sendTextMessage(String queueName, String payload, Map properties) { - javax.jms.Queue queue = getQueue(queueName); + // Set JMS properties + if (properties != null) { + for (Map.Entry entry : properties.entrySet()) { + try { + message.setStringProperty(entry.getKey(), entry.getValue()); + } catch (JMSException e) { + LOG.warn("Failed to set property: {}", entry.getKey(), e); + } + } + } - TextMessage message = jmsContext.createTextMessage(payload); + try { + jmsContext.createProducer().send(queue, message); + } catch (RuntimeException e) { + throw new MessagingDestinationException("Failed to send message to queue: " + queueName, e); + } + LOG.debug("Sent JSON/XML message to queue: {}", queueName); + } - // Set JMS properties - if (properties != null) { - for (Map.Entry entry : properties.entrySet()) { - try { - message.setStringProperty(entry.getKey(), entry.getValue()); - } catch (JMSException e) { - LOG.warn("Failed to set property: {}", entry.getKey(), e); - } - } - } + /** + * Send a message as BytesMessage with specific encoding and CCSID. + */ + private void sendBytesMessage(String queueName, String payload, Charset charset, int ccsid, + Map properties) { + javax.jms.Queue queue = getQueue(queueName); - try { - jmsContext.createProducer().send(queue, message); - } catch (RuntimeException e) { - throw new MessagingDestinationException("Failed to send message to queue: " + queueName, e); - } - LOG.debug("Sent JSON/XML message to queue: {}", queueName); - } + BytesMessage message = jmsContext.createBytesMessage(); - /** - * Send a message as BytesMessage with specific encoding and CCSID. - */ - private void sendBytesMessage(String queueName, String payload, Charset charset, - int ccsid, Map properties) { - javax.jms.Queue queue = getQueue(queueName); + // Convert payload to bytes using specified charset + byte[] bytes = payload.getBytes(charset); + try { + message.writeBytes(bytes); + message.setIntProperty("CCSID", ccsid); + } catch (JMSException e) { + throw new MessagingDestinationException("Failed to create bytes message", e); + } - BytesMessage message = jmsContext.createBytesMessage(); + // Set JMS properties + if (properties != null) { + for (Map.Entry entry : properties.entrySet()) { + try { + message.setStringProperty(entry.getKey(), entry.getValue()); + } catch (JMSException e) { + LOG.warn("Failed to set property: {}", entry.getKey(), e); + } + } + } - // Convert payload to bytes using specified charset - byte[] bytes = payload.getBytes(charset); - try { - message.writeBytes(bytes); - message.setIntProperty("CCSID", ccsid); - } catch (JMSException e) { - throw new MessagingDestinationException("Failed to create bytes message", e); - } + try { + jmsContext.createProducer().send(queue, message); + } catch (RuntimeException e) { + throw new MessagingDestinationException("Failed to send message to queue: " + queueName, e); + } + LOG.debug("Sent {} message to queue: {}", charset, queueName); + } - // Set JMS properties - if (properties != null) { - for (Map.Entry entry : properties.entrySet()) { - try { - message.setStringProperty(entry.getKey(), entry.getValue()); - } catch (JMSException e) { - LOG.warn("Failed to set property: {}", entry.getKey(), e); - } - } - } + /** + * Send a message to a queue with specified format. + * + * @param queueName Queue name + * @param payload Message payload + * @param format Message format (JSON, XML, EBCDIC_870, UTF8_1208) + * @param properties JMS properties to set + */ + public void send(String queueName, String payload, MqMessageFormat format, Map properties) { + switch (format) { + case JSON, XML -> sendTextMessage(queueName, payload, properties); + case EBCDIC_870 -> sendBytesMessage(queueName, payload, EBCDIC_870, 870, properties); + case UTF8_1208 -> sendBytesMessage(queueName, payload, UTF_8, 1208, properties); + } + } - try { - jmsContext.createProducer().send(queue, message); - } catch (RuntimeException e) { - throw new MessagingDestinationException("Failed to send message to queue: " + queueName, e); - } - LOG.debug("Sent {} message to queue: {}", charset, queueName); - } + /** + * Receive a message from a queue with timeout. + * + * @param queueName Queue name + * @param messageSelector JMS message selector (optional) + * @param format Expected message format + * @param timeout Timeout duration + * @return Received message + */ + public ReceivedMessage receive(String queueName, String messageSelector, MqMessageFormat format, + java.time.Duration timeout) { + long timeoutMs = timeout.toMillis(); - /** - * Send a message to a queue with specified format. - * - * @param queueName Queue name - * @param payload Message payload - * @param format Message format (JSON, XML, EBCDIC_870, UTF8_1208) - * @param properties JMS properties to set - */ - public void send(String queueName, String payload, MqMessageFormat format, - Map properties) { - switch (format) { - case JSON, XML -> sendTextMessage(queueName, payload, properties); - case EBCDIC_870 -> sendBytesMessage(queueName, payload, EBCDIC_870, 870, properties); - case UTF8_1208 -> sendBytesMessage(queueName, payload, UTF_8, 1208, properties); - } - } + javax.jms.Queue queue = getQueue(queueName); + MessageConsumer consumer = (MessageConsumer) (messageSelector == null || messageSelector.isBlank() + ? jmsContext.createConsumer(queue) + : jmsContext.createConsumer(queue, messageSelector)); - /** - * Receive a message from a queue with timeout. - * - * @param queueName Queue name - * @param messageSelector JMS message selector (optional) - * @param format Expected message format - * @param timeout Timeout duration - * @return Received message - */ - public ReceivedMessage receive(String queueName, String messageSelector, - MqMessageFormat format, java.time.Duration timeout) { - long timeoutMs = timeout.toMillis(); + AtomicBoolean messageFound = new AtomicBoolean(false); + ReceivedMessage received = null; - javax.jms.Queue queue = getQueue(queueName); - MessageConsumer consumer = (MessageConsumer) (messageSelector == null || messageSelector.isBlank() - ? jmsContext.createConsumer(queue) - : jmsContext.createConsumer(queue, messageSelector)); + long pollInterval = DEFAULT_POLL_INTERVAL_MS; + long remainingTime = timeoutMs; - AtomicBoolean messageFound = new AtomicBoolean(false); - ReceivedMessage received = null; + try { + while (remainingTime > 0 && !messageFound.get()) { + Message message = consumer.receive(remainingTime); - long pollInterval = DEFAULT_POLL_INTERVAL_MS; - long remainingTime = timeoutMs; + if (message != null) { + received = decodeMessage(message, queueName, format); + messageFound.set(true); + } else { + // Exponential backoff + pollInterval = Math.min(pollInterval * 2, DEFAULT_MAX_POLL_INTERVAL_MS); + remainingTime -= pollInterval; + } + } - try { - while (remainingTime > 0 && !messageFound.get()) { - Message message = consumer.receive(remainingTime); + if (received == null) { + throw new MessagingTimeoutException("No message matching filter found on queue '" + queueName + + "' within " + timeout.toMillis() + "ms"); + } - if (message != null) { - received = decodeMessage(message, queueName, format); - messageFound.set(true); - } else { - // Exponential backoff - pollInterval = Math.min(pollInterval * 2, DEFAULT_MAX_POLL_INTERVAL_MS); - remainingTime -= pollInterval; - } - } + return received; - if (received == null) { - throw new MessagingTimeoutException( - "No message matching filter found on queue '" + queueName + - "' within " + timeout.toMillis() + "ms"); - } + } catch (MessagingTimeoutException e) { + throw e; + } catch (Exception e) { + throw new MessagingDestinationException("Failed to receive message from queue: " + queueName, e); + } finally { + try { + consumer.close(); + } catch (JMSException e) { + LOG.warn("Failed to close consumer", e); + } + } + } - return received; + /** + * Browse a queue (non-destructive read). + * + * @param queueName Queue name + * @param messageSelector JMS message selector (optional) + * @param format Expected message format + * @param maxMessages Maximum number of messages to browse + * @return List of received messages + */ + public List browse(String queueName, String messageSelector, MqMessageFormat format, + int maxMessages) { + List messages = new ArrayList<>(); - } catch (MessagingTimeoutException e) { - throw e; - } catch (Exception e) { - throw new MessagingDestinationException("Failed to receive message from queue: " + queueName, e); - } finally { - try { - consumer.close(); - } catch (JMSException e) { - LOG.warn("Failed to close consumer", e); - } - } - } + javax.jms.Queue queue = getQueue(queueName); + MessageConsumer consumer = (MessageConsumer) (messageSelector == null || messageSelector.isBlank() + ? jmsContext.createConsumer(queue) + : jmsContext.createConsumer(queue, messageSelector)); - /** - * Browse a queue (non-destructive read). - * - * @param queueName Queue name - * @param messageSelector JMS message selector (optional) - * @param format Expected message format - * @param maxMessages Maximum number of messages to browse - * @return List of received messages - */ - public List browse(String queueName, String messageSelector, - MqMessageFormat format, int maxMessages) { - List messages = new ArrayList<>(); + int count = 0; + try { + while (count < maxMessages) { + Message message = consumer.receiveNoWait(); - javax.jms.Queue queue = getQueue(queueName); - MessageConsumer consumer = (MessageConsumer) (messageSelector == null || messageSelector.isBlank() - ? jmsContext.createConsumer(queue) - : jmsContext.createConsumer(queue, messageSelector)); + if (message == null) { + break; + } - int count = 0; - try { - while (count < maxMessages) { - Message message = consumer.receiveNoWait(); + ReceivedMessage received = decodeMessage(message, queueName, format); + messages.add(received); + count++; + } - if (message == null) { - break; - } + return messages; - ReceivedMessage received = decodeMessage(message, queueName, format); - messages.add(received); - count++; - } + } catch (Exception e) { + throw new MessagingDestinationException("Failed to browse queue: " + queueName, e); + } finally { + try { + consumer.close(); + } catch (JMSException e) { + LOG.warn("Failed to close consumer", e); + } + } + } - return messages; + /** + * Decode a JMS message to ReceivedMessage. + */ + private ReceivedMessage decodeMessage(Message jmsMessage, String queueName, MqMessageFormat format) { + long timestamp; + try { + timestamp = jmsMessage.getJMSTimestamp(); + } catch (JMSException e) { + timestamp = System.currentTimeMillis(); + } + if (timestamp == 0) { + timestamp = System.currentTimeMillis(); + } - } catch (Exception e) { - throw new MessagingDestinationException("Failed to browse queue: " + queueName, e); - } finally { - try { - consumer.close(); - } catch (JMSException e) { - LOG.warn("Failed to close consumer", e); - } - } - } + String body; + MessageContentType contentType; + Map headers = new HashMap<>(); - /** - * Decode a JMS message to ReceivedMessage. - */ - private ReceivedMessage decodeMessage(Message jmsMessage, String queueName, MqMessageFormat format) { - long timestamp; - try { - timestamp = jmsMessage.getJMSTimestamp(); - } catch (JMSException e) { - timestamp = System.currentTimeMillis(); - } - if (timestamp == 0) { - timestamp = System.currentTimeMillis(); - } + // Extract JMS properties as headers + extractJmsProperties(jmsMessage, headers); - String body; - MessageContentType contentType; - Map headers = new HashMap<>(); + if (jmsMessage instanceof TextMessage textMessage) { + try { + body = textMessage.getText(); + } catch (JMSException e) { + throw new RuntimeException("Failed to read text message body", e); + } + contentType = switch (format) { + case XML -> MessageContentType.XML; + default -> MessageContentType.JSON; + }; + } else if (jmsMessage instanceof BytesMessage bytesMessage) { + int ccsid; + try { + ccsid = bytesMessage.getIntProperty("CCSID"); + } catch (JMSException e) { + ccsid = 1208; // default UTF-8 + } + body = decodeBytesMessage(bytesMessage, ccsid); + contentType = MessageContentType.RAW_TEXT; + } else { + try { + throw new IllegalArgumentException("Unsupported message type: " + jmsMessage.getJMSType()); + } catch (JMSException e) { + throw new IllegalArgumentException("Unsupported message type", e); + } + } - // Extract JMS properties as headers - extractJmsProperties(jmsMessage, headers); + return new ReceivedMessage(body, contentType, headers, timestamp, queueName, null); + } - if (jmsMessage instanceof TextMessage textMessage) { - try { - body = textMessage.getText(); - } catch (JMSException e) { - throw new RuntimeException("Failed to read text message body", e); - } - contentType = switch (format) { - case XML -> MessageContentType.XML; - default -> MessageContentType.JSON; - }; - } else if (jmsMessage instanceof BytesMessage bytesMessage) { - int ccsid; - try { - ccsid = bytesMessage.getIntProperty("CCSID"); - } catch (JMSException e) { - ccsid = 1208; // default UTF-8 - } - body = decodeBytesMessage(bytesMessage, ccsid); - contentType = MessageContentType.RAW_TEXT; - } else { - try { - throw new IllegalArgumentException("Unsupported message type: " + jmsMessage.getJMSType()); - } catch (JMSException e) { - throw new IllegalArgumentException("Unsupported message type", e); - } - } + /** + * Decode BytesMessage body based on CCSID. + */ + private String decodeBytesMessage(BytesMessage bytesMessage, int ccsid) { + try { + long bodyLength; + try { + bodyLength = bytesMessage.getBodyLength(); + } catch (JMSException e) { + throw new RuntimeException("Failed to get message body length", e); + } + byte[] data = new byte[(int) bodyLength]; + bytesMessage.readBytes(data); - return new ReceivedMessage(body, contentType, headers, timestamp, queueName, null); - } + Charset charset = switch (ccsid) { + case 870 -> EBCDIC_870; + case 1208 -> UTF_8; + default -> UTF_8; + }; - /** - * Decode BytesMessage body based on CCSID. - */ - private String decodeBytesMessage(BytesMessage bytesMessage, int ccsid) { - try { - long bodyLength; - try { - bodyLength = bytesMessage.getBodyLength(); - } catch (JMSException e) { - throw new RuntimeException("Failed to get message body length", e); - } - byte[] data = new byte[(int) bodyLength]; - bytesMessage.readBytes(data); + return new String(data, charset); + } catch (JMSException e) { + throw new RuntimeException("Failed to read BytesMessage body", e); + } + } - Charset charset = switch (ccsid) { - case 870 -> EBCDIC_870; - case 1208 -> UTF_8; - default -> UTF_8; - }; + /** + * Extract JMS properties as headers. + */ + @SuppressWarnings("unchecked") + private void extractJmsProperties(Message message, Map headers) { + try { + // Common JMS headers + headers.put("JMSMessageID", message.getJMSMessageID()); + try { + headers.put("JMSType", message.getJMSType() != null ? message.getJMSType() : ""); + } catch (JMSException e) { + headers.put("JMSType", ""); + } + try { + headers.put("JMSDestination", + message.getJMSDestination() != null ? message.getJMSDestination().toString() : ""); + } catch (JMSException e) { + headers.put("JMSDestination", ""); + } + try { + headers.put("JMSDeliveryMode", String.valueOf(message.getJMSDeliveryMode())); + } catch (JMSException e) { + headers.put("JMSDeliveryMode", ""); + } + try { + headers.put("JMSPriority", String.valueOf(message.getJMSPriority())); + } catch (JMSException e) { + headers.put("JMSPriority", ""); + } + try { + headers.put("JMSTimestamp", String.valueOf(message.getJMSTimestamp())); + } catch (JMSException e) { + headers.put("JMSTimestamp", ""); + } - return new String(data, charset); - } catch (JMSException e) { - throw new RuntimeException("Failed to read BytesMessage body", e); - } - } + // Extract custom properties + Enumeration propertyNames = (Enumeration) message.getPropertyNames(); + while (propertyNames.hasMoreElements()) { + String propName = propertyNames.nextElement(); + Object propValue = message.getObjectProperty(propName); + if (propValue != null) { + headers.put(propName, propValue.toString()); + } + } + } catch (JMSException e) { + LOG.warn("Failed to extract JMS properties", e); + } + } - /** - * Extract JMS properties as headers. - */ - @SuppressWarnings("unchecked") - private void extractJmsProperties(Message message, Map headers) { - try { - // Common JMS headers - headers.put("JMSMessageID", message.getJMSMessageID()); - try { - headers.put("JMSType", message.getJMSType() != null ? message.getJMSType() : ""); - } catch (JMSException e) { - headers.put("JMSType", ""); - } - try { - headers.put("JMSDestination", message.getJMSDestination() != null ? - message.getJMSDestination().toString() : ""); - } catch (JMSException e) { - headers.put("JMSDestination", ""); - } - try { - headers.put("JMSDeliveryMode", String.valueOf(message.getJMSDeliveryMode())); - } catch (JMSException e) { - headers.put("JMSDeliveryMode", ""); - } - try { - headers.put("JMSPriority", String.valueOf(message.getJMSPriority())); - } catch (JMSException e) { - headers.put("JMSPriority", ""); - } - try { - headers.put("JMSTimestamp", String.valueOf(message.getJMSTimestamp())); - } catch (JMSException e) { - headers.put("JMSTimestamp", ""); - } + /** + * Get Queue object from queue name. + */ + private javax.jms.Queue getQueue(String queueName) { + return jmsContext.createQueue(queueName); + } - // Extract custom properties - Enumeration propertyNames = (Enumeration) message.getPropertyNames(); - while (propertyNames.hasMoreElements()) { - String propName = propertyNames.nextElement(); - Object propValue = message.getObjectProperty(propName); - if (propValue != null) { - headers.put(propName, propValue.toString()); - } - } - } catch (JMSException e) { - LOG.warn("Failed to extract JMS properties", e); - } - } - - /** - * Get Queue object from queue name. - */ - private javax.jms.Queue getQueue(String queueName) { - return jmsContext.createQueue(queueName); - } - - @Override - public void close() { - if (jmsContext != null) { - try { - jmsContext.close(); - LOG.info("Closed connection to IBM MQ: {}", queueManager); - } catch (Exception e) { - LOG.error("Failed to close IBM MQ connection", e); - } - } - } + @Override + public void close() { + if (jmsContext != null) { + try { + jmsContext.close(); + LOG.info("Closed connection to IBM MQ: {}", queueManager); + } catch (Exception e) { + LOG.error("Failed to close IBM MQ connection", e); + } + } + } } diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/imq/ImqFirstVisionEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/imq/ImqFirstVisionEndpoint.java index d6682e1..38f6172 100644 --- a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/imq/ImqFirstVisionEndpoint.java +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/imq/ImqFirstVisionEndpoint.java @@ -51,8 +51,8 @@ public class ImqFirstVisionEndpoint implements Endpoint { //Credentials credentials = loadCredentialsFromVault(vaultPath); // SSL configuration (optional) - String keystorePath = null; - String keystorePassword = null; + String keystorePath = "/home/kamma/aa/mq-docker/truststore.jks"; + String keystorePassword = "changeit"; try { this.connector = new IbmMqConnector(