@Override public DemandForwardingBridge createNetworkBridge(NetworkBridgeConfiguration configuration, Transport localTransport, Transport remoteTransport, NetworkBridgeListener listener) { if (configuration.isConduitSubscriptions()) { // dynamicOnly determines whether durables are auto bridged return attachListener(new DurableConduitBridge(configuration, localTransport, remoteTransport), listener); } return attachListener(new DemandForwardingBridge(configuration, localTransport, remoteTransport), listener); }
@Override public String toString() { return "DurableConduitBridge:" + configuration.getBrokerName() + "->" + getRemoteBrokerName(); } /**
protected DemandForwardingBridgeSupport createBridge(Transport local, Transport remote) { CompositeDemandForwardingBridge bridge = new CompositeDemandForwardingBridge(this, local, remote); bridge.setBrokerService(getBrokerService()); return bridge; } }
@Override public NetworkBridgeFilter create(ConsumerInfo info, BrokerId[] remoteBrokerPath, int messageTTL, int consumerTTL) { ConditionalNetworkBridgeFilter filter = new ConditionalNetworkBridgeFilter(); filter.setNetworkBrokerId(remoteBrokerPath[0]); filter.setMessageTTL(messageTTL); filter.setConsumerTTL(consumerTTL); filter.setAllowReplayWhenNoConsumers(isReplayWhenNoConsumers()); filter.setRateLimit(getRateLimit()); filter.setRateDuration(getRateDuration()); filter.setReplayDelay(getReplayDelay()); filter.setSelectorAware(isSelectorAware()); return filter; }
@Override public void onException(IOException error) { if (!futureRemoteBrokerInfo.isDone()) { LOG.info("error with pending remote brokerInfo on: " + remoteBroker, error); futureRemoteBrokerInfo.cancel(true); return; } serviceRemoteException(error); } });
public void duplexStart(TransportConnection connection, BrokerInfo localBrokerInfo, BrokerInfo remoteBrokerInfo) throws Exception { this.localBrokerInfo = localBrokerInfo; this.remoteBrokerInfo = remoteBrokerInfo; this.duplexInitiatingConnection = connection; start(); serviceRemoteCommand(remoteBrokerInfo); }
public static Transport createLocalTransport(NetworkBridgeConfiguration configuration, URI uri) throws Exception { // one end of the localbroker<->bridge transport needs to be async to allow concurrent forwards and acks return createLocalTransport(uri, !configuration.isDispatchAsync()); }
/** * @param networkTTL the networkTTL to set */ public void setNetworkTTL(int networkTTL) { this.networkTTL = networkTTL; setConsumerTTL(networkTTL); setMessageTTL(networkTTL); }
@Override protected void doStop(ServiceStopper stopper) throws Exception { handleStop(stopper); } };
@Override public void onCommand(Object o) { Command command = (Command) o; serviceLocalCommand(command); }
private DemandForwardingBridge attachListener(DemandForwardingBridge bridge, NetworkBridgeListener listener) { if (listener != null) { bridge.setNetworkBridgeListener(listener); } return bridge; }
private void fireBridgeFailed() { NetworkBridgeListener l = this.bridgeFailedListener; if (l != null) { l.bridgeFailed(); } }
@Override public boolean isDecreaseNetworkConsumerPriority() { return connector.isDecreaseNetworkConsumerPriority(); }
@Override public void setUserName(String userName) { connector.setUserName(userName); }
@Override public void stop() throws Exception { bridge.stop(); }
@Override public String getRemoteAddress() { return bridge.getRemoteAddress(); }
@Override public void onException(IOException error) { serviceLocalException(error); } });
@Override public boolean isSuppressDuplicateQueueSubscriptions() { return connector.isSuppressDuplicateQueueSubscriptions(); }
@Override public void setAdvisoryPrefetchSize(int advisoryPrefetchSize) { connector.setAdvisoryPrefetchSize(advisoryPrefetchSize); }
@Override public void setSuppressDuplicateQueueSubscriptions(boolean val) { connector.setSuppressDuplicateQueueSubscriptions(val); }