Package org.jbpm.task.service.jms

Source Code of org.jbpm.task.service.jms.JMSTaskClientHandler

package org.jbpm.task.service.jms;

import java.util.HashMap;
import java.util.Map;

import javax.jms.Destination;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.Topic;

import org.drools.SystemEventListener;
import org.jbpm.task.service.TaskClient;
import org.jbpm.task.service.TaskClientHandler;

public class JMSTaskClientHandler extends BaseJMSHandler {
  private TaskClientHandler handler;
  private Map<String, MessageProducer> producers;

  public JMSTaskClientHandler(SystemEventListener systemEventListener) {
    this.handler = new TaskClientHandler(this.responseHandlers, systemEventListener);
    this.producers = new HashMap<String, MessageProducer>();
  }

  public TaskClient getClient() {
    return this.handler.getClient();
  }

  public void setClient(TaskClient client) {
    this.handler.setClient(client);
  }

  public void exceptionCaught(Session session, Throwable cause) throws Exception {
  }

  public void messageReceived(Session session, Object message, Destination destination, String selector) throws Exception {
    String name = "";
    if (destination instanceof Queue) {
      name = ((Queue) destination).getQueueName();
    } else if (destination instanceof Topic) {
      name = ((Topic) destination).getTopicName();
    }
    MessageProducer producer = (MessageProducer) this.producers.get(name);
    if (producer == null) {
      producer = session.createProducer(destination);
      this.producers.put(name, producer);
    }
    this.handler.messageReceived(new JMSSessionWriter(session, producer, selector), message);
  }
}
TOP

Related Classes of org.jbpm.task.service.jms.JMSTaskClientHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.