https://issues.apache.org/jira/browse/AMQ-5705 - fix test regression. Make PublishedAddressPolicy vm scheme aware so such that is won't attempt a transform

This commit is contained in:
gtully 2015-06-23 11:25:13 +01:00
parent 26eb103b92
commit 37c46b9b42
2 changed files with 39 additions and 3 deletions

View File

@ -22,6 +22,7 @@ import java.net.UnknownHostException;
import java.util.HashMap; import java.util.HashMap;
import java.util.Locale; import java.util.Locale;
import org.apache.activemq.transport.vm.VMTransport;
import org.apache.activemq.util.InetAddressUtil; import org.apache.activemq.util.InetAddressUtil;
/** /**
@ -69,6 +70,10 @@ public class PublishedAddressPolicy {
} }
String scheme = connectorURI.getScheme(); String scheme = connectorURI.getScheme();
if ("vm".equals(scheme)) {
return connectorURI;
}
String userInfo = getPublishedUserInfoValue(connectorURI.getUserInfo()); String userInfo = getPublishedUserInfoValue(connectorURI.getUserInfo());
String host = getPublishedHostValue(connectorURI.getHost()); String host = getPublishedHostValue(connectorURI.getHost());
int port = connectorURI.getPort(); int port = connectorURI.getPort();
@ -193,14 +198,14 @@ public class PublishedAddressPolicy {
} }
/** /**
* @param publishedHostStrategy the publishedHostStrategy to set * @param strategy the publishedHostStrategy to set
*/ */
public void setPublishedHostStrategy(PublishedHostStrategy strategy) { public void setPublishedHostStrategy(PublishedHostStrategy strategy) {
this.publishedHostStrategy = strategy; this.publishedHostStrategy = strategy;
} }
/** /**
* @param publishedHostStrategy the publishedHostStrategy to set * @param strategy the publishedHostStrategy to set
*/ */
public void setPublishedHostStrategy(String strategy) { public void setPublishedHostStrategy(String strategy) {
this.publishedHostStrategy = PublishedHostStrategy.getValue(strategy); this.publishedHostStrategy = PublishedHostStrategy.getValue(strategy);

View File

@ -18,19 +18,23 @@ package org.apache.activemq.transport.vm;
import java.io.IOException; import java.io.IOException;
import java.net.URI; import java.net.URI;
import java.net.URISyntaxException;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
import javax.jms.Connection; import javax.jms.Connection;
import org.junit.Test;
import org.apache.activemq.ActiveMQConnection; import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.broker.BrokerRegistry; import org.apache.activemq.broker.BrokerRegistry;
import org.apache.activemq.broker.PublishedAddressPolicy;
import org.apache.activemq.broker.TransportConnector;
import org.apache.activemq.command.BrokerInfo; import org.apache.activemq.command.BrokerInfo;
import org.apache.activemq.transport.Transport; import org.apache.activemq.transport.Transport;
import org.apache.activemq.transport.TransportFactory; import org.apache.activemq.transport.TransportFactory;
import org.apache.activemq.transport.TransportListener; import org.apache.activemq.transport.TransportListener;
import org.junit.Test;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
@ -59,6 +63,33 @@ public class VMTransportBrokerNameTest {
c2.close(); c2.close();
} }
@Test
public void testPublishableAddressUri() throws Exception {
PublishedAddressPolicy publishedAddressPolicy = new PublishedAddressPolicy();
final AtomicReference<URI> uriAtomicReference = new AtomicReference<>();
TransportConnector dummyTransportConnector = new TransportConnector() {
@Override
public URI getConnectUri() throws IOException, URISyntaxException {
return uriAtomicReference.get();
}
};
URI ok = new URI("vm://b1");
uriAtomicReference.set(ok);
assertEquals(uriAtomicReference.get(), publishedAddressPolicy.getPublishableConnectURI(dummyTransportConnector));
ok = new URI("vm://b1?async=false");
uriAtomicReference.set(ok);
assertEquals(uriAtomicReference.get(), publishedAddressPolicy.getPublishableConnectURI(dummyTransportConnector));
URI badHost = new URI("vm://b1_11");
uriAtomicReference.set(badHost);
assertEquals(uriAtomicReference.get(), publishedAddressPolicy.getPublishableConnectURI(dummyTransportConnector));
}
@Test @Test
public void testBrokerInfoReceiptClientAsync() throws Exception { public void testBrokerInfoReceiptClientAsync() throws Exception {