public final void sendMessage(NevadoDestination destination, NevadoMessage message) throws JMSException { if (destination == null) { throw new NullPointerException(); } // Initialize message as needed if (message.isDisableMessageID()) { message.setNevadoProperty(NevadoProperty.DisableMessageID, true); } if (!message.isDisableTimestamp()) { message.setJMSTimestamp(System.currentTimeMillis()); } if (destination instanceof NevadoQueue) { if (isAsync() && !message.isDisableMessageID() && message.getJMSMessageID() == null) { message.setJMSMessageID(MessageIdUtil.createMessageId()); } String serializedMessage = serializeMessage(message); String sqsMessageId = sendSQSMessage((NevadoQueue) destination, serializedMessage); if (!message.isDisableMessageID() && message.getJMSMessageID() == null) { message.setJMSMessageID("ID:" + sqsMessageId); } _log.info("Sent message to SQS " + sqsMessageId); } else if (destination instanceof NevadoTopic) { if (!message.isDisableMessageID() && message.getJMSMessageID() == null) { message.setJMSMessageID("ID:" + MessageIdUtil.createMessageId()); } String serializedMessage = serializeMessage(message); sendSNSMessage((NevadoTopic) destination, serializedMessage); } else { throw new IllegalStateException("Invalid destination: " + destination.getClass().getName()); } }
protected final SQSQueue getSQSQueue(NevadoDestination destination) throws JMSException { if (destination == null) { throw new JMSException("Destination is null"); } if (destination.isDeleted()) { throw new InvalidDestinationException("Destination " + destination + " has been deleted"); } NevadoQueue queue = (destination instanceof NevadoQueue) ? (NevadoQueue) destination : ((NevadoTopic) destination).getTopicEndpoint(); return getSQSQueueImpl(queue); }