Skip to content

Commit 8265cf0

Browse files
author
Phillip Webb
committed
Merge pull request spring-projects#1209 from garyrussell/spring-projectsgh-1206
* spring-projectsgh-1206: Restore AMQP vHost leading `/` support
2 parents fd3e5ec + ce0cbe0 commit 8265cf0

File tree

3 files changed

+27
-7
lines changed

3 files changed

+27
-7
lines changed

spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java

-4
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,7 @@ public String getVirtualHost() {
143143
}
144144

145145
public void setVirtualHost(String virtualHost) {
146-
while (virtualHost.startsWith("/") && virtualHost.length() > 0) {
147-
virtualHost = virtualHost.substring(1);
148-
}
149146
this.virtualHost = ("".equals(virtualHost) ? "/" : virtualHost);
150-
151147
}
152148

153149
}
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
*
3939
* @author Greg Turnquist
4040
*/
41-
public class RabbitAutoconfigurationTests {
41+
public class RabbitAutoConfigurationTests {
4242

4343
private AnnotationConfigApplicationContext context;
4444

@@ -74,7 +74,7 @@ public void testRabbitTemplateWithOverrides() {
7474
.getBean(CachingConnectionFactory.class);
7575
assertEquals("remote-server", connectionFactory.getHost());
7676
assertEquals(9000, connectionFactory.getPort());
77-
assertEquals("vhost", connectionFactory.getVirtualHost());
77+
assertEquals("/vhost", connectionFactory.getVirtualHost());
7878
}
7979

8080
@Test
@@ -89,6 +89,30 @@ public void testRabbitTemplateEmptyVirtualHost() {
8989
assertEquals("/", connectionFactory.getVirtualHost());
9090
}
9191

92+
@Test
93+
public void testRabbitTemplateVirtualHostNoLeadingSlash() {
94+
this.context = new AnnotationConfigApplicationContext();
95+
this.context.register(TestConfiguration.class, RabbitAutoConfiguration.class);
96+
EnvironmentTestUtils.addEnvironment(this.context,
97+
"spring.rabbitmq.virtual_host:foo");
98+
this.context.refresh();
99+
CachingConnectionFactory connectionFactory = this.context
100+
.getBean(CachingConnectionFactory.class);
101+
assertEquals("foo", connectionFactory.getVirtualHost());
102+
}
103+
104+
@Test
105+
public void testRabbitTemplateVirtualHostMultiLeadingSlashes() {
106+
this.context = new AnnotationConfigApplicationContext();
107+
this.context.register(TestConfiguration.class, RabbitAutoConfiguration.class);
108+
EnvironmentTestUtils.addEnvironment(this.context,
109+
"spring.rabbitmq.virtual_host:///foo");
110+
this.context.refresh();
111+
CachingConnectionFactory connectionFactory = this.context
112+
.getBean(CachingConnectionFactory.class);
113+
assertEquals("///foo", connectionFactory.getVirtualHost());
114+
}
115+
92116
@Test
93117
public void testRabbitTemplateDefaultVirtualHost() {
94118
this.context = new AnnotationConfigApplicationContext();

spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/amqp/RabbitPropertiesTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public void testCustomVirtualHost() {
9999
@Test
100100
public void testCustomFalsyVirtualHost() {
101101
this.properties.setVirtualHost("/myvHost");
102-
assertEquals("myvHost", this.properties.getVirtualHost());
102+
assertEquals("/myvHost", this.properties.getVirtualHost());
103103
}
104104

105105
}

0 commit comments

Comments
 (0)