in rocketmq-v5-client-spring-boot/src/main/java/org/apache/rocketmq/client/autoconfigure/ExtConsumerResetConfiguration.java [111:140]
private SimpleConsumerInfo createConsumer(
org.apache.rocketmq.client.annotation.ExtConsumerResetConfiguration annotation,
SimpleConsumerBuilder simpleConsumerBuilder) {
RocketMQProperties.SimpleConsumer simpleConsumer = rocketMQProperties.getSimpleConsumer();
String consumerGroupName = resolvePlaceholders(annotation.consumerGroup(), simpleConsumer.getConsumerGroup());
String topicName = resolvePlaceholders(annotation.topic(), simpleConsumer.getTopic());
String accessKey = resolvePlaceholders(annotation.accessKey(), simpleConsumer.getAccessKey());
String secretKey = resolvePlaceholders(annotation.secretKey(), simpleConsumer.getSecretKey());
String endPoints = resolvePlaceholders(annotation.endpoints(), simpleConsumer.getEndpoints());
String namespace = resolvePlaceholders(annotation.namespace(), simpleConsumer.getNamespace());
String tag = resolvePlaceholders(annotation.tag(), simpleConsumer.getTag());
String filterExpressionType = resolvePlaceholders(annotation.filterExpressionType(), simpleConsumer.getFilterExpressionType());
Duration requestTimeout = Duration.ofSeconds(annotation.requestTimeout());
int awaitDuration = annotation.awaitDuration();
Boolean sslEnabled = simpleConsumer.isSslEnabled();
Assert.hasText(topicName, "[topic] must not be null");
ClientConfiguration clientConfiguration = RocketMQUtil.createClientConfiguration(accessKey, secretKey, endPoints, requestTimeout, sslEnabled, namespace);
FilterExpression filterExpression = RocketMQUtil.createFilterExpression(tag, filterExpressionType);
Duration duration = Duration.ofSeconds(awaitDuration);
simpleConsumerBuilder.setClientConfiguration(clientConfiguration);
if (StringUtils.hasLength(consumerGroupName)) {
simpleConsumerBuilder.setConsumerGroup(consumerGroupName);
}
simpleConsumerBuilder.setAwaitDuration(duration);
if (Objects.nonNull(filterExpression)) {
simpleConsumerBuilder.setSubscriptionExpressions(Collections.singletonMap(topicName, filterExpression));
}
return new SimpleConsumerInfo(consumerGroupName, topicName, endPoints, namespace, tag, filterExpressionType, requestTimeout, awaitDuration, sslEnabled);
}