Skip to content

Commit 46eb233

Browse files
committed
Add binding for modern routing key
1 parent 460767b commit 46eb233

File tree

2 files changed

+43
-22
lines changed

2 files changed

+43
-22
lines changed

ui/src/main/java/com/studiomediatech/queryresponse/ui/messaging/MessagingConfig.java

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,31 +14,39 @@
1414
import com.studiomediatech.queryresponse.QueryResponseTopicExchange;
1515

1616
/**
17-
* Configuration for ports that enable messaging, specifically AMQP including Query/Response.
17+
* Configuration for ports that enable messaging, specifically AMQP including
18+
* Query/Response.
1819
*/
1920
@Configuration
2021
@EnableQueryResponse
2122
@ComponentScan(basePackageClasses = MessagingConfig.class)
2223
public class MessagingConfig {
2324

24-
static final String QUERY_RESPONSE_STATS_QUEUE_BEAN = "queryResponseStatsQueue";
25-
static final String QUERY_RESPONSE_QUERIES_QUEUE_BEAN = "queryResponseQueriesQueue";
26-
static final String QUERY_RESPONSE_STATS_QUEUE_BINDING_BEAN = "queryResponseQueriesQueueBinding";
27-
static final String QUERY_RESPONSE_INTERNAL_STATS_ROUTING_KEY = "query-response/internal/stats";
28-
29-
@Bean
30-
ConnectionNameStrategy connectionNameStrategy(Environment env) {
31-
return connectionFactory -> env.getProperty("spring.application.name", "query-response-ui");
32-
}
33-
34-
@Bean(QUERY_RESPONSE_STATS_QUEUE_BEAN)
35-
Queue queryResponseStatsQueue() {
36-
return new AnonymousQueue();
37-
}
38-
39-
@Bean(QUERY_RESPONSE_STATS_QUEUE_BINDING_BEAN)
40-
Binding queryResponseStatsQueueBinding(QueryResponseTopicExchange queryResponseTopicExchange) {
41-
return BindingBuilder.bind(queryResponseStatsQueue()).to(queryResponseTopicExchange)
42-
.with(QUERY_RESPONSE_INTERNAL_STATS_ROUTING_KEY);
43-
}
25+
static final String QUERY_RESPONSE_STATS_QUEUE_BEAN = "queryResponseStatsQueue";
26+
static final String QUERY_RESPONSE_QUERIES_QUEUE_BEAN = "queryResponseQueriesQueue";
27+
28+
protected static final String QUERY_RESPONSE_STATS_BINDING = "queryResponseStatsBinding";
29+
protected static final String QUERY_RESPONSE_TELEMETRY_BINDING = "queryResponseTelemetryBinding";
30+
31+
@Bean
32+
ConnectionNameStrategy connectionNameStrategy(Environment env) {
33+
return connectionFactory -> env.getProperty("spring.application.name", "query-response-ui");
34+
}
35+
36+
@Bean(QUERY_RESPONSE_STATS_QUEUE_BEAN)
37+
Queue queryResponseStatsQueue() {
38+
return new AnonymousQueue();
39+
}
40+
41+
@Bean(QUERY_RESPONSE_STATS_BINDING)
42+
Binding queryResponseStatsQueueBinding(QueryResponseTopicExchange queryResponseTopicExchange) {
43+
return BindingBuilder.bind(queryResponseStatsQueue()).to(queryResponseTopicExchange)
44+
.with("query-response/internal/stats");
45+
}
46+
47+
@Bean(QUERY_RESPONSE_TELEMETRY_BINDING)
48+
Binding queryResponseTelemetryQueueBinding(QueryResponseTopicExchange queryResponseTopicExchange) {
49+
return BindingBuilder.bind(queryResponseStatsQueue()).to(queryResponseTopicExchange)
50+
.with("query-response/internal/telemetry");
51+
}
4452
}

ui/src/test/java/com/studiomediatech/queryresponse/ui/messaging/MessagingConfigIT.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,23 @@ void ensure_has_telemetry_queue_with_binding() {
2121
Queue queue = (Queue) ctx.getBean(MessagingConfig.QUERY_RESPONSE_STATS_QUEUE_BEAN);
2222
assertThat(queue).isNotNull();
2323

24-
Binding binding = (Binding) ctx.getBean(MessagingConfig.QUERY_RESPONSE_STATS_QUEUE_BINDING_BEAN);
24+
Binding binding = (Binding) ctx.getBean(MessagingConfig.QUERY_RESPONSE_STATS_BINDING);
2525
assertThat(binding).isNotNull();
2626
assertThat(binding.getDestination()).isEqualTo(queue.getName());
2727
assertThat(binding.getRoutingKey()).isEqualTo("query-response/internal/stats");
2828
assertThat(binding.getExchange()).isEqualTo("query-response");
2929
}
30+
31+
@Test
32+
void ensure_has_telemetry_queue_with_modernised_binding() throws Exception {
33+
34+
Queue queue = (Queue) ctx.getBean(MessagingConfig.QUERY_RESPONSE_STATS_QUEUE_BEAN);
35+
assertThat(queue).isNotNull();
36+
37+
Binding binding = (Binding) ctx.getBean(MessagingConfig.QUERY_RESPONSE_TELEMETRY_BINDING);
38+
assertThat(binding).isNotNull();
39+
assertThat(binding.getDestination()).isEqualTo(queue.getName());
40+
assertThat(binding.getRoutingKey()).isEqualTo("query-response/internal/telemetry");
41+
assertThat(binding.getExchange()).isEqualTo("query-response");
42+
}
3043
}

0 commit comments

Comments
 (0)