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 3ebe10f..e742ab1 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 @@ -1,210 +1,199 @@ package cz.moneta.test.harness.endpoints.imq; -import cz.moneta.test.harness.connectors.messaging.IbmMqConnector; -import cz.moneta.test.harness.context.StoreAccessor; -import cz.moneta.test.harness.endpoints.Endpoint; -import cz.moneta.test.harness.messaging.MqMessageFormat; -import cz.moneta.test.harness.messaging.ReceivedMessage; -import cz.moneta.test.harness.connectors.VaultConnector; -import cz.moneta.test.harness.support.auth.Credentials; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - import java.time.Duration; import java.util.List; import java.util.Optional; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import cz.moneta.test.harness.connectors.VaultConnector; +import cz.moneta.test.harness.connectors.messaging.IbmMqConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.Endpoint; +import cz.moneta.test.harness.messaging.MqMessageFormat; +import cz.moneta.test.harness.messaging.ReceivedMessage; +import cz.moneta.test.harness.support.auth.Credentials; + /** - * IBM MQ First Vision endpoint. - * Provides high-level access to IBM MQ queues with configuration from StoreAccessor. + * IBM MQ First Vision endpoint. Provides high-level access to IBM MQ queues + * with configuration from StoreAccessor. *
* Credentials are loaded from HashiCorp Vault.
*/
public class ImqFirstVisionEndpoint implements Endpoint {
- private static final Logger LOG = LogManager.getLogger(ImqFirstVisionEndpoint.class);
+ private static final Logger LOG = LogManager.getLogger(ImqFirstVisionEndpoint.class);
- private final IbmMqConnector connector;
- private final StoreAccessor store;
+ private final IbmMqConnector connector;
+ private final StoreAccessor store;
- // Configuration keys
- private static final String CONNECTION_NAME_LIST_KEY = "endpoints.imq-first-vision.connection-name-list";
- private static final String CHANNEL_KEY = "endpoints.imq-first-vision.channel";
- private static final String QUEUE_MANAGER_KEY = "endpoints.imq-first-vision.queue-manager";
- private static final String SSL_CIPHER_SUITE_KEY = "endpoints.imq-first-vision.ssl-cipher-suite";
- private static final String VAULT_PATH_KEY = "vault.imq-first-vision.secrets.path";
+ private String username, password, keystorePassword;
- /**
- * Constructor that reads configuration from StoreAccessor.
- */
- public ImqFirstVisionEndpoint(StoreAccessor store) {
- this.store = store;
+ // Configuration keys
+ private static final String CONNECTION_NAME_LIST_KEY = "endpoints.imq-first-vision.connection-name-list";
+ private static final String CHANNEL_KEY = "endpoints.imq-first-vision.channel";
+ private static final String QUEUE_MANAGER_KEY = "endpoints.imq-first-vision.queue-manager";
+ private static final String SSL_CIPHER_SUITE_KEY = "endpoints.imq-first-vision.ssl-cipher-suite";
+ private static final String VAULT_PATH_KEY = "vault.imq-first-vision.secrets.path";
+ private static final String VAULT_KEYSTORE_PASSWORD_KEY = "keystorePassword";
- // Read configuration
- String connectionNameList = getConfig(CONNECTION_NAME_LIST_KEY);
- String channel = getConfig(CHANNEL_KEY);
- String queueManager = getConfig(QUEUE_MANAGER_KEY);
- String sslCipherSuite = getConfig(SSL_CIPHER_SUITE_KEY);
+ /**
+ * Constructor that reads configuration from StoreAccessor.
+ */
+ public ImqFirstVisionEndpoint(StoreAccessor store) {
+ this.store = store;
- // Load credentials from Vault
- String vaultPath = getVaultPath();
- Credentials credentials = loadCredentialsFromVault(vaultPath);
+ // Read configuration
+ String connectionNameList = getConfig(CONNECTION_NAME_LIST_KEY);
+ String channel = getConfig(CHANNEL_KEY);
+ String queueManager = getConfig(QUEUE_MANAGER_KEY);
+ String sslCipherSuite = getConfig(SSL_CIPHER_SUITE_KEY);
- // SSL configuration (optional)
- String keystorePath = "/home/kamma/aa/mq-docker/truststore.jks";
- String keystorePassword = "changeit";
+ loadCredentialsFromVault();
- try {
- this.connector = new IbmMqConnector(
- connectionNameList,
- channel,
- queueManager,
- credentials.getUsername(),
- credentials.getPassword(),
- keystorePath,
- keystorePassword,
- sslCipherSuite
- );
+ // SSL configuration (optional)
+ String keystorePath = "/home/kamma/aa/mq-docker/truststore.jks";
- LOG.info("Initialized IBM MQ First Vision endpoint for queue manager: {}", queueManager);
+ try {
+ this.connector = new IbmMqConnector(connectionNameList, channel, queueManager, username, password,
+ keystorePath, keystorePassword, sslCipherSuite);
- } catch (Exception e) {
- throw new IllegalStateException("Failed to initialize IBM MQ endpoint", e);
- }
- }
+ LOG.info("Initialized IBM MQ First Vision endpoint for queue manager: {}", queueManager);
- /**
- * Get a configuration value from StoreAccessor.
- */
- private String getConfig(String key) {
- return Optional.ofNullable(store.getConfig(key))
- .orElseThrow(() -> new IllegalStateException(
- "You need to configure " + key));
- }
+ } catch (Exception e) {
+ throw new IllegalStateException("Failed to initialize IBM MQ endpoint", e);
+ }
+ }
- /**
- * Get vault path from configuration.
- */
- private String getVaultPath() {
- return Optional.ofNullable(store.getConfig(VAULT_PATH_KEY))
- .orElseThrow(() -> new IllegalStateException(
- "You need to configure " + VAULT_PATH_KEY));
- }
+ /**
+ * Get a configuration value from StoreAccessor.
+ */
+ private String getConfig(String key) {
+ return Optional.ofNullable(store.getConfig(key))
+ .orElseThrow(() -> new IllegalStateException("You need to configure " + key));
+ }
- /**
- * Load credentials from HashiCorp Vault.
- */
- private Credentials loadCredentialsFromVault(String vaultPath) {
- try {
- // Get vault URL from configuration
- String vaultUrl = getConfig("vault.url");
- String vaultUser = getConfig("vault.user");
- String vaultPassword = getConfig("vault.password");
+ /**
+ * Load credentials from HashiCorp Vault.
+ */
+ private void loadCredentialsFromVault() {
+ try {
+ // Get vault URL from configuration
+ String vaultPath = getConfig(VAULT_PATH_KEY);
+ String vaultUrl = getConfig("vault.url");
+ String vaultUser = getConfig("vault.user");
+ String vaultPassword = getConfig("vault.password");
- VaultConnector vaultConnector = new VaultConnector(vaultUrl, vaultUser, vaultPassword);
+ VaultConnector vaultConnector = new VaultConnector(vaultUrl, vaultUser, vaultPassword);
- Optional