blob: ed9f7a770a02400955620e8a8a06ee280c7bc8cc [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.camel.component.paho.mqtt5.springboot;
import java.util.Map;
import java.util.Properties;
import javax.annotation.Generated;
import javax.net.SocketFactory;
import javax.net.ssl.HostnameVerifier;
import org.apache.camel.component.paho.mqtt5.PahoMqtt5Component;
import org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration;
import org.apache.camel.component.paho.mqtt5.PahoMqtt5Persistence;
import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
import org.eclipse.paho.mqttv5.client.MqttClient;
import org.eclipse.paho.mqttv5.common.packet.MqttProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* Communicate with MQTT message brokers using Eclipse Paho MQTT v5 Client.
*
* Generated by camel-package-maven-plugin - do not edit this file!
*/
@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.component.paho-mqtt5")
public class PahoMqtt5ComponentConfiguration
extends
ComponentConfigurationPropertiesCommon {
/**
* Whether to enable auto configuration of the paho-mqtt5 component. This is
* enabled by default.
*/
private Boolean enabled;
/**
* Sets whether the client will automatically attempt to reconnect to the
* server if the connection is lost. If set to false, the client will not
* attempt to automatically reconnect to the server in the event that the
* connection is lost. If set to true, in the event that the connection is
* lost, the client will attempt to reconnect to the server. It will
* initially wait 1 second before it attempts to reconnect, for every failed
* reconnect attempt, the delay will double until it is at 2 minutes at
* which point the delay will stay at 2 minutes.
*/
private Boolean automaticReconnect = true;
/**
* The URL of the MQTT broker.
*/
private String brokerUrl = "tcp://localhost:1883";
/**
* Sets whether the client and server should remember state across restarts
* and reconnects. If set to false both the client and server will maintain
* state across restarts of the client, the server and the connection. As
* state is maintained: Message delivery will be reliable meeting the
* specified QOS even if the client, server or connection are restarted. The
* server will treat a subscription as durable. If set to true the client
* and server will not maintain state across restarts of the client, the
* server or the connection. This means Message delivery to the specified
* QOS cannot be maintained if the client, server or connection are
* restarted The server will treat a subscription as non-durable
*/
private Boolean cleanStart = true;
/**
* MQTT client identifier. The identifier must be unique.
*/
private String clientId;
/**
* To use the shared Paho configuration. The option is a
* org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration type.
*/
private PahoMqtt5Configuration configuration;
/**
* Sets the connection timeout value. This value, measured in seconds,
* defines the maximum time interval the client will wait for the network
* connection to the MQTT server to be established. The default timeout is
* 30 seconds. A value of 0 disables timeout processing meaning the client
* will wait until the network connection is made successfully or fails.
*/
private Integer connectionTimeout = 30;
/**
* Base directory used by file persistence. Will by default use user
* directory.
*/
private String filePersistenceDirectory;
/**
* Sets the keep alive interval. This value, measured in seconds, defines
* the maximum time interval between messages sent or received. It enables
* the client to detect if the server is no longer available, without having
* to wait for the TCP/IP timeout. The client will ensure that at least one
* message travels across the network within each keep alive period. In the
* absence of a data-related message during the time period, the client
* sends a very small ping message, which the server will acknowledge. A
* value of 0 disables keepalive processing in the client. The default value
* is 60 seconds
*/
private Integer keepAliveInterval = 60;
/**
* Get the maximum time (in millis) to wait between reconnects
*/
private Integer maxReconnectDelay = 128000;
/**
* Client persistence to be used - memory or file.
*/
private PahoMqtt5Persistence persistence = PahoMqtt5Persistence.MEMORY;
/**
* Client quality of service level (0-2).
*/
private Integer qos = 2;
/**
* Sets the Receive Maximum. This value represents the limit of QoS 1 and
* QoS 2 publications that the client is willing to process concurrently.
* There is no mechanism to limit the number of QoS 0 publications that the
* Server might try to send. The default value is 65535
*/
private Integer receiveMaximum = 65535;
/**
* Retain option
*/
private Boolean retained = false;
/**
* Set a list of one or more serverURIs the client may connect to. Multiple
* servers can be separated by comma. Each serverURI specifies the address
* of a server that the client may connect to. Two types of connection are
* supported tcp:// for a TCP connection and ssl:// for a TCP connection
* secured by SSL/TLS. For example: tcp://localhost:1883
* ssl://localhost:8883 If the port is not specified, it will default to
* 1883 for tcp:// URIs, and 8883 for ssl:// URIs. If serverURIs is set then
* it overrides the serverURI parameter passed in on the constructor of the
* MQTT client. When an attempt to connect is initiated the client will
* start with the first serverURI in the list and work through the list
* until a connection is established with a server. If a connection cannot
* be made to any of the servers then the connect attempt fails. Specifying
* a list of servers that a client may connect to has several uses: High
* Availability and reliable message delivery Some MQTT servers support a
* high availability feature where two or more equal MQTT servers share
* state. An MQTT client can connect to any of the equal servers and be
* assured that messages are reliably delivered and durable subscriptions
* are maintained no matter which server the client connects to. The
* cleansession flag must be set to false if durable subscriptions and/or
* reliable message delivery is required. Hunt List A set of servers may be
* specified that are not equal (as in the high availability option). As no
* state is shared across the servers reliable message delivery and durable
* subscriptions are not valid. The cleansession flag must be set to true if
* the hunt list mode is used
*/
private String serverURIs;
/**
* Sets the Last Will and Testament (LWT) for the connection. In the event
* that this client unexpectedly loses its connection to the server, the
* server will publish a message to itself using the supplied details. The
* MQTT properties set for the message. The option is a
* org.eclipse.paho.mqttv5.common.packet.MqttProperties type.
*/
private MqttProperties willMqttProperties;
/**
* Sets the Last Will and Testament (LWT) for the connection. In the event
* that this client unexpectedly loses its connection to the server, the
* server will publish a message to itself using the supplied details. The
* byte payload for the message.
*/
private String willPayload;
/**
* Sets the Last Will and Testament (LWT) for the connection. In the event
* that this client unexpectedly loses its connection to the server, the
* server will publish a message to itself using the supplied details. The
* quality of service to publish the message at (0, 1 or 2).
*/
private Integer willQos = 1;
/**
* Sets the Last Will and Testament (LWT) for the connection. In the event
* that this client unexpectedly loses its connection to the server, the
* server will publish a message to itself using the supplied details.
* Whether or not the message should be retained.
*/
private Boolean willRetained = false;
/**
* Sets the Last Will and Testament (LWT) for the connection. In the event
* that this client unexpectedly loses its connection to the server, the
* server will publish a message to itself using the supplied details. The
* topic to publish to.
*/
private String willTopic;
/**
* Allows for bridging the consumer to the Camel routing Error Handler,
* which mean any exceptions occurred while the consumer is trying to pickup
* incoming messages, or the likes, will now be processed as a message and
* handled by the routing Error Handler. By default the consumer will use
* the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that
* will be logged at WARN or ERROR level and ignored.
*/
private Boolean bridgeErrorHandler = false;
/**
* Whether the producer should be started lazy (on the first message). By
* starting lazy you can use this to allow CamelContext and routes to
* startup in situations where a producer may otherwise fail during starting
* and cause the route to fail being started. By deferring this startup to
* be lazy then the startup failure can be handled during routing messages
* via Camel's routing error handlers. Beware that when the first message is
* processed then creating and starting the producer may take a little time
* and prolong the total processing time of the processing.
*/
private Boolean lazyStartProducer = false;
/**
* Whether autowiring is enabled. This is used for automatic autowiring
* options (the option must be marked as autowired) by looking up in the
* registry to find if there is a single instance of matching type, which
* then gets configured on the component. This can be used for automatic
* configuring JDBC data sources, JMS connection factories, AWS Clients,
* etc.
*/
private Boolean autowiredEnabled = true;
/**
* To use a shared Paho client. The option is a
* org.eclipse.paho.mqttv5.client.MqttClient type.
*/
private MqttClient client;
/**
* Sets the Custom WebSocket Headers for the WebSocket Connection.
*/
private Map<String, String> customWebSocketHeaders;
/**
* Set the time in seconds that the executor service should wait when
* terminating before forcefully terminating. It is not recommended to
* change this value unless you are absolutely sure that you need to.
*/
private Integer executorServiceTimeout = 1;
/**
* Whether SSL HostnameVerifier is enabled or not. The default value is
* true.
*/
private Boolean httpsHostnameVerificationEnabled = true;
/**
* Password to be used for authentication against the MQTT broker
*/
private String password;
/**
* Sets the SocketFactory to use. This allows an application to apply its
* own policies around the creation of network sockets. If using an SSL
* connection, an SSLSocketFactory can be used to supply
* application-specific security settings. The option is a
* javax.net.SocketFactory type.
*/
private SocketFactory socketFactory;
/**
* Sets the SSL properties for the connection. Note that these properties
* are only valid if an implementation of the Java Secure Socket Extensions
* (JSSE) is available. These properties are not used if a custom
* SocketFactory has been set. The following properties can be used:
* com.ibm.ssl.protocol One of: SSL, SSLv3, TLS, TLSv1, SSL_TLS.
* com.ibm.ssl.contextProvider Underlying JSSE provider. For example
* IBMJSSE2 or SunJSSE com.ibm.ssl.keyStore The name of the file that
* contains the KeyStore object that you want the KeyManager to use. For
* example /mydir/etc/key.p12 com.ibm.ssl.keyStorePassword The password for
* the KeyStore object that you want the KeyManager to use. The password can
* either be in plain-text, or may be obfuscated using the static method:
* com.ibm.micro.security.Password.obfuscate(char password). This obfuscates
* the password using a simple and insecure XOR and Base64 encoding
* mechanism. Note that this is only a simple scrambler to obfuscate
* clear-text passwords. com.ibm.ssl.keyStoreType Type of key store, for
* example PKCS12, JKS, or JCEKS. com.ibm.ssl.keyStoreProvider Key store
* provider, for example IBMJCE or IBMJCEFIPS. com.ibm.ssl.trustStore The
* name of the file that contains the KeyStore object that you want the
* TrustManager to use. com.ibm.ssl.trustStorePassword The password for the
* TrustStore object that you want the TrustManager to use. The password can
* either be in plain-text, or may be obfuscated using the static method:
* com.ibm.micro.security.Password.obfuscate(char password). This obfuscates
* the password using a simple and insecure XOR and Base64 encoding
* mechanism. Note that this is only a simple scrambler to obfuscate
* clear-text passwords. com.ibm.ssl.trustStoreType The type of KeyStore
* object that you want the default TrustManager to use. Same possible
* values as keyStoreType. com.ibm.ssl.trustStoreProvider Trust store
* provider, for example IBMJCE or IBMJCEFIPS.
* com.ibm.ssl.enabledCipherSuites A list of which ciphers are enabled.
* Values are dependent on the provider, for example:
* SSL_RSA_WITH_AES_128_CBC_SHA;SSL_RSA_WITH_3DES_EDE_CBC_SHA.
* com.ibm.ssl.keyManager Sets the algorithm that will be used to
* instantiate a KeyManagerFactory object instead of using the default
* algorithm available in the platform. Example values: IbmX509 or
* IBMJ9X509. com.ibm.ssl.trustManager Sets the algorithm that will be used
* to instantiate a TrustManagerFactory object instead of using the default
* algorithm available in the platform. Example values: PKIX or IBMJ9X509.
* The option is a java.util.Properties type.
*/
private Properties sslClientProps;
/**
* Sets the HostnameVerifier for the SSL connection. Note that it will be
* used after handshake on a connection and you should do actions by
* yourself when hostname is verified error. There is no default
* HostnameVerifier. The option is a javax.net.ssl.HostnameVerifier type.
*/
private HostnameVerifier sslHostnameVerifier;
/**
* Username to be used for authentication against the MQTT broker
*/
private String userName;
public Boolean getAutomaticReconnect() {
return automaticReconnect;
}
public void setAutomaticReconnect(Boolean automaticReconnect) {
this.automaticReconnect = automaticReconnect;
}
public String getBrokerUrl() {
return brokerUrl;
}
public void setBrokerUrl(String brokerUrl) {
this.brokerUrl = brokerUrl;
}
public Boolean getCleanStart() {
return cleanStart;
}
public void setCleanStart(Boolean cleanStart) {
this.cleanStart = cleanStart;
}
public String getClientId() {
return clientId;
}
public void setClientId(String clientId) {
this.clientId = clientId;
}
public PahoMqtt5Configuration getConfiguration() {
return configuration;
}
public void setConfiguration(PahoMqtt5Configuration configuration) {
this.configuration = configuration;
}
public Integer getConnectionTimeout() {
return connectionTimeout;
}
public void setConnectionTimeout(Integer connectionTimeout) {
this.connectionTimeout = connectionTimeout;
}
public String getFilePersistenceDirectory() {
return filePersistenceDirectory;
}
public void setFilePersistenceDirectory(String filePersistenceDirectory) {
this.filePersistenceDirectory = filePersistenceDirectory;
}
public Integer getKeepAliveInterval() {
return keepAliveInterval;
}
public void setKeepAliveInterval(Integer keepAliveInterval) {
this.keepAliveInterval = keepAliveInterval;
}
public Integer getMaxReconnectDelay() {
return maxReconnectDelay;
}
public void setMaxReconnectDelay(Integer maxReconnectDelay) {
this.maxReconnectDelay = maxReconnectDelay;
}
public PahoMqtt5Persistence getPersistence() {
return persistence;
}
public void setPersistence(PahoMqtt5Persistence persistence) {
this.persistence = persistence;
}
public Integer getQos() {
return qos;
}
public void setQos(Integer qos) {
this.qos = qos;
}
public Integer getReceiveMaximum() {
return receiveMaximum;
}
public void setReceiveMaximum(Integer receiveMaximum) {
this.receiveMaximum = receiveMaximum;
}
public Boolean getRetained() {
return retained;
}
public void setRetained(Boolean retained) {
this.retained = retained;
}
public String getServerURIs() {
return serverURIs;
}
public void setServerURIs(String serverURIs) {
this.serverURIs = serverURIs;
}
public MqttProperties getWillMqttProperties() {
return willMqttProperties;
}
public void setWillMqttProperties(MqttProperties willMqttProperties) {
this.willMqttProperties = willMqttProperties;
}
public String getWillPayload() {
return willPayload;
}
public void setWillPayload(String willPayload) {
this.willPayload = willPayload;
}
public Integer getWillQos() {
return willQos;
}
public void setWillQos(Integer willQos) {
this.willQos = willQos;
}
public Boolean getWillRetained() {
return willRetained;
}
public void setWillRetained(Boolean willRetained) {
this.willRetained = willRetained;
}
public String getWillTopic() {
return willTopic;
}
public void setWillTopic(String willTopic) {
this.willTopic = willTopic;
}
public Boolean getBridgeErrorHandler() {
return bridgeErrorHandler;
}
public void setBridgeErrorHandler(Boolean bridgeErrorHandler) {
this.bridgeErrorHandler = bridgeErrorHandler;
}
public Boolean getLazyStartProducer() {
return lazyStartProducer;
}
public void setLazyStartProducer(Boolean lazyStartProducer) {
this.lazyStartProducer = lazyStartProducer;
}
public Boolean getAutowiredEnabled() {
return autowiredEnabled;
}
public void setAutowiredEnabled(Boolean autowiredEnabled) {
this.autowiredEnabled = autowiredEnabled;
}
public MqttClient getClient() {
return client;
}
public void setClient(MqttClient client) {
this.client = client;
}
public Map<String, String> getCustomWebSocketHeaders() {
return customWebSocketHeaders;
}
public void setCustomWebSocketHeaders(
Map<String, String> customWebSocketHeaders) {
this.customWebSocketHeaders = customWebSocketHeaders;
}
public Integer getExecutorServiceTimeout() {
return executorServiceTimeout;
}
public void setExecutorServiceTimeout(Integer executorServiceTimeout) {
this.executorServiceTimeout = executorServiceTimeout;
}
public Boolean getHttpsHostnameVerificationEnabled() {
return httpsHostnameVerificationEnabled;
}
public void setHttpsHostnameVerificationEnabled(
Boolean httpsHostnameVerificationEnabled) {
this.httpsHostnameVerificationEnabled = httpsHostnameVerificationEnabled;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public SocketFactory getSocketFactory() {
return socketFactory;
}
public void setSocketFactory(SocketFactory socketFactory) {
this.socketFactory = socketFactory;
}
public Properties getSslClientProps() {
return sslClientProps;
}
public void setSslClientProps(Properties sslClientProps) {
this.sslClientProps = sslClientProps;
}
public HostnameVerifier getSslHostnameVerifier() {
return sslHostnameVerifier;
}
public void setSslHostnameVerifier(HostnameVerifier sslHostnameVerifier) {
this.sslHostnameVerifier = sslHostnameVerifier;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}