Package org.jbpm.task.service.jms

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

package org.jbpm.task.service.jms;
import java.io.IOException;
import java.io.Serializable;

import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
import javax.jms.Session;

import org.jbpm.task.service.SessionWriter;

public class JMSSessionWriter implements SessionWriter {
  private final Session session;
  private final MessageProducer producer;
  private final String selector;

  public JMSSessionWriter(Session session, MessageProducer producer, String selector) {
    this.session = session;
    this.producer = producer;
    this.selector = selector;
  }

  public void write(Object message) throws IOException {
    try {
      ObjectMessage clientMessage = this.session.createObjectMessage();
      clientMessage.setObject((Serializable) message);
     
      clientMessage.setStringProperty(TaskServiceConstants.SELECTOR_NAME, this.selector);
      this.producer.send(clientMessage);
      this.session.commit();
    } catch (JMSException e) {
      throw new IOException("Unable to create message: " + e.getMessage());
    } finally {
      try {
        this.session.commit();
      } catch (JMSException e) {
        throw new IOException("Unable to commit message: " + e.getMessage());
      }
    }
  }
}
TOP

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

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.