/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package com.emc.sa.catalog; import static com.emc.storageos.db.client.URIUtil.uri; import org.apache.log4j.Logger; import com.emc.storageos.db.client.model.uimodels.Order; import com.emc.sa.zookeeper.OrderMessage; import com.emc.storageos.coordinator.client.service.DistributedQueueItemProcessedCallback; import com.emc.storageos.coordinator.client.service.impl.DistributedQueueConsumer; public class OrderCompletionConsumer extends DistributedQueueConsumer<OrderMessage> { private static final Logger log = Logger.getLogger(OrderCompletionConsumer.class); private OrderManagerImpl orderManager; public OrderCompletionConsumer(OrderManagerImpl orderManager) { this.orderManager = orderManager; } @Override public void consumeItem(OrderMessage message, DistributedQueueItemProcessedCallback callback) throws Exception { try { log.info("Order completed: " + message.getOrderId()); Order order = orderManager.getOrderById(uri(message.getOrderId())); orderManager.processOrder(order); } catch (Exception e) { log.error("Failed to process order completion notification", e); } finally { callback.itemProcessed(); } } }