* @throws Exception
*/
public static void createNewJMSQueues(ModelControllerClient mcc, HashMap<String, String> serverProperties)
throws Exception {
final MessagingJBossASClient client = new MessagingJBossASClient(mcc);
final List<String> entryNames = new ArrayList<String>();
// TODO (jshaughn): Prior to HornetQ we set recoveryRetries to 0: "don't redeliver messages on failure. It
// just causes more failures. just go straight to the dead messages by setting recoveryRetries to 0.
// This is equivalent to setting the dLQMaxResent property to 0 in the MessageDriven annotation in
// the class definition."
// HornetQ has different semantics, and may behave well with default settings. If not, we'll
// likely need to add specific <address-setting> elements for our queues, which set
// max-delivery-attempts to 0. The documented default is 10.
String queueName = JMS_ALERT_CONDITION_QUEUE;
if (!client.isQueue(queueName)) {
entryNames.clear();
entryNames.add("queue/" + queueName);
ModelNode request = client.createNewQueueRequest(queueName, true, entryNames);
ModelNode results = client.execute(request);
if (!MessagingJBossASClient.isSuccess(results)) {
throw new FailureException(results, "Failed to create JMS Queue [" + queueName + "]");
} else {
LOG.info("JMS queue [" + queueName + "] created");
}
} else {
LOG.info("JMS Queue [" + queueName + "] already exists, skipping the creation request");
}
queueName = JMS_DRIFT_CHANGESET_QUEUE;
if (!client.isQueue(queueName)) {
entryNames.clear();
entryNames.add("queue/" + queueName);
ModelNode request = client.createNewQueueRequest(queueName, true, entryNames);
ModelNode results = client.execute(request);
if (!MessagingJBossASClient.isSuccess(results)) {
throw new FailureException(results, "Failed to create JMS Queue [" + queueName + "]");
} else {
LOG.info("JMS queue [" + queueName + "] created");
}
} else {
LOG.info("JMS Queue [" + queueName + "] already exists, skipping the creation request");
}
queueName = JMS_DRIFT_FILE_QUEUE;
if (!client.isQueue(queueName)) {
entryNames.clear();
entryNames.add("queue/" + queueName);
ModelNode request = client.createNewQueueRequest(queueName, true, entryNames);
ModelNode results = client.execute(request);
if (!MessagingJBossASClient.isSuccess(results)) {
throw new FailureException(results, "Failed to create JMS Queue [" + queueName + "]");
} else {
LOG.info("JMS queue [" + queueName + "] created");
}