Provide a default value for the AMQP port if not provided in the URI.

This commit is contained in:
Scott Frederick
2017-10-23 16:03:40 -05:00
parent 1361518db0
commit d4179cbd1d
3 changed files with 48 additions and 0 deletions

View File

@@ -86,6 +86,7 @@ public class CloudFoundryConnectorAmqpServiceTest extends AbstractCloudFoundryCo
assertNotNull(amqpServiceInfo.getUri());
assertTrue(amqpServiceInfo.getUri().contains(hostname));
assertEquals("v/host1", amqpServiceInfo.getVirtualHost());
assertEquals(5672, amqpServiceInfo.getPort());
assertNotNull(amqpServiceInfo.getManagementUri());
assertTrue(amqpServiceInfo.getManagementUri().contains(hostname));

View File

@@ -18,6 +18,8 @@ import java.util.List;
*/
@ServiceLabel("rabbitmq")
public class AmqpServiceInfo extends UriBasedServiceInfo {
private static final Integer DEFAULT_AMQP_PORT = 5672;
private static final Integer DEFAULT_AMQPS_PORT = 5671;
public static final String AMQP_SCHEME = "amqp";
public static final String AMQPS_SCHEME = "amqps";
@@ -87,6 +89,18 @@ public class AmqpServiceInfo extends UriBasedServiceInfo {
return managementUris;
}
@Override
public int getPort() {
if (super.getPort() == -1) {
if (getScheme().equals(AMQP_SCHEME)) {
return DEFAULT_AMQP_PORT;
} else if (getScheme().equals(AMQPS_SCHEME)) {
return DEFAULT_AMQPS_PORT;
}
}
return super.getPort();
}
@Override
protected UriInfo validateAndCleanUriInfo(UriInfo uriInfo) {
if (uriInfo.getScheme() == null) {

View File

@@ -55,6 +55,39 @@ public class AmqpServiceInfoTest {
assertEquals("myvhost", serviceInfo.getVirtualHost());
}
@Test
public void uriBasedParsingAmqpDefaultPort() {
AmqpServiceInfo serviceInfo = new AmqpServiceInfo("id", "amqp://myuser:mypass@myhost/myvhost");
assertEquals("myhost", serviceInfo.getHost());
assertEquals(5672, serviceInfo.getPort());
assertEquals("myuser", serviceInfo.getUserName());
assertEquals("mypass", serviceInfo.getPassword());
assertEquals("myvhost", serviceInfo.getVirtualHost());
}
@Test
public void uriBasedParsingAmqpsDefaultPort() {
AmqpServiceInfo serviceInfo = new AmqpServiceInfo("id", "amqps://myuser:mypass@myhost/myvhost");
assertEquals("myhost", serviceInfo.getHost());
assertEquals(5671, serviceInfo.getPort());
assertEquals("myuser", serviceInfo.getUserName());
assertEquals("mypass", serviceInfo.getPassword());
assertEquals("myvhost", serviceInfo.getVirtualHost());
}
@Test
public void uriBasedParsingUnknownSchemeDefaultPort() {
AmqpServiceInfo serviceInfo = new AmqpServiceInfo("id", "amqpx://myuser:mypass@myhost/myvhost");
assertEquals("myhost", serviceInfo.getHost());
assertEquals(-1, serviceInfo.getPort());
assertEquals("myuser", serviceInfo.getUserName());
assertEquals("mypass", serviceInfo.getPassword());
assertEquals("myvhost", serviceInfo.getVirtualHost());
}
@Test
public void uriBasedParsingEncodedVhost() {
AmqpServiceInfo serviceInfo = new AmqpServiceInfo("id", "amqp://myuser:mypass@myhost:12345/my%2Fvhost");