Skip to content

Commit ee76460

Browse files
committed
Use "new" v2 address format
References rabbitmq/rabbitmq-server#11604
1 parent 2db7f38 commit ee76460

File tree

8 files changed

+27
-35
lines changed

8 files changed

+27
-35
lines changed

src/main/java/com/rabbitmq/client/amqp/impl/DefaultAddressBuilder.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,12 @@ public T queue(String queue) {
5959
String address() {
6060
if (this.exchange != null) {
6161
if (this.key != null && !this.key.isEmpty()) {
62-
return "/exchange/"
63-
+ encodePathSegment(this.exchange)
64-
+ "/key/"
65-
+ encodePathSegment(this.key);
62+
return "/e/" + encodePathSegment(this.exchange) + "/" + encodePathSegment(this.key);
6663
} else {
67-
return "/exchange/" + encodePathSegment(this.exchange);
64+
return "/e/" + encodePathSegment(this.exchange);
6865
}
6966
} else if (this.queue != null) {
70-
return "/queue/" + encodePathSegment(this.queue);
67+
return "/q/" + encodePathSegment(this.queue);
7168
} else {
7269
return null;
7370
}

src/main/java/com/rabbitmq/client/amqp/impl/Utils.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,9 @@ static ThreadFactory defaultThreadFactory() {
138138
static String extractQueueFromSourceAddress(String address) {
139139
if (address == null) {
140140
return null;
141-
} else if (address.startsWith("/queue/")) {
142-
return address.replace("/queue/", "");
143-
} else if (address.startsWith("/exchange/") || address.startsWith("/topic/")) {
141+
} else if (address.startsWith("/q/")) {
142+
return address.replace("/q/", "");
143+
} else if (address.startsWith("/e/")) {
144144
return null;
145145
} else {
146146
return null;

src/main/java/com/rabbitmq/client/amqp/observation/micrometer/Utils.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ abstract class Utils {
2121

2222
private Utils() {}
2323

24-
private static final String EXCHANGE_DELIMITER = "/exchange/";
25-
private static final String KEY_DELIMITER = "/key/";
26-
private static final String QUEUE_DELIMITER = "/queue/";
24+
private static final String EXCHANGE_DELIMITER = "/e/";
25+
private static final String KEY_DELIMITER = "/";
26+
private static final String QUEUE_DELIMITER = "/q/";
2727
private static final int EXCHANGE_DELIMITER_LENGTH = EXCHANGE_DELIMITER.length();
2828
private static final int KEY_DELIMITER_LENGTH = KEY_DELIMITER.length();
2929
private static final int QUEUE_DELIMITER_LENGTH = QUEUE_DELIMITER.length();
@@ -36,7 +36,7 @@ static String[] exchangeRoutingKeyFromTo(String to) {
3636
exRk[0] = EMPTY_STRING;
3737
exRk[1] = to.substring(QUEUE_DELIMITER_LENGTH);
3838
} else if (to.startsWith(EXCHANGE_DELIMITER)) {
39-
int keyDelimiterIndex = to.indexOf(KEY_DELIMITER);
39+
int keyDelimiterIndex = to.indexOf(KEY_DELIMITER, EXCHANGE_DELIMITER_LENGTH);
4040
exRk[0] =
4141
to.substring(
4242
EXCHANGE_DELIMITER_LENGTH,

src/test/java/com/rabbitmq/client/amqp/impl/AmqpMessageTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ public class AmqpMessageTest {
2626
@Test
2727
void toShouldBePathEncoded() {
2828
assertThat(new AmqpMessage().toAddress().exchange("foo bar").message().to())
29-
.isEqualTo("/exchange/foo%20bar");
29+
.isEqualTo("/e/foo%20bar");
3030
}
3131

3232
@Test
3333
void replyToShouldBePathEncoded() {
3434
assertThat(new AmqpMessage().replyToAddress().exchange("foo bar").message().replyTo())
35-
.isEqualTo("/exchange/foo%20bar");
35+
.isEqualTo("/e/foo%20bar");
3636
}
3737
}

src/test/java/com/rabbitmq/client/amqp/impl/DefaultAddressBuilderTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@ public class DefaultAddressBuilderTest {
2525

2626
@Test
2727
void pathSegmentsShouldBePercentEncoded() {
28-
assertThat(b().exchange("foo").address()).isEqualTo("/exchange/foo");
29-
assertThat(b().exchange("foo").key("bar").address()).isEqualTo("/exchange/foo/key/bar");
30-
assertThat(b().exchange("foo bar").address()).isEqualTo("/exchange/foo%20bar");
31-
assertThat(b().exchange("foo").key("b ar").address()).isEqualTo("/exchange/foo/key/b%20ar");
32-
assertThat(b().queue("foo").address()).isEqualTo("/queue/foo");
33-
assertThat(b().queue("foo bar").address()).isEqualTo("/queue/foo%20bar");
28+
assertThat(b().exchange("foo").address()).isEqualTo("/e/foo");
29+
assertThat(b().exchange("foo").key("bar").address()).isEqualTo("/e/foo/bar");
30+
assertThat(b().exchange("foo bar").address()).isEqualTo("/e/foo%20bar");
31+
assertThat(b().exchange("foo").key("b ar").address()).isEqualTo("/e/foo/b%20ar");
32+
assertThat(b().queue("foo").address()).isEqualTo("/q/foo");
33+
assertThat(b().queue("foo bar").address()).isEqualTo("/q/foo%20bar");
3434
}
3535

3636
TestAddressBuilder b() {

src/test/java/com/rabbitmq/client/amqp/impl/RecordingTopologyListenerTest.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,20 +97,20 @@ void autoDeleteQueueIsDeletedAfterLastConsumerIsClosed() {
9797
recovery.queueDeclared(queue("q2"));
9898
recovery.queueDeclared(autoDeleteQueue("ad-q"));
9999

100-
recovery.consumerCreated(1, "/queue/q1");
101-
recovery.consumerCreated(2, "/queue/q2");
102-
recovery.consumerCreated(3, "/queue/ad-q");
103-
recovery.consumerCreated(4, "/queue/ad-q");
100+
recovery.consumerCreated(1, "/q/q1");
101+
recovery.consumerCreated(2, "/q/q2");
102+
recovery.consumerCreated(3, "/q/ad-q");
103+
recovery.consumerCreated(4, "/q/ad-q");
104104

105105
assertThat(recovery).hasQueueCount(3).hasQueues("q1", "q2", "ad-q");
106106

107-
recovery.consumerDeleted(1, "/queue/q1");
107+
recovery.consumerDeleted(1, "/q/q1");
108108
assertThat(recovery).hasQueueCount(3).hasQueues("q1", "q2", "ad-q");
109109

110-
recovery.consumerDeleted(3, "/queue/ad-q");
110+
recovery.consumerDeleted(3, "/q/ad-q");
111111
assertThat(recovery).hasQueueCount(3).hasQueues("q1", "q2", "ad-q");
112112

113-
recovery.consumerDeleted(4, "/queue/ad-q");
113+
recovery.consumerDeleted(4, "/q/ad-q");
114114
assertThat(recovery).hasQueueCount(2).hasQueues("q1", "q2");
115115
}
116116

src/test/java/com/rabbitmq/client/amqp/impl/UtilsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
public class UtilsTest {
2828

2929
@ParameterizedTest
30-
@CsvSource({"/exchange/foo/bar,", "/topic/foo,", "/queue/foo,foo", "foo,"})
30+
@CsvSource({"/e/foo/bar,", "/q/foo,foo", "foo,"})
3131
void extractQueueFromSourceAddress(String address, String expectedQueue) {
3232
assertThat(Utils.extractQueueFromSourceAddress(address)).isEqualTo(expectedQueue);
3333
}

src/test/java/com/rabbitmq/client/amqp/observation/micrometer/UtilsTest.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,7 @@ public class UtilsTest {
2727

2828
@ParameterizedTest
2929
@CsvSource(
30-
value = {
31-
"/exchange/foo/key/bar,foo,bar",
32-
"/exchange/foo,foo,NULL",
33-
"/queue/bar,'',bar",
34-
"not a address,NULL,NULL"
35-
},
30+
value = {"/e/foo/bar,foo,bar", "/e/foo,foo,NULL", "/q/bar,'',bar", "not a address,NULL,NULL"},
3631
nullValues = "NULL")
3732
void testExchangeRoutingKeyFromTo(String to, String ex, String rk) {
3833
assertThat(exchangeRoutingKeyFromTo(to)).containsExactly(ex, rk);

0 commit comments

Comments
 (0)