/*
 * Copyright (c) 2018-2019 The original author or authors
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * and Apache License v2.0 which accompanies this distribution.
 *
 *        The Eclipse Public License is available at
 *        http://www.eclipse.org/legal/epl-v10.html
 *
 *        The Apache License v2.0 is available at
 *        http://www.opensource.org/licenses/apache2.0.php
 *
 * You may elect to redistribute this code under either of these licenses.
 */
package io.vertx.amqp;

import io.vertx.codegen.annotations.DataObject;
import io.vertx.core.buffer.Buffer;
import io.vertx.core.json.JsonObject;
import io.vertx.core.net.*;
import io.vertx.proton.ProtonClientOptions;

import java.util.Set;
import java.util.UUID;

Configures the AMQP Client. You can also configure the underlying Proton instance. Refer to ProtonClientOptions for details.
/** * Configures the AMQP Client. * You can also configure the underlying Proton instance. Refer to {@link ProtonClientOptions} for details. */
@DataObject(generateConverter = true, inheritConverter = true) public class AmqpClientOptions extends ProtonClientOptions { // TODO Capabilities and properties private String host = getFromSysOrEnv("amqp-client-host"); private int port = getPortFromSysOrEnv(); private String username = getFromSysOrEnv("amqp-client-username"); private String password = getFromSysOrEnv("amqp-client-password"); private String containerId = UUID.randomUUID().toString(); public AmqpClientOptions() { super(); } public AmqpClientOptions(JsonObject json) { super(json); AmqpClientOptionsConverter.fromJson(json, this); } public AmqpClientOptions(AmqpClientOptions other) { super(other); this.host = other.host; this.password = other.password; this.username = other.username; this.port = other.port; this.containerId = other.containerId; } public JsonObject toJson() { JsonObject json = super.toJson(); AmqpClientOptionsConverter.toJson(this, json); return json; }
Returns:the host.
/** * @return the host. */
public String getHost() { return host; }
Sets the host.
Params:
  • host – the host, must not be null when the client attempt to connect. Defaults to system variable amqp-client-host and to AMQP_CLIENT_HOST environment variable
Returns:the current AmqpClientOptions
/** * Sets the host. * * @param host the host, must not be {@code null} when the client attempt to connect. Defaults to system variable * {@code amqp-client-host} and to {@code AMQP_CLIENT_HOST} environment variable * @return the current {@link AmqpClientOptions} */
public AmqpClientOptions setHost(String host) { this.host = host; return this; }
Returns:the port.
/** * @return the port. */
public int getPort() { return port; }
Sets the port.
Params:
  • port – the port, defaults to system variable amqp-client-port and to AMQP_CLIENT_PORT environment variable and if neither is set 5672.
Returns:the current AmqpClientOptions
/** * Sets the port. * * @param port the port, defaults to system variable {@code amqp-client-port} and to {@code AMQP_CLIENT_PORT} * environment variable and if neither is set {@code 5672}. * @return the current {@link AmqpClientOptions} */
public AmqpClientOptions setPort(int port) { this.port = port; return this; }
Returns:the username
/** * @return the username */
public String getUsername() { return username; }
Sets the username.
Params:
  • username – the username, defaults to system variable amqp-client-username and to AMQP_CLIENT_USERNAME environment variable.
Returns:the current AmqpClientOptions
/** * Sets the username. * * @param username the username, defaults to system variable {@code amqp-client-username} and * to {@code AMQP_CLIENT_USERNAME} environment variable. * @return the current {@link AmqpClientOptions} */
public AmqpClientOptions setUsername(String username) { this.username = username; return this; }
Returns:the password
/** * @return the password */
public String getPassword() { return password; }
Sets the password.
Params:
  • pwd – the password, defaults to system variable amqp-client-password and to AMQP_CLIENT_PASSWORD environment variable.
Returns:the current AmqpClientOptions
/** * Sets the password. * * @param pwd the password, defaults to system variable {@code amqp-client-password} and to * {@code AMQP_CLIENT_PASSWORD} environment variable. * @return the current {@link AmqpClientOptions} */
public AmqpClientOptions setPassword(String pwd) { this.password = pwd; return this; }
Returns:the container id.
/** * @return the container id. */
public String getContainerId() { return containerId; }
Sets the container id.
Params:
  • containerId – the container id
Returns:the current AmqpClientOptions
/** * Sets the container id. * * @param containerId the container id * @return the current {@link AmqpClientOptions} */
public AmqpClientOptions setContainerId(String containerId) { this.containerId = containerId; return this; }
See Also:
  • addEnabledSaslMechanism.addEnabledSaslMechanism(String)
/** * @see ProtonClientOptions#addEnabledSaslMechanism(String) */
@Override public AmqpClientOptions addEnabledSaslMechanism(String saslMechanism) { super.addEnabledSaslMechanism(saslMechanism); return this; }
See Also:
  • setSendBufferSize.setSendBufferSize(int)
/** * @see ProtonClientOptions#setSendBufferSize(int) */
@Override public AmqpClientOptions setSendBufferSize(int sendBufferSize) { super.setSendBufferSize(sendBufferSize); return this; }
See Also:
  • setReceiveBufferSize.setReceiveBufferSize(int)
/** * @see ProtonClientOptions#setReceiveBufferSize(int) */
@Override public AmqpClientOptions setReceiveBufferSize(int receiveBufferSize) { super.setReceiveBufferSize(receiveBufferSize); return this; }
See Also:
  • setReuseAddress.setReuseAddress(boolean)
/** * @see ProtonClientOptions#setReuseAddress(boolean) */
@Override public AmqpClientOptions setReuseAddress(boolean reuseAddress) { super.setReuseAddress(reuseAddress); return this; }
See Also:
  • setTrafficClass.setTrafficClass(int)
/** * @see ProtonClientOptions#setTrafficClass(int) */
@Override public AmqpClientOptions setTrafficClass(int trafficClass) { super.setTrafficClass(trafficClass); return this; }
See Also:
  • setTcpNoDelay.setTcpNoDelay(boolean)
/** * @see ProtonClientOptions#setTcpNoDelay(boolean) */
@Override public AmqpClientOptions setTcpNoDelay(boolean tcpNoDelay) { super.setTcpNoDelay(tcpNoDelay); return this; }
See Also:
  • setTcpKeepAlive.setTcpKeepAlive(boolean)
/** * @see ProtonClientOptions#setTcpKeepAlive(boolean) */
@Override public AmqpClientOptions setTcpKeepAlive(boolean tcpKeepAlive) { super.setTcpKeepAlive(tcpKeepAlive); return this; }
See Also:
  • setSoLinger.setSoLinger(int)
/** * @see ProtonClientOptions#setSoLinger(int) */
@Override public AmqpClientOptions setSoLinger(int soLinger) { super.setSoLinger(soLinger); return this; }
See Also:
  • setUsePooledBuffers.setUsePooledBuffers(boolean)
/** * @see ProtonClientOptions#setUsePooledBuffers(boolean) */
@Override public AmqpClientOptions setUsePooledBuffers(boolean usePooledBuffers) { super.setUsePooledBuffers(usePooledBuffers); return this; }
See Also:
  • setIdleTimeout.setIdleTimeout(int)
/** * @see ProtonClientOptions#setIdleTimeout(int) */
@Override public AmqpClientOptions setIdleTimeout(int idleTimeout) { super.setIdleTimeout(idleTimeout); return this; }
See Also:
  • setSsl.setSsl(boolean)
/** * @see ProtonClientOptions#setSsl(boolean) */
@Override public AmqpClientOptions setSsl(boolean ssl) { super.setSsl(ssl); return this; }
See Also:
  • setKeyStoreOptions.setKeyStoreOptions(JksOptions)
/** * @see ProtonClientOptions#setKeyStoreOptions(JksOptions) */
@Override public AmqpClientOptions setKeyStoreOptions(JksOptions options) { super.setKeyStoreOptions(options); return this; }
See Also:
  • setPfxKeyCertOptions.setPfxKeyCertOptions(PfxOptions)
/** * @see ProtonClientOptions#setPfxKeyCertOptions(PfxOptions) */
@Override public AmqpClientOptions setPfxKeyCertOptions(PfxOptions options) { super.setPfxKeyCertOptions(options); return this; }
See Also:
  • setPemKeyCertOptions.setPemKeyCertOptions(PemKeyCertOptions)
/** * @see ProtonClientOptions#setPemKeyCertOptions(PemKeyCertOptions) */
@Override public AmqpClientOptions setPemKeyCertOptions(PemKeyCertOptions options) { super.setPemKeyCertOptions(options); return this; }
See Also:
  • setTrustStoreOptions.setTrustStoreOptions(JksOptions)
/** * @see ProtonClientOptions#setTrustStoreOptions(JksOptions) */
@Override public AmqpClientOptions setTrustStoreOptions(JksOptions options) { super.setTrustStoreOptions(options); return this; }
See Also:
  • setPemTrustOptions.setPemTrustOptions(PemTrustOptions)
/** * @see ProtonClientOptions#setPemTrustOptions(PemTrustOptions) */
@Override public AmqpClientOptions setPemTrustOptions(PemTrustOptions options) { super.setPemTrustOptions(options); return this; }
See Also:
  • setPfxTrustOptions.setPfxTrustOptions(PfxOptions)
/** * @see ProtonClientOptions#setPfxTrustOptions(PfxOptions) */
@Override public AmqpClientOptions setPfxTrustOptions(PfxOptions options) { super.setPfxTrustOptions(options); return this; }
See Also:
  • addEnabledCipherSuite.addEnabledCipherSuite(String)
/** * @see ProtonClientOptions#addEnabledCipherSuite(String) */
@Override public AmqpClientOptions addEnabledCipherSuite(String suite) { super.addEnabledCipherSuite(suite); return this; }
See Also:
  • addCrlPath.addCrlPath(String)
/** * @see ProtonClientOptions#addCrlPath(String) */
@Override public AmqpClientOptions addCrlPath(String crlPath) { super.addCrlPath(crlPath); return this; }
See Also:
  • addCrlValue.addCrlValue(Buffer)
/** * @see ProtonClientOptions#addCrlValue(Buffer) */
@Override public AmqpClientOptions addCrlValue(Buffer crlValue) { super.addCrlValue(crlValue); return this; }
See Also:
  • setTrustAll.setTrustAll(boolean)
/** * @see ProtonClientOptions#setTrustAll(boolean) */
@Override public AmqpClientOptions setTrustAll(boolean trustAll) { super.setTrustAll(trustAll); return this; }
See Also:
  • setConnectTimeout.setConnectTimeout(int)
/** * @see ProtonClientOptions#setConnectTimeout(int) */
@Override public AmqpClientOptions setConnectTimeout(int connectTimeout) { super.setConnectTimeout(connectTimeout); return this; }
See Also:
  • setReconnectAttempts.setReconnectAttempts(int)
/** * @see ProtonClientOptions#setReconnectAttempts(int) */
@Override public AmqpClientOptions setReconnectAttempts(int attempts) { super.setReconnectAttempts(attempts); return this; }
See Also:
  • setReconnectInterval.setReconnectInterval(long)
/** * @see ProtonClientOptions#setReconnectInterval(long) */
@Override public AmqpClientOptions setReconnectInterval(long interval) { super.setReconnectInterval(interval); return this; }
See Also:
  • addEnabledSecureTransportProtocol.addEnabledSecureTransportProtocol(String)
/** * @see ProtonClientOptions#addEnabledSecureTransportProtocol(String) */
@Override public AmqpClientOptions addEnabledSecureTransportProtocol(String protocol) { super.addEnabledSecureTransportProtocol(protocol); return this; }
See Also:
  • setHostnameVerificationAlgorithm.setHostnameVerificationAlgorithm(String)
/** * @see ProtonClientOptions#setHostnameVerificationAlgorithm(String) */
@Override public AmqpClientOptions setHostnameVerificationAlgorithm(String hostnameVerificationAlgorithm) { super.setHostnameVerificationAlgorithm(hostnameVerificationAlgorithm); return this; }
See Also:
  • setJdkSslEngineOptions.setJdkSslEngineOptions(JdkSSLEngineOptions)
/** * @see ProtonClientOptions#setJdkSslEngineOptions(JdkSSLEngineOptions) */
@Override public AmqpClientOptions setJdkSslEngineOptions(JdkSSLEngineOptions sslEngineOptions) { super.setJdkSslEngineOptions(sslEngineOptions); return this; }
See Also:
  • setOpenSslEngineOptions.setOpenSslEngineOptions(OpenSSLEngineOptions)
/** * @see ProtonClientOptions#setOpenSslEngineOptions(OpenSSLEngineOptions) */
@Override public AmqpClientOptions setOpenSslEngineOptions(OpenSSLEngineOptions sslEngineOptions) { super.setOpenSslEngineOptions(sslEngineOptions); return this; }
See Also:
  • setSslEngineOptions.setSslEngineOptions(SSLEngineOptions)
/** * @see ProtonClientOptions#setSslEngineOptions(SSLEngineOptions) */
@Override public AmqpClientOptions setSslEngineOptions(SSLEngineOptions sslEngineOptions) { super.setSslEngineOptions(sslEngineOptions); return this; }
See Also:
  • setLocalAddress.setLocalAddress(String)
/** * @see ProtonClientOptions#setLocalAddress(String) */
@Override public AmqpClientOptions setLocalAddress(String localAddress) { super.setLocalAddress(localAddress); return this; }
See Also:
  • setReusePort.setReusePort(boolean)
/** * @see ProtonClientOptions#setReusePort(boolean) */
@Override public AmqpClientOptions setReusePort(boolean reusePort) { super.setReusePort(reusePort); return this; }
See Also:
  • setTcpCork.setTcpCork(boolean)
/** * @see ProtonClientOptions#setTcpCork(boolean) */
@Override public AmqpClientOptions setTcpCork(boolean tcpCork) { super.setTcpCork(tcpCork); return this; }
See Also:
  • setTcpFastOpen.setTcpFastOpen(boolean)
/** * @see ProtonClientOptions#setTcpFastOpen(boolean) */
@Override public AmqpClientOptions setTcpFastOpen(boolean tcpFastOpen) { super.setTcpFastOpen(tcpFastOpen); return this; }
See Also:
  • setTcpQuickAck.setTcpQuickAck(boolean)
/** * @see ProtonClientOptions#setTcpQuickAck(boolean) */
@Override public AmqpClientOptions setTcpQuickAck(boolean tcpQuickAck) { super.setTcpQuickAck(tcpQuickAck); return this; }
See Also:
  • removeEnabledSecureTransportProtocol.removeEnabledSecureTransportProtocol(String)
/** * @see ProtonClientOptions#removeEnabledSecureTransportProtocol(String) */
@Override public AmqpClientOptions removeEnabledSecureTransportProtocol(String protocol) { super.removeEnabledSecureTransportProtocol(protocol); return this; }
See Also:
  • setEnabledSecureTransportProtocols.setEnabledSecureTransportProtocols(Set)
/** * @see ProtonClientOptions#setEnabledSecureTransportProtocols(Set) */
@Override public AmqpClientOptions setEnabledSecureTransportProtocols(Set<String> enabledSecureTransportProtocols) { super.setEnabledSecureTransportProtocols(enabledSecureTransportProtocols); return this; }
See Also:
  • setVirtualHost.setVirtualHost(String)
/** * @see ProtonClientOptions#setVirtualHost(String) */
@Override public AmqpClientOptions setVirtualHost(String virtualHost) { super.setVirtualHost(virtualHost); return this; }
See Also:
  • setSniServerName.setSniServerName(String)
/** * @see ProtonClientOptions#setSniServerName(String) */
@Override public AmqpClientOptions setSniServerName(String sniServerName) { super.setSniServerName(sniServerName); return this; }
See Also:
  • setHeartbeat.setHeartbeat(int)
/** * @see ProtonClientOptions#setHeartbeat(int) */
@Override public AmqpClientOptions setHeartbeat(int heartbeat) { super.setHeartbeat(heartbeat); return this; }
See Also:
  • setMaxFrameSize.setMaxFrameSize(int)
/** * @see ProtonClientOptions#setMaxFrameSize(int) */
@Override public AmqpClientOptions setMaxFrameSize(int maxFrameSize) { super.setMaxFrameSize(maxFrameSize); return this; } private String getFromSysOrEnv(String key) { String sys = System.getProperty(key); if (sys == null) { return System.getenv(key.toUpperCase().replace("-", "_")); } return sys; } private int getPortFromSysOrEnv() { String s = getFromSysOrEnv("amqp-client-port"); if (s == null) { return 5672; } else { return Integer.parseInt(s); } } }