10 changed files with 243 additions and 27 deletions
@ -0,0 +1,114 @@ |
|||
/** |
|||
* Copyright © 2016-2022 The Thingsboard Authors |
|||
* |
|||
* Licensed 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.thingsboard.server.queue; |
|||
|
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; |
|||
import org.springframework.context.annotation.Bean; |
|||
import org.springframework.context.annotation.Configuration; |
|||
import org.thingsboard.server.queue.azure.servicebus.TbServiceBusAdmin; |
|||
import org.thingsboard.server.queue.azure.servicebus.TbServiceBusQueueConfigs; |
|||
import org.thingsboard.server.queue.azure.servicebus.TbServiceBusSettings; |
|||
import org.thingsboard.server.queue.kafka.TbKafkaAdmin; |
|||
import org.thingsboard.server.queue.kafka.TbKafkaSettings; |
|||
import org.thingsboard.server.queue.kafka.TbKafkaTopicConfigs; |
|||
import org.thingsboard.server.queue.pubsub.TbPubSubAdmin; |
|||
import org.thingsboard.server.queue.pubsub.TbPubSubSettings; |
|||
import org.thingsboard.server.queue.pubsub.TbPubSubSubscriptionSettings; |
|||
import org.thingsboard.server.queue.rabbitmq.TbRabbitMqAdmin; |
|||
import org.thingsboard.server.queue.rabbitmq.TbRabbitMqQueueArguments; |
|||
import org.thingsboard.server.queue.rabbitmq.TbRabbitMqSettings; |
|||
import org.thingsboard.server.queue.sqs.TbAwsSqsAdmin; |
|||
import org.thingsboard.server.queue.sqs.TbAwsSqsQueueAttributes; |
|||
import org.thingsboard.server.queue.sqs.TbAwsSqsSettings; |
|||
|
|||
@Configuration |
|||
public class RuleEngineTbQueueAdminFactory { |
|||
|
|||
@Autowired(required = false) |
|||
private TbKafkaTopicConfigs kafkaTopicConfigs; |
|||
@Autowired(required = false) |
|||
private TbKafkaSettings kafkaSettings; |
|||
|
|||
@Autowired(required = false) |
|||
private TbAwsSqsQueueAttributes awsSqsQueueAttributes; |
|||
@Autowired(required = false) |
|||
private TbAwsSqsSettings awsSqsSettings; |
|||
|
|||
@Autowired(required = false) |
|||
private TbPubSubSubscriptionSettings pubSubSubscriptionSettings; |
|||
@Autowired(required = false) |
|||
private TbPubSubSettings pubSubSettings; |
|||
|
|||
@Autowired(required = false) |
|||
private TbRabbitMqQueueArguments rabbitMqQueueArguments; |
|||
@Autowired(required = false) |
|||
private TbRabbitMqSettings rabbitMqSettings; |
|||
|
|||
@Autowired(required = false) |
|||
private TbServiceBusQueueConfigs serviceBusQueueConfigs; |
|||
@Autowired(required = false) |
|||
private TbServiceBusSettings serviceBusSettings; |
|||
|
|||
@ConditionalOnExpression("'${queue.type:null}'=='kafka'") |
|||
@Bean |
|||
public TbQueueAdmin createKafkaAdmin() { |
|||
return new TbKafkaAdmin(kafkaSettings, kafkaTopicConfigs.getRuleEngineConfigs()); |
|||
} |
|||
|
|||
@ConditionalOnExpression("'${queue.type:null}'=='aws-sqs'") |
|||
@Bean |
|||
public TbQueueAdmin createAwsSqsAdmin() { |
|||
return new TbAwsSqsAdmin(awsSqsSettings, awsSqsQueueAttributes.getRuleEngineAttributes()); |
|||
} |
|||
|
|||
@ConditionalOnExpression("'${queue.type:null}'=='pubsub'") |
|||
@Bean |
|||
public TbQueueAdmin createPubSubAdmin() { |
|||
return new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getRuleEngineSettings()); |
|||
} |
|||
|
|||
@ConditionalOnExpression("'${queue.type:null}'=='rabbitmq'") |
|||
@Bean |
|||
public TbQueueAdmin createRabbitMqAdmin() { |
|||
return new TbRabbitMqAdmin(rabbitMqSettings, rabbitMqQueueArguments.getRuleEngineArgs()); |
|||
} |
|||
|
|||
@ConditionalOnExpression("'${queue.type:null}'=='service-bus'") |
|||
@Bean |
|||
public TbQueueAdmin createServiceBusAdmin() { |
|||
return new TbServiceBusAdmin(serviceBusSettings, serviceBusQueueConfigs.getRuleEngineConfigs()); |
|||
} |
|||
|
|||
@ConditionalOnExpression("'${queue.type:null}'=='in-memory'") |
|||
@Bean |
|||
public TbQueueAdmin createInMemoryAdmin() { |
|||
return new TbQueueAdmin() { |
|||
|
|||
@Override |
|||
public void createTopicIfNotExists(String topic) { |
|||
} |
|||
|
|||
@Override |
|||
public void deleteTopic(String topic) { |
|||
} |
|||
|
|||
@Override |
|||
public void destroy() { |
|||
} |
|||
}; |
|||
} |
|||
} |
|||
Loading…
Reference in new issue