Commit 67f122647bf17a8d76af4c683eb0fad46d652531

Authored by vzikratyi
Committed by Andrew Shvayka
1 parent ba680570

Added property to disable 'transport' features for 'monolith' service type (in cluster mode)

Showing 15 changed files with 16 additions and 14 deletions
@@ -548,6 +548,8 @@ transport: @@ -548,6 +548,8 @@ transport:
548 max_string_value_length: "${JSON_MAX_STRING_VALUE_LENGTH:0}" 548 max_string_value_length: "${JSON_MAX_STRING_VALUE_LENGTH:0}"
549 client_side_rpc: 549 client_side_rpc:
550 timeout: "${CLIENT_SIDE_RPC_TIMEOUT:60000}" 550 timeout: "${CLIENT_SIDE_RPC_TIMEOUT:60000}"
  551 + # Enable/disable http/mqtt/coap transport protocols (has higher priority than certain protocol's 'enabled' property)
  552 + api_enabled: "${TB_TRANSPORT_API_ENABLED:true}"
551 # Local HTTP transport parameters 553 # Local HTTP transport parameters
552 http: 554 http:
553 enabled: "${HTTP_ENABLED:true}" 555 enabled: "${HTTP_ENABLED:true}"
@@ -42,7 +42,7 @@ import org.thingsboard.server.queue.sqs.TbAwsSqsSettings; @@ -42,7 +42,7 @@ import org.thingsboard.server.queue.sqs.TbAwsSqsSettings;
42 import javax.annotation.PreDestroy; 42 import javax.annotation.PreDestroy;
43 43
44 @Component 44 @Component
45 -@ConditionalOnExpression("'${queue.type:null}'=='aws-sqs' && ('${service.type:null}'=='monolith' || '${service.type:null}'=='tb-transport')") 45 +@ConditionalOnExpression("'${queue.type:null}'=='aws-sqs' && (('${service.type:null}'=='monolith' && '${transport.api_enabled:true}'=='true') || '${service.type:null}'=='tb-transport')")
46 @Slf4j 46 @Slf4j
47 public class AwsSqsTransportQueueFactory implements TbTransportQueueFactory { 47 public class AwsSqsTransportQueueFactory implements TbTransportQueueFactory {
48 private final TbQueueTransportApiSettings transportApiSettings; 48 private final TbQueueTransportApiSettings transportApiSettings;
@@ -37,7 +37,7 @@ import org.thingsboard.server.queue.settings.TbQueueTransportApiSettings; @@ -37,7 +37,7 @@ import org.thingsboard.server.queue.settings.TbQueueTransportApiSettings;
37 import org.thingsboard.server.queue.settings.TbQueueTransportNotificationSettings; 37 import org.thingsboard.server.queue.settings.TbQueueTransportNotificationSettings;
38 38
39 @Component 39 @Component
40 -@ConditionalOnExpression("'${queue.type:null}'=='in-memory' && ('${service.type:null}'=='monolith' || '${service.type:null}'=='tb-transport')") 40 +@ConditionalOnExpression("'${queue.type:null}'=='in-memory' && (('${service.type:null}'=='monolith' && '${transport.api_enabled:true}'=='true') || '${service.type:null}'=='tb-transport')")
41 @Slf4j 41 @Slf4j
42 public class InMemoryTbTransportQueueFactory implements TbTransportQueueFactory { 42 public class InMemoryTbTransportQueueFactory implements TbTransportQueueFactory {
43 private final TbQueueTransportApiSettings transportApiSettings; 43 private final TbQueueTransportApiSettings transportApiSettings;
@@ -43,7 +43,7 @@ import org.thingsboard.server.queue.settings.TbQueueTransportNotificationSetting @@ -43,7 +43,7 @@ import org.thingsboard.server.queue.settings.TbQueueTransportNotificationSetting
43 import javax.annotation.PreDestroy; 43 import javax.annotation.PreDestroy;
44 44
45 @Component 45 @Component
46 -@ConditionalOnExpression("'${queue.type:null}'=='kafka' && ('${service.type:null}'=='monolith' || '${service.type:null}'=='tb-transport')") 46 +@ConditionalOnExpression("'${queue.type:null}'=='kafka' && (('${service.type:null}'=='monolith' && '${transport.api_enabled:true}'=='true') || '${service.type:null}'=='tb-transport')")
47 @Slf4j 47 @Slf4j
48 public class KafkaTbTransportQueueFactory implements TbTransportQueueFactory { 48 public class KafkaTbTransportQueueFactory implements TbTransportQueueFactory {
49 49
@@ -43,7 +43,7 @@ import org.thingsboard.server.queue.settings.TbQueueTransportNotificationSetting @@ -43,7 +43,7 @@ import org.thingsboard.server.queue.settings.TbQueueTransportNotificationSetting
43 import javax.annotation.PreDestroy; 43 import javax.annotation.PreDestroy;
44 44
45 @Component 45 @Component
46 -@ConditionalOnExpression("'${queue.type:null}'=='pubsub' && ('${service.type:null}'=='monolith' || '${service.type:null}'=='tb-transport')") 46 +@ConditionalOnExpression("'${queue.type:null}'=='pubsub' && (('${service.type:null}'=='monolith' && '${transport.api_enabled:true}'=='true') || '${service.type:null}'=='tb-transport')")
47 @Slf4j 47 @Slf4j
48 public class PubSubTransportQueueFactory implements TbTransportQueueFactory { 48 public class PubSubTransportQueueFactory implements TbTransportQueueFactory {
49 49
@@ -42,7 +42,7 @@ import org.thingsboard.server.queue.settings.TbQueueTransportNotificationSetting @@ -42,7 +42,7 @@ import org.thingsboard.server.queue.settings.TbQueueTransportNotificationSetting
42 import javax.annotation.PreDestroy; 42 import javax.annotation.PreDestroy;
43 43
44 @Component 44 @Component
45 -@ConditionalOnExpression("'${queue.type:null}'=='rabbitmq' && ('${service.type:null}'=='monolith' || '${service.type:null}'=='tb-transport')") 45 +@ConditionalOnExpression("'${queue.type:null}'=='rabbitmq' && (('${service.type:null}'=='monolith' && '${transport.api_enabled:true}'=='true') || '${service.type:null}'=='tb-transport')")
46 @Slf4j 46 @Slf4j
47 public class RabbitMqTransportQueueFactory implements TbTransportQueueFactory { 47 public class RabbitMqTransportQueueFactory implements TbTransportQueueFactory {
48 private final TbQueueTransportApiSettings transportApiSettings; 48 private final TbQueueTransportApiSettings transportApiSettings;
@@ -38,7 +38,7 @@ import org.thingsboard.server.queue.settings.TbQueueTransportNotificationSetting @@ -38,7 +38,7 @@ import org.thingsboard.server.queue.settings.TbQueueTransportNotificationSetting
38 import javax.annotation.PreDestroy; 38 import javax.annotation.PreDestroy;
39 39
40 @Component 40 @Component
41 -@ConditionalOnExpression("'${queue.type:null}'=='service-bus' && ('${service.type:null}'=='monolith' || '${service.type:null}'=='tb-transport')") 41 +@ConditionalOnExpression("'${queue.type:null}'=='service-bus' && (('${service.type:null}'=='monolith' && '${transport.api_enabled:true}'=='true') || '${service.type:null}'=='tb-transport')")
42 @Slf4j 42 @Slf4j
43 public class ServiceBusTransportQueueFactory implements TbTransportQueueFactory { 43 public class ServiceBusTransportQueueFactory implements TbTransportQueueFactory {
44 private final TbQueueTransportApiSettings transportApiSettings; 44 private final TbQueueTransportApiSettings transportApiSettings;
@@ -28,7 +28,7 @@ import org.thingsboard.server.transport.coap.adaptors.CoapTransportAdaptor; @@ -28,7 +28,7 @@ import org.thingsboard.server.transport.coap.adaptors.CoapTransportAdaptor;
28 * Created by ashvayka on 18.10.18. 28 * Created by ashvayka on 18.10.18.
29 */ 29 */
30 @Slf4j 30 @Slf4j
31 -@ConditionalOnExpression("'${service.type:null}'=='tb-transport' || ('${service.type:null}'=='monolith' && '${transport.coap.enabled}'=='true')") 31 +@ConditionalOnExpression("'${service.type:null}'=='tb-transport' || ('${service.type:null}'=='monolith' && '${transport.api_enabled:true}'=='true' && '${transport.coap.enabled}'=='true')")
32 @Component 32 @Component
33 public class CoapTransportContext extends TransportContext { 33 public class CoapTransportContext extends TransportContext {
34 34
@@ -30,7 +30,7 @@ import java.net.InetSocketAddress; @@ -30,7 +30,7 @@ import java.net.InetSocketAddress;
30 import java.net.UnknownHostException; 30 import java.net.UnknownHostException;
31 31
32 @Service("CoapTransportService") 32 @Service("CoapTransportService")
33 -@ConditionalOnExpression("'${service.type:null}'=='tb-transport' || ('${service.type:null}'=='monolith' && '${transport.coap.enabled}'=='true')") 33 +@ConditionalOnExpression("'${service.type:null}'=='tb-transport' || ('${service.type:null}'=='monolith' && '${transport.api_enabled:true}'=='true' && '${transport.coap.enabled}'=='true')")
34 @Slf4j 34 @Slf4j
35 public class CoapTransportService { 35 public class CoapTransportService {
36 36
@@ -62,7 +62,7 @@ import java.util.function.Consumer; @@ -62,7 +62,7 @@ import java.util.function.Consumer;
62 * @author Andrew Shvayka 62 * @author Andrew Shvayka
63 */ 63 */
64 @RestController 64 @RestController
65 -@ConditionalOnExpression("'${service.type:null}'=='tb-transport' || ('${service.type:null}'=='monolith' && '${transport.http.enabled}'=='true')") 65 +@ConditionalOnExpression("'${service.type:null}'=='tb-transport' || ('${service.type:null}'=='monolith' && '${transport.api_enabled:true}'=='true' && '${transport.http.enabled}'=='true')")
66 @RequestMapping("/api/v1") 66 @RequestMapping("/api/v1")
67 @Slf4j 67 @Slf4j
68 public class DeviceApiController { 68 public class DeviceApiController {
@@ -29,7 +29,7 @@ import javax.annotation.PostConstruct; @@ -29,7 +29,7 @@ import javax.annotation.PostConstruct;
29 * Created by ashvayka on 04.10.18. 29 * Created by ashvayka on 04.10.18.
30 */ 30 */
31 @Slf4j 31 @Slf4j
32 -@ConditionalOnExpression("'${service.type:null}'=='tb-transport' || ('${service.type:null}'=='monolith' && '${transport.http.enabled}'=='true')") 32 +@ConditionalOnExpression("'${service.type:null}'=='tb-transport' || ('${service.type:null}'=='monolith' && '${transport.api_enabled:true}'=='true' && '${transport.http.enabled}'=='true')")
33 @Component 33 @Component
34 public class HttpTransportContext extends TransportContext { 34 public class HttpTransportContext extends TransportContext {
35 35
@@ -31,7 +31,7 @@ import org.thingsboard.server.transport.mqtt.adaptors.MqttTransportAdaptor; @@ -31,7 +31,7 @@ import org.thingsboard.server.transport.mqtt.adaptors.MqttTransportAdaptor;
31 */ 31 */
32 @Slf4j 32 @Slf4j
33 @Component 33 @Component
34 -@ConditionalOnExpression("'${service.type:null}'=='tb-transport' || ('${service.type:null}'=='monolith' && '${transport.mqtt.enabled}'=='true')") 34 +@ConditionalOnExpression("'${service.type:null}'=='tb-transport' || ('${service.type:null}'=='monolith' && '${transport.api_enabled:true}'=='true' && '${transport.mqtt.enabled}'=='true')")
35 public class MqttTransportContext extends TransportContext { 35 public class MqttTransportContext extends TransportContext {
36 36
37 @Getter 37 @Getter
@@ -36,7 +36,7 @@ import javax.annotation.PreDestroy; @@ -36,7 +36,7 @@ import javax.annotation.PreDestroy;
36 * @author Andrew Shvayka 36 * @author Andrew Shvayka
37 */ 37 */
38 @Service("MqttTransportService") 38 @Service("MqttTransportService")
39 -@ConditionalOnExpression("'${service.type:null}'=='tb-transport' || ('${service.type:null}'=='monolith' && '${transport.mqtt.enabled}'=='true')") 39 +@ConditionalOnExpression("'${service.type:null}'=='tb-transport' || ('${service.type:null}'=='monolith' && '${transport.api_enabled:true}'=='true' && '${transport.mqtt.enabled}'=='true')")
40 @Slf4j 40 @Slf4j
41 public class MqttTransportService { 41 public class MqttTransportService {
42 42
@@ -35,7 +35,7 @@ import java.util.concurrent.Executors; @@ -35,7 +35,7 @@ import java.util.concurrent.Executors;
35 @Slf4j 35 @Slf4j
36 @Data 36 @Data
37 @Service 37 @Service
38 -@ConditionalOnExpression("'${service.type:null}'=='tb-transport' || '${service.type:null}'=='monolith'") 38 +@ConditionalOnExpression("'${service.type:null}'=='tb-transport' || ('${service.type:null}'=='monolith' && '${transport.api_enabled:true}'=='true')")
39 public abstract class TransportContext { 39 public abstract class TransportContext {
40 40
41 protected final ObjectMapper mapper = new ObjectMapper(); 41 protected final ObjectMapper mapper = new ObjectMapper();
@@ -81,7 +81,7 @@ import java.util.concurrent.atomic.AtomicInteger; @@ -81,7 +81,7 @@ import java.util.concurrent.atomic.AtomicInteger;
81 */ 81 */
82 @Slf4j 82 @Slf4j
83 @Service 83 @Service
84 -@ConditionalOnExpression("'${service.type:null}'=='monolith' || '${service.type:null}'=='tb-transport'") 84 +@ConditionalOnExpression("('${service.type:null}'=='monolith' && '${transport.api_enabled:true}'=='true') || '${service.type:null}'=='tb-transport'")
85 public class DefaultTransportService implements TransportService { 85 public class DefaultTransportService implements TransportService {
86 86
87 @Value("${transport.rate_limits.enabled}") 87 @Value("${transport.rate_limits.enabled}")