Example #1
0
  @Override
  public MessageProducerResources doCreateProducerModel() throws Exception {
    MessageProducerResources answer;
    Connection conn = getConnectionResource().borrowConnection();
    try {
      TransactionCommitStrategy commitStrategy = null;
      if (isEndpointTransacted()) {
        commitStrategy =
            getCommitStrategy() == null
                ? new DefaultTransactionCommitStrategy()
                : getCommitStrategy();
      }
      Session session = conn.createSession(isEndpointTransacted(), getAcknowledgeMode());
      Destination destination =
          getEndpoint()
              .getDestinationCreationStrategy()
              .createDestination(session, getDestinationName(), isTopic());
      MessageProducer messageProducer =
          JmsObjectFactory.createMessageProducer(session, destination, isPersistent(), getTtl());

      answer = new MessageProducerResources(session, messageProducer, commitStrategy);

    } catch (Exception e) {
      log.error("Unable to create the MessageProducer", e);
      throw e;
    } finally {
      getConnectionResource().returnConnection(conn);
    }
    return answer;
  }