public AbstractGateway getGatewayById(String id) { return getGateways().get(id); }
public int getAllQueueLoad() throws Exception { int total = 0; for (AbstractGateway g : getGateways().values()) total += g.getQueueLoad(); total += getMasterQueueLoad(); return total; }
public boolean registerGateway(AbstractGateway gateway) { synchronized (this._LOCK_) { logger.info("Registering Gateway: " + gateway.toShortString()); getGateways().put(gateway.getGatewayId(), gateway); if (getStatus() == Status.Started) { logger.info("Starting gateway: " + gateway.getGatewayId()); boolean startStatus = gateway.start(); if (!startStatus) { logger.warn(String.format("Gateway %s did not start!", gateway.getGatewayId())); getGateways().remove(gateway.getGatewayId()); } return startStatus; } return true; } }
public boolean unregisterGateway(AbstractGateway gateway) { synchronized (this._LOCK_) { logger.info("Unregistering Gateway: " + gateway.toShortString()); getGateways().remove(gateway.getGatewayId()); if ((getStatus() == Status.Started) || (gateway.getStatus() == AbstractGateway.Status.Started)) { logger.info("Stopping gateway: " + gateway.getGatewayId()); boolean startStatus = gateway.stop(); if (!startStatus) logger.warn(String.format("Gateway %s did not stop!", gateway.getGatewayId())); return startStatus; } return true; } }
public Collection<AbstractGateway> routeMessage(OutboundMessage message) { try { Collection<AbstractGateway> selectedGateways = getRouter().route(message, getGateways().values()); selectedGateways = getBalancer().balance(message, selectedGateways); if (getRouteHook() != null) selectedGateways = getRouteHook().process(message, selectedGateways); return selectedGateways; } catch (ConcurrentModificationException e) { logger.warn("Gateway list modified, retrying routing...", e); return routeMessage(message); } }