blob: 2c884ec7cac0a895456d6047802c971e395e6988 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.activemq.proxy;
import java.net.URI;
import java.util.ArrayList;
import java.util.Iterator;
import org.apache.activemq.broker.BrokerService;
import org.apache.activemq.broker.BrokerTestSupport;
import org.apache.activemq.broker.StubConnection;
import org.apache.activemq.broker.TransportConnector;
import org.apache.activemq.store.PersistenceAdapter;
import org.apache.activemq.transport.Transport;
import org.apache.activemq.transport.TransportFactory;
import org.apache.activemq.usage.SystemUsage;
public class ProxyTestSupport extends BrokerTestSupport {
protected ArrayList<StubConnection> connections = new ArrayList<StubConnection>();
protected TransportConnector connector;
protected PersistenceAdapter remotePersistenceAdapter;
protected BrokerService remoteBroker;
protected SystemUsage remoteMemoryManager;
protected TransportConnector remoteConnector;
private ProxyConnector proxyConnector;
private ProxyConnector remoteProxyConnector;
protected BrokerService createBroker() throws Exception {
BrokerService service = new BrokerService();
service.setBrokerName("broker1");
service.setPersistent(false);
service.setUseJmx(false);
connector = service.addConnector(getLocalURI());
proxyConnector = new ProxyConnector();
proxyConnector.setName("proxy");
proxyConnector.setBind(new URI(getLocalProxyURI()));
proxyConnector.setRemote(new URI("fanout:static://" + getRemoteURI()));
service.addProxyConnector(proxyConnector);
return service;
}
protected BrokerService createRemoteBroker() throws Exception {
BrokerService service = new BrokerService();
service.setBrokerName("broker2");
service.setPersistent(false);
service.setUseJmx(false);
remoteConnector = service.addConnector(getRemoteURI());
remoteProxyConnector = new ProxyConnector();
remoteProxyConnector.setName("remoteProxy");
remoteProxyConnector.setBind(new URI(getRemoteProxyURI()));
remoteProxyConnector.setRemote(new URI("fanout:static://" + getLocalURI()));
service.addProxyConnector(remoteProxyConnector);
return service;
}
protected void setUp() throws Exception {
super.setUp();
remoteBroker = createRemoteBroker();
remoteBroker.start();
}
protected void tearDown() throws Exception {
for (Iterator<StubConnection> iter = connections.iterator(); iter.hasNext();) {
StubConnection connection = iter.next();
connection.stop();
iter.remove();
}
remoteBroker.stop();
super.tearDown();
}
protected String getRemoteURI() {
return "tcp://localhost:6171";
}
protected String getLocalURI() {
return "tcp://localhost:6161";
}
protected String getRemoteProxyURI() {
return "tcp://localhost:6162";
}
protected String getLocalProxyURI() {
return "tcp://localhost:6172";
}
protected StubConnection createConnection() throws Exception {
Transport transport = TransportFactory.connect(connector.getServer().getConnectURI());
StubConnection connection = new StubConnection(transport);
connections.add(connection);
return connection;
}
protected StubConnection createRemoteConnection() throws Exception {
Transport transport = TransportFactory.connect(remoteConnector.getServer().getConnectURI());
StubConnection connection = new StubConnection(transport);
connections.add(connection);
return connection;
}
protected StubConnection createProxyConnection() throws Exception {
Transport transport = TransportFactory.connect(proxyConnector.getServer().getConnectURI());
StubConnection connection = new StubConnection(transport);
connections.add(connection);
return connection;
}
protected StubConnection createRemoteProxyConnection() throws Exception {
Transport transport = TransportFactory.connect(remoteProxyConnector.getServer().getConnectURI());
StubConnection connection = new StubConnection(transport);
connections.add(connection);
return connection;
}
}