public MessageExchangeDAO dequeueMessage(CorrelationKeySet instanceKeySet) { if (__log.isDebugEnabled()) { __log.debug("dequeueEarliest: MATCHING correlationKey=" + instanceKeySet); } for (Iterator<MsgQueueEntry> i = _messages.iterator(); i.hasNext();) { MsgQueueEntry mqe = i.next(); CorrelationKeySet aKeySet = mqe.keySet; if (aKeySet.isRoutableTo(instanceKeySet, false)) { i.remove(); return mqe.message; } } if (__log.isDebugEnabled()) { __log.debug("dequeueEarliest: MATCH NOT FOUND!"); } return null; }
public List<MessageRouteDAO> findRoute(CorrelationKeySet keySet) { List<MessageRouteDAO> routes = new ArrayList<MessageRouteDAO>(); assert keySet != null; if (__log.isDebugEnabled()) { __log.debug("findRoute: keySet=" + keySet); } boolean routed = false; for (MessageRouteDaoImpl route : _routes) { assert route._ckeySet != null; if(keySet.isRoutableTo(route._ckeySet, "all".equals(route.getRoute()))) { if ("all".equals(route.getRoute())) { routes.add(route); } else { if (!routed) { routes.add(route); } routed = true; } } } return routes; }