package com.intrbiz.bergamot.ui.action; import org.apache.log4j.Logger; import com.intrbiz.bergamot.model.message.result.PassiveResultMO; import com.intrbiz.bergamot.model.message.result.ResultMO; import com.intrbiz.bergamot.queue.WorkerQueue; import com.intrbiz.bergamot.queue.key.PassiveResultKey; import com.intrbiz.bergamot.queue.key.ResultKey; import com.intrbiz.metadata.Action; import com.intrbiz.queue.RoutedProducer; public class DispatchResultAction { private Logger logger = Logger.getLogger(DispatchResultAction.class); private WorkerQueue queue; private RoutedProducer<ResultMO, ResultKey> resultProducer; public DispatchResultAction() { this.queue = WorkerQueue.open(); this.resultProducer = this.queue.publishResults(); } @Action("dispatch-result") public void dispatchResult(PassiveResultMO resultMO) { // fire off the result if (logger.isTraceEnabled()) logger.trace("Publishing passive result:\r\n" + resultMO); // TODO synchronized (this) { this.resultProducer.publish( resultMO.getSiteId() == null ? new PassiveResultKey() : new PassiveResultKey(resultMO.getSiteId()), resultMO ); } } }