Commit 67f122647bf17a8d76af4c683eb0fad46d652531
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}") |