Skip to content

Commit

Permalink
chore: add havingValue to auto configurations (#403)
Browse files Browse the repository at this point in the history
Rename SpringwolfSqsWebConfiguration to SpringwolfSqsProducerConfiguration
Extract SpringwolfAmqpProducerConfiguration
  • Loading branch information
timonback committed Oct 13, 2023
1 parent 8b974b5 commit ff1a6c9
Show file tree
Hide file tree
Showing 12 changed files with 82 additions and 47 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
*/
@AutoConfiguration
@Import({SpringwolfWebConfiguration.class, SpringwolfScannerConfiguration.class})
@ConditionalOnProperty(name = SpringwolfConfigConstants.SPRINGWOLF_ENABLED, matchIfMissing = true)
@ConditionalOnProperty(name = SpringwolfConfigConstants.SPRINGWOLF_ENABLED, havingValue = "true", matchIfMissing = true)
public class SpringwolfAutoConfiguration {

@Bean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,23 +51,26 @@ public BeanMethodsScanner beanMethodsScanner(ConfigurationClassScanner configura
}

@Bean
@ConditionalOnProperty(name = SPRINGWOLF_SCANNER_CONSUMER_DATA_ENABLED, matchIfMissing = true)
@ConditionalOnProperty(name = SPRINGWOLF_SCANNER_CONSUMER_DATA_ENABLED, havingValue = "true", matchIfMissing = true)
@Order(value = ChannelPriority.MANUAL_DEFINED)
public ConsumerOperationDataScanner consumerOperationDataScanner(
AsyncApiDocketService asyncApiDocketService, SchemasService schemasService) {
return new ConsumerOperationDataScanner(asyncApiDocketService, schemasService);
}

@Bean
@ConditionalOnProperty(name = SPRINGWOLF_SCANNER_PRODUCER_DATA_ENABLED, matchIfMissing = true)
@ConditionalOnProperty(name = SPRINGWOLF_SCANNER_PRODUCER_DATA_ENABLED, havingValue = "true", matchIfMissing = true)
@Order(value = ChannelPriority.MANUAL_DEFINED)
public ProducerOperationDataScanner producerOperationDataScanner(
AsyncApiDocketService asyncApiDocketService, SchemasService schemasService) {
return new ProducerOperationDataScanner(asyncApiDocketService, schemasService);
}

@Bean
@ConditionalOnProperty(name = SPRINGWOLF_SCANNER_ASYNC_LISTENER_ENABLED, matchIfMissing = true)
@ConditionalOnProperty(
name = SPRINGWOLF_SCANNER_ASYNC_LISTENER_ENABLED,
havingValue = "true",
matchIfMissing = true)
@Order(value = ChannelPriority.ASYNC_ANNOTATION)
public AsyncListenerAnnotationScanner asyncListenerAnnotationScanner(
ComponentClassScanner componentClassScanner,
Expand All @@ -79,7 +82,10 @@ public AsyncListenerAnnotationScanner asyncListenerAnnotationScanner(
}

@Bean
@ConditionalOnProperty(name = SPRINGWOLF_SCANNER_ASYNC_PUBLISHER_ENABLED, matchIfMissing = true)
@ConditionalOnProperty(
name = SPRINGWOLF_SCANNER_ASYNC_PUBLISHER_ENABLED,
havingValue = "true",
matchIfMissing = true)
@Order(value = ChannelPriority.ASYNC_ANNOTATION)
public AsyncPublisherAnnotationScanner asyncPublisherAnnotationScanner(
ComponentClassScanner componentClassScanner,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,51 +1,23 @@
// SPDX-License-Identifier: Apache-2.0
package io.github.stavshamir.springwolf.asyncapi.amqp;

import com.fasterxml.jackson.databind.ObjectMapper;
import io.github.stavshamir.springwolf.asyncapi.AsyncApiService;
import io.github.stavshamir.springwolf.asyncapi.controller.SpringwolfAmqpController;
import io.github.stavshamir.springwolf.configuration.AsyncApiDocketService;
import io.github.stavshamir.springwolf.configuration.properties.SpringwolfAmqpConfigProperties;
import io.github.stavshamir.springwolf.configuration.properties.SpringwolfConfigConstants;
import io.github.stavshamir.springwolf.producer.SpringwolfAmqpProducer;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
import org.springframework.lang.NonNull;

import java.util.List;

import static io.github.stavshamir.springwolf.configuration.properties.SpringwolfAmqpConfigConstants.SPRINGWOLF_AMQP_CONFIG_PREFIX;
import static io.github.stavshamir.springwolf.configuration.properties.SpringwolfAmqpConfigConstants.SPRINGWOLF_AMQP_PLUGIN_PUBLISHING_ENABLED;

/**
* Autoconfiguration for the springwolf amqp plugin.
*/
@AutoConfiguration
@ConditionalOnProperty(name = SpringwolfConfigConstants.SPRINGWOLF_ENABLED, matchIfMissing = true)
@Import({SpringwolfAmqpScannerConfiguration.class})
@ConditionalOnProperty(name = SpringwolfConfigConstants.SPRINGWOLF_ENABLED, havingValue = "true", matchIfMissing = true)
@Import({SpringwolfAmqpScannerConfiguration.class, SpringwolfAmqpProducerConfiguration.class})
public class SpringwolfAmqpAutoConfiguration {

@Bean
public SpringwolfAmqpConfigProperties springwolfAmqpConfigProperties() {
return new SpringwolfAmqpConfigProperties();
}

@Bean
@ConditionalOnProperty(prefix = SPRINGWOLF_AMQP_CONFIG_PREFIX, name = SPRINGWOLF_AMQP_PLUGIN_PUBLISHING_ENABLED)
public SpringwolfAmqpProducer springwolfAmqpProducer(
AsyncApiService asyncApiService, @NonNull List<RabbitTemplate> rabbitTemplates) {
return new SpringwolfAmqpProducer(asyncApiService, rabbitTemplates);
}

@Bean
@ConditionalOnProperty(prefix = SPRINGWOLF_AMQP_CONFIG_PREFIX, name = SPRINGWOLF_AMQP_PLUGIN_PUBLISHING_ENABLED)
public SpringwolfAmqpController springwolfAmqpController(
AsyncApiDocketService asyncApiDocketService,
SpringwolfAmqpProducer springwolfAmqpProducer,
ObjectMapper objectMapper) {
return new SpringwolfAmqpController(asyncApiDocketService, springwolfAmqpProducer, objectMapper);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
// SPDX-License-Identifier: Apache-2.0
package io.github.stavshamir.springwolf.asyncapi.amqp;

import com.fasterxml.jackson.databind.ObjectMapper;
import io.github.stavshamir.springwolf.asyncapi.AsyncApiService;
import io.github.stavshamir.springwolf.asyncapi.controller.SpringwolfAmqpController;
import io.github.stavshamir.springwolf.configuration.AsyncApiDocketService;
import io.github.stavshamir.springwolf.producer.SpringwolfAmqpProducer;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.lang.NonNull;

import java.util.List;

import static io.github.stavshamir.springwolf.configuration.properties.SpringwolfAmqpConfigConstants.SPRINGWOLF_AMQP_CONFIG_PREFIX;
import static io.github.stavshamir.springwolf.configuration.properties.SpringwolfAmqpConfigConstants.SPRINGWOLF_AMQP_PLUGIN_PUBLISHING_ENABLED;

@Configuration(proxyBeanMethods = false)
@ConditionalOnProperty(
prefix = SPRINGWOLF_AMQP_CONFIG_PREFIX,
name = SPRINGWOLF_AMQP_PLUGIN_PUBLISHING_ENABLED,
havingValue = "true")
@Import({SpringwolfAmqpScannerConfiguration.class})
public class SpringwolfAmqpProducerConfiguration {

@Bean
public SpringwolfAmqpProducer springwolfAmqpProducer(
AsyncApiService asyncApiService, @NonNull List<RabbitTemplate> rabbitTemplates) {
return new SpringwolfAmqpProducer(asyncApiService, rabbitTemplates);
}

@Bean
public SpringwolfAmqpController springwolfAmqpController(
AsyncApiDocketService asyncApiDocketService,
SpringwolfAmqpProducer springwolfAmqpProducer,
ObjectMapper objectMapper) {
return new SpringwolfAmqpController(asyncApiDocketService, springwolfAmqpProducer, objectMapper);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,10 @@
public class SpringwolfAmqpScannerConfiguration {

@Bean
@ConditionalOnProperty(name = SPRINGWOLF_SCANNER_RABBIT_LISTENER_ENABLED, matchIfMissing = true)
@ConditionalOnProperty(
name = SPRINGWOLF_SCANNER_RABBIT_LISTENER_ENABLED,
havingValue = "true",
matchIfMissing = true)
@Order(value = ChannelPriority.AUTO_DISCOVERED)
public ClassLevelRabbitListenerScanner classLevelRabbitListenerScanner(
ComponentClassScanner componentClassScanner,
Expand All @@ -40,7 +43,10 @@ public ClassLevelRabbitListenerScanner classLevelRabbitListenerScanner(
}

@Bean
@ConditionalOnProperty(name = SPRINGWOLF_SCANNER_RABBIT_LISTENER_ENABLED, matchIfMissing = true)
@ConditionalOnProperty(
name = SPRINGWOLF_SCANNER_RABBIT_LISTENER_ENABLED,
havingValue = "true",
matchIfMissing = true)
@Order(value = ChannelPriority.AUTO_DISCOVERED)
public MethodLevelRabbitListenerScanner methodLevelRabbitListenerScanner(
ComponentClassScanner componentClassScanner,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
* Autoconfiguration for the springwolf cloudstream plugin.
*/
@AutoConfiguration
@ConditionalOnProperty(name = SpringwolfConfigConstants.SPRINGWOLF_ENABLED, matchIfMissing = true)
@ConditionalOnProperty(name = SpringwolfConfigConstants.SPRINGWOLF_ENABLED, havingValue = "true", matchIfMissing = true)
public class SpringwolfCloudStreamAutoConfiguration {

@Bean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
*/
@AutoConfiguration
@Import({SpringwolfKafkaScannerConfiguration.class, SpringwolfKafkaProducerConfiguration.class})
@ConditionalOnProperty(name = SpringwolfConfigConstants.SPRINGWOLF_ENABLED, matchIfMissing = true)
@ConditionalOnProperty(name = SpringwolfConfigConstants.SPRINGWOLF_ENABLED, havingValue = "true", matchIfMissing = true)
public class SpringwolfKafkaAutoConfiguration {

@Bean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,21 @@ public class SpringwolfKafkaScannerConfiguration {

@Bean
@Order(value = ChannelPriority.AUTO_DISCOVERED)
@ConditionalOnProperty(name = SPRINGWOLF_SCANNER_KAFKA_LISTENER_ENABLED, matchIfMissing = true)
@ConditionalOnProperty(
name = SPRINGWOLF_SCANNER_KAFKA_LISTENER_ENABLED,
havingValue = "true",
matchIfMissing = true)
public ClassLevelKafkaListenerScanner classLevelKafkaListenerScanner(
ComponentClassScanner componentClassScanner, SchemasService schemasService) {
return new ClassLevelKafkaListenerScanner(componentClassScanner, schemasService);
}

@Bean
@Order(value = ChannelPriority.AUTO_DISCOVERED)
@ConditionalOnProperty(name = SPRINGWOLF_SCANNER_KAFKA_LISTENER_ENABLED, matchIfMissing = true)
@ConditionalOnProperty(
name = SPRINGWOLF_SCANNER_KAFKA_LISTENER_ENABLED,
havingValue = "true",
matchIfMissing = true)
public MethodLevelKafkaListenerScanner methodLevelKafkaListenerScanner(
ComponentClassScanner componentClassScanner, SchemasService schemasService) {
return new MethodLevelKafkaListenerScanner(componentClassScanner, schemasService);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
*/
@AutoConfiguration
@Import({SpringwolfSnsScannerConfiguration.class, SpringwolfSnsProducerConfiguration.class})
@ConditionalOnProperty(name = SpringwolfConfigConstants.SPRINGWOLF_ENABLED, matchIfMissing = true)
@ConditionalOnProperty(name = SpringwolfConfigConstants.SPRINGWOLF_ENABLED, havingValue = "true", matchIfMissing = true)
public class SpringwolfSnsAutoConfiguration {

@Bean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
* Autoconfiguration for the springwolf sqs plugin.
*/
@AutoConfiguration
@Import({SpringwolfSqsScannerConfiguration.class, SpringwolfSqsWebConfiguration.class})
@ConditionalOnProperty(name = SpringwolfConfigConstants.SPRINGWOLF_ENABLED, matchIfMissing = true)
@Import({SpringwolfSqsScannerConfiguration.class, SpringwolfSqsProducerConfiguration.class})
@ConditionalOnProperty(name = SpringwolfConfigConstants.SPRINGWOLF_ENABLED, havingValue = "true", matchIfMissing = true)
public class SpringwolfSqsAutoConfiguration {

@Bean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,11 @@
import static io.github.stavshamir.springwolf.configuration.properties.SpringwolfSqsConfigConstants.SPRINGWOLF_SQS_PLUGIN_PUBLISHING_ENABLED;

@Configuration(proxyBeanMethods = false)
@ConditionalOnProperty(prefix = SPRINGWOLF_SQS_CONFIG_PREFIX, name = SPRINGWOLF_SQS_PLUGIN_PUBLISHING_ENABLED)
public class SpringwolfSqsWebConfiguration {
@ConditionalOnProperty(
prefix = SPRINGWOLF_SQS_CONFIG_PREFIX,
name = SPRINGWOLF_SQS_PLUGIN_PUBLISHING_ENABLED,
havingValue = "true")
public class SpringwolfSqsProducerConfiguration {

@Bean
public SpringwolfSqsProducer springwolfSqsProducer(List<SqsTemplate> sqsTemplates) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public class SpringwolfSqsScannerConfiguration {

@Bean
@Order(value = ChannelPriority.AUTO_DISCOVERED)
@ConditionalOnProperty(name = SPRINGWOLF_SCANNER_SQS_LISTENER_ENABLED, matchIfMissing = true)
@ConditionalOnProperty(name = SPRINGWOLF_SCANNER_SQS_LISTENER_ENABLED, havingValue = "true", matchIfMissing = true)
public MethodLevelSqsListenerScanner methodLevelSqsListenerScanner(
ComponentClassScanner componentClassScanner, SchemasService schemasService) {
return new MethodLevelSqsListenerScanner(componentClassScanner, schemasService);
Expand Down

0 comments on commit ff1a6c9

Please sign in to comment.